Autenticazione degli accessi Wireless tramite server Radius: differenze tra le versioni
mNessun oggetto della modifica |
|||
(48 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Squeeze|Wheezy}} | |||
== Introduzione == | == Introduzione == | ||
Se si prevede di installare una rete wireless, è consigliabile configurarla in modo che possano accedervi solo gli utenti specificati. | Se si prevede di installare una rete wireless, è consigliabile configurarla in modo che possano accedervi solo gli utenti specificati. | ||
Riga 9: | Riga 10: | ||
* Debian Lenny/Squeeze/Wheezy o superiori | * Debian Lenny/Squeeze/Wheezy o superiori | ||
* Un ambiente LAMP: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] | * Un ambiente LAMP: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] | ||
* Un database LDAP configurato e funzionante, come descritto ad esempio in queste guide: | * ''(Solo se si intende utilizzare LDAP per archiviare le credenziali di accesso)'' Un database LDAP configurato e funzionante, come descritto ad esempio in queste guide: | ||
** [ | ** [[Samba_e_OpenLDAP:_creare_un_controller_di_dominio_NT4_con_Debian_Wheezy#Installazione_del_server_LDAP Wheezy]] | ||
** [ | ** [[Samba_e_OpenLDAP:_creare_un_controller_di_dominio_con_Debian_Squeeze#Installazione_del_server_LDAP Squeeze]] | ||
* Uno o più Access Point che supportino il protocollo WPA(2) 802.1x | * Uno o più Access Point che supportino il protocollo WPA(2) 802.1x | ||
== ''(Opzionale)'' Riconfigurazione di OpenLDAP == | |||
Il server OpenLDAP va riconfigurato e modificato per potersi integrare con FreeRadius, l'implementazione Linux più comune di un server Radius. | |||
<br/> | |||
Occorre innanzitutto includere al file di configurazione di LDAP il file che contiene lo schema Radius: | |||
<pre> | |||
# cp /usr/share/doc/freeradius/examples/openldap.schema /usr/share/doc/freeradius/examples/ | |||
# /etc/init.d/openldap restart | |||
</pre> | |||
I passaggi successivi sono diversi a seconda della versione di Debian che stiamo utilizzando. | |||
=== Fino a Debian Lenny === | |||
Aggiungiamo al file <code>/etc/ldap/slapd.conf</code> la riga che definisce lo schema Radius: | |||
<pre> | |||
include /etc/ldap/schema/radius.schema | |||
</pre> | |||
=== Da Debian Squeeze in poi=== | |||
La nuova versione di OpenLDAP presente nei [[repository]] Debian a partire da Squeeze supporta un nuovo metodo di configurazione dinamico, non più basato sul file di configurazione statico <code>/etc/ldap/slapd.conf</code>.<br/> | |||
Creiamo il file <code>schema_convert.conf</code>: | |||
<pre> | |||
# touch /tmp/schema_convert.conf | |||
# nano /tmp/schema_convert.conf | |||
</pre> | |||
e editiamolo in questa maniera: | |||
<pre> | |||
include /etc/ldap/schema/core.schema | |||
include /etc/ldap/schema/collective.schema | |||
include /etc/ldap/schema/corba.schema | |||
include /etc/ldap/schema/cosine.schema | |||
include /etc/ldap/schema/duaconf.schema | |||
include /etc/ldap/schema/dyngroup.schema | |||
include /etc/ldap/schema/inetorgperson.schema | |||
include /etc/ldap/schema/java.schema | |||
include /etc/ldap/schema/misc.schema | |||
include /etc/ldap/schema/nis.schema | |||
include /etc/ldap/schema/openldap.schema | |||
include /etc/ldap/schema/ppolicy.schema | |||
include /etc/ldap/schema/samba.schema | |||
</pre> | |||
Salviamo il file e creiamo una directory temporanea per gli output di slapcat: | |||
<pre> | |||
# mkdir /tmp/ldif_output | |||
# slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={10}openldap,cn=schema,cn=config" > /tmp/openldap.ldif | |||
# nano /tmp/openldap.ldif | |||
</pre> | |||
e modifichiamo il file come segue: | |||
<pre> | |||
dn: cn=openldap,cn=schema,cn=config | |||
... | |||
cn: openldap | |||
</pre> | |||
Rimuoviamo le stringhe a fondo pagina: | |||
<pre> | |||
structuralObjectClass: olcSchemaConfig | |||
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 | |||
creatorsName: cn=config | |||
createTimestamp: 20080827045234Z | |||
entryCSN: 20080827045234.341425Z#000000#000#000000 | |||
modifiersName: cn=config | |||
modifyTimestamp: 20080827045234Z | |||
</pre> | |||
Salviamo tutto e copiamolo in <code>/etc/ldap/schema</code>: | |||
<pre> | |||
# cp /tmp/openldap.ldif /etc/ldap/schema | |||
</pre> | |||
Infine importiamolo in OpenLDAP e riavviamo il [[demone]]: | |||
<pre> | |||
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/openldap.ldif | |||
# /etc/init.d/slapd restart | |||
</pre> | |||
== Installazione di FreeRADIUS == | |||
Arrivati a questo punto possiamo installare FreeRADIUS, il demone che si occuperà di gestire le richieste di autenticazione: | |||
<pre> | |||
# apt-get install freeradius freeradius-common freeradius-krb5 freeradius-mysql freeradius-utils | |||
</pre> | |||
Come si può vedere dai plugin installati, utilizzeremo un database MySQL per l'archiviazione degli utenti e delle password. | |||
== Configurazione di FreeRADIUS == | |||
=== Test locale === | |||
Iniziamo con qualcosa di semplice: creiamo un utente locale di test e verifichiamo che il demone faccia il suo dovere. Apriamo prima di tutto il file <code>/etc/freeradius/clients.conf</code> e cambiamo la chiave che serve per mettere in comunicazione il server Radius con i dispositivi di rete: | |||
<pre> | |||
# nano /etc/freeradius/clients.conf | |||
</pre> | |||
<pre> | |||
client localhost { | |||
ipaddr = 127.0.0.1 | |||
secret = chiave_segreta | |||
require_message_authenticator = no | |||
nastype = other | |||
} | |||
</pre> | |||
Quindi creiamo un utente locale aggiungendo le seguenti righe al file <code>/etc/freeradius/users</code>: | |||
<pre> | |||
utentetest Cleartext-Password := "testpassword" | |||
</pre> | |||
Riavviamo FreeRADIUS e controlliamone il funzionamento: | |||
<pre> | |||
# /etc/init.d/freeradius restart | |||
# radtest utentetest testpassword 127.0.0.1 0 chiave_segreta | |||
Sending Access-Request of id 186 to 127.0.0.1 port 1812 | |||
User-Name = "utentetest" | |||
User-Password = "testpassword" | |||
NAS-IP-Address = 127.0.0.1 | |||
NAS-Port = 0 | |||
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=186, length=20 | |||
</pre> | |||
Ok, funziona tutto. | |||
=== Autenticazione via MySQL === | |||
Apriamo il file di configurazione <code>/etc/freeradius/radiusd.conf</code> e decommentiamo la voce: | |||
<pre> | |||
$INCLUDE sql.conf | |||
</pre> | |||
Poi apriamo il file <code>/etc/freeradius/sites-available/default</code> e cerchiamo al suo interno tutte le configurazioni seguenti, decommentando l'autenticazione <code>sql</code>: | |||
<pre> | |||
bind_address = * | |||
proxy_requests = no | |||
#$INCLUDE ${confdir}/proxy.conf | |||
# Sezione authorize{} | |||
# See “Authorization Queries” in sql.conf | |||
sql | |||
# Sezione accounting{} | |||
# See “Accounting queries” in sql.conf | |||
sql | |||
# Sezione session{} | |||
# See “Simultaneous Use Checking Queries” in sql.conf | |||
sql | |||
# Sezione post-auth{} | |||
# See “Authentication Logging Queries” in sql.conf | |||
sql | |||
</pre> | |||
Aggiungiamo un nuovo utente al file <code>/etc/freeradius/users</code>: | |||
<pre> | |||
testsql User-Password == "passwordsql" | |||
DEFAULT Auth-Type := sql | |||
Fall-Through := 1 | |||
</pre> | |||
e stiamo attenti a commentare le seguenti righe, dato che non vogliamo che il nuovo utente si autentichi su <code>/etc/password</code>, ma solo su MySQL: | |||
<pre> | |||
#DEFAULT Auth-Type = System | |||
# Fall-Through = 1 | |||
</pre> | |||
== Configurazione del database MySQL == | |||
Archiviare gli utenti in un file può diventare poco comodo con il passare del tempo e può portare a cali di prestazione. | |||
<br/> | |||
Quindi creeremo un database MySQL apposito e lo utilizzeremo come archivio delle credenziali. | |||
<br/> | |||
Iniziamo con la creazione del database. FreeRADIUS ci mette a disposizione uno script SQL già pronto da utilizzare: | |||
<pre># mysql -u root mysql -p | |||
mysql> CREATE DATABASE radius; | |||
mysql> quit | |||
# mysql -u root radius -p < /etc/freeradius/sql/mysql/schema.sql | |||
# mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql | |||
</pre> | |||
Creiamo un nuovo utente <code>radius@localhost</code> e diamogli i privilegi di accesso corretti sul database appena creato. | |||
* Da [[shell]]: | |||
<pre> | |||
# mysql -u root -p | |||
mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'radiuspassword'; | |||
mysql> FLUSH PRIVILEGES; | |||
mysql> quit; | |||
</pre> | |||
* Da phpMyAdmin, inserendo un nuovo record nella tabella <code>radcheck</code> | |||
L'unica cosa che resta da fare è istruire FreeRADIUS su come connettersi al database appena predisposto. Apriamo il file <code>/etc/freeradius/sql.conf</code> e modifichiamo le linee seguenti con le corrette credenziali di accesso: | |||
<pre> | |||
# Connect info | |||
server = "localhost" | |||
login = "radius" | |||
password = "radiuspassword" | |||
readclients = yes | |||
</pre> | |||
Aggiungiamo un nuovo utente di test: | |||
<pre> | |||
# mysql -u radius radius -p | |||
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('testsql', 'Password', 'passwordsql'); | |||
mysql> quit | |||
</pre> | |||
Riavviamo FreeRADIUS e testiamo l'account: | |||
<pre> | |||
# /etc/init.d/freeradius restart | |||
# radtest testsql passwordsql 127.0.0.1 0 chiave_segreta | |||
Sending Access-Request of id 48 to 127.0.0.1:1812 | |||
User-Name = "testsql" | |||
User-Password = "passwordsql" | |||
NAS-IP-Address = ford | |||
NAS-Port = 0 | |||
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=48, length=20 | |||
</pre> | |||
Ok, anche l'autenticazione su SQL funziona. | |||
== Debug == | |||
Per effettuare operazioni di debug nel caso i client avessero difficoltà a connettersi alla rete wireless, può venire utile stoppare il servizio <code>freeradius</code> e riavviarlo in modalità di debug: | |||
<pre> | |||
# /etc/init.d/freeradius stop | |||
# freeradius -X | |||
</pre> | |||
== daloRadius, un'interfaccia grafica per FreeRadius == | |||
daloRadius è un'interfaccia grafica per facilitare l'inserimento e la gestione degli utenti Radius all'interno del database MySQL, che ci eviterà quindi di dover inserire a mano tramite query tutti i nostri utenti. | |||
<br/> | |||
daloRadius ha alcuni requisiti, che provvediamo a soddisfare: | |||
<pre> | |||
# apt-get install php5-gd php-pear php-db | |||
</pre> | |||
Quindi scarichiamo l'ultima versione dal sito del progetto: http://sourceforge.net/projects/daloradius/ | |||
<br/> | |||
Infine scompattiamo l'archivio scaricato, copiamolo nella nostra directory di Apache e impostiamo i permessi corretti: | |||
<pre> | |||
# tar xvfz daloradius-0.9-9.tar.gz | |||
# mv daloradius-0.9-9 daloradius | |||
# mv daloradius /var/www | |||
# chown www-data:www-data /var/www/daloradius -R | |||
# chmod 644 /var/www/daloradius/library/daloradius.conf.php | |||
</pre> | |||
L'ultimo passo che resta da compiere è aggiungere la tabella <code>daloradius</code> al nostro database MySQL e impostare i corretti parametri di connessione per la nuova applicazione: | |||
<pre> | |||
# cd /var/www/daloradius/contrib/db | |||
# mysql -u root -p radius < mysql-daloradius.sql | |||
</pre> | |||
<pre> | |||
# nano /var/www/daloradius/library/daloradius.conf.php | |||
</pre> | |||
impostando correttamente la variabile: | |||
<pre> | |||
$configValues['CONFIG_DB_PASS'] = 'thepassword'; | |||
</pre> | |||
A questo punto possiamo collegarci all'interfaccia: http://127.0.0.1/daloradius , utilizzando per il primo ingresso le credenziali: | |||
<pre> | |||
username: administrator | |||
password: radius | |||
</pre> | |||
== Conclusioni == | |||
A questo punto abbiamo un server Radius installato su Debian, in grado di gestire le richieste di autenticazione di tutti i dispositivi che supportano il protocollo di autenticazione Radius. Gli utenti saranno archiviati in un database MySQL; in ogni momento potranno essere aggiunti nuovi utenti tramite la shell <code>mysql</code> o tramite l'interfaccia <code>phpMyAdmin</code>. | |||
<br/> | |||
Il passo successivo è decidere come configurare i nostri Access Point Wireless. In sostanza ci troviamo di fronte due possibili strade: | |||
# Impostare ogni Access Point per gestire le autenticazioni WPA/WPA2 Enterprise. L'Access Point rigirerà automaticamente al nostro server ogni richiesta di autenticazione sulla rete wireless; su ogni client comparirà una richiesta di inserimento di una coppia di credenziali (user/password). In questo caso nella configurazione dell'Access Point dovremo indicare: | |||
## L'indirizzo IP del nostro server Radius | |||
## La chiave segreta di connessione al server Radius | |||
# Lasciare la rete wireless aperta e impostare un'autenticazione a livello di Proxy. Si veda ad esempio la seguente guida: [[Autenticare Squid Proxy Server su un server Radius]] | |||
# Lasciare la rete wireless aperta e impostare un sistema Captive Portal per la gestione degli accessi e delle login. | |||
{{Autori | |||
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 10:01, 1 set 2012 (CEST) | |||
|Verificata_da = | |||
|Numero_revisori = 0 | |||
}} | |||
[[Categoria:Monitoraggio]] | |||
[[Categoria:Altri servizi di rete]] | |||
[[Categoria:Network tools]] | |||
[[Categoria:Configurazione wireless]] |
Versione attuale delle 14:25, 26 mag 2015
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" |
Introduzione
Se si prevede di installare una rete wireless, è consigliabile configurarla in modo che possano accedervi solo gli utenti specificati.
I metodi di protezione più comunemente adottati sono il sistema WPA e il sistema WPA2. Questi due protocolli supportano sia l'autenticazione attraverso una chiave segreta condivisa (PSK = Pre Shared Key) e conosciuta da tutti i client della rete, sia l'autenticazione attraverso un server specifico. Wi-Fi Alliance ha introdotto i termini WPA(2)-Personal e WPA(2)-Enterprise per differenziare le due classi di sicurezza fornite dai prodotti. I WPA(2)-Personal utilizzeranno il metodo PSK a chiave condivisa mentre i WPA(2)-Enterprise utilizzeranno un server di autenticazione.
In questa guida vedremo la configurazione di un server Radius su Debian, per fornire ai protocolli WPA e WPA2 un server di autenticazione in grado di fornire una coppia di credenziali (nome utente / password) diverse per ogni utente della rete wireless.
Prerequisiti
- Debian Lenny/Squeeze/Wheezy o superiori
- Un ambiente LAMP: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
- (Solo se si intende utilizzare LDAP per archiviare le credenziali di accesso) Un database LDAP configurato e funzionante, come descritto ad esempio in queste guide:
- Uno o più Access Point che supportino il protocollo WPA(2) 802.1x
(Opzionale) Riconfigurazione di OpenLDAP
Il server OpenLDAP va riconfigurato e modificato per potersi integrare con FreeRadius, l'implementazione Linux più comune di un server Radius.
Occorre innanzitutto includere al file di configurazione di LDAP il file che contiene lo schema Radius:
# cp /usr/share/doc/freeradius/examples/openldap.schema /usr/share/doc/freeradius/examples/ # /etc/init.d/openldap restart
I passaggi successivi sono diversi a seconda della versione di Debian che stiamo utilizzando.
Fino a Debian Lenny
Aggiungiamo al file /etc/ldap/slapd.conf
la riga che definisce lo schema Radius:
include /etc/ldap/schema/radius.schema
Da Debian Squeeze in poi
La nuova versione di OpenLDAP presente nei repository Debian a partire da Squeeze supporta un nuovo metodo di configurazione dinamico, non più basato sul file di configurazione statico /etc/ldap/slapd.conf
.
Creiamo il file schema_convert.conf
:
# touch /tmp/schema_convert.conf # nano /tmp/schema_convert.conf
e editiamolo in questa maniera:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/duaconf.schema include /etc/ldap/schema/dyngroup.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/schema/samba.schema
Salviamo il file e creiamo una directory temporanea per gli output di slapcat:
# mkdir /tmp/ldif_output # slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={10}openldap,cn=schema,cn=config" > /tmp/openldap.ldif # nano /tmp/openldap.ldif
e modifichiamo il file come segue:
dn: cn=openldap,cn=schema,cn=config ... cn: openldap
Rimuoviamo le stringhe a fondo pagina:
structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 creatorsName: cn=config createTimestamp: 20080827045234Z entryCSN: 20080827045234.341425Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20080827045234Z
Salviamo tutto e copiamolo in /etc/ldap/schema
:
# cp /tmp/openldap.ldif /etc/ldap/schema
Infine importiamolo in OpenLDAP e riavviamo il demone:
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/openldap.ldif # /etc/init.d/slapd restart
Installazione di FreeRADIUS
Arrivati a questo punto possiamo installare FreeRADIUS, il demone che si occuperà di gestire le richieste di autenticazione:
# apt-get install freeradius freeradius-common freeradius-krb5 freeradius-mysql freeradius-utils
Come si può vedere dai plugin installati, utilizzeremo un database MySQL per l'archiviazione degli utenti e delle password.
Configurazione di FreeRADIUS
Test locale
Iniziamo con qualcosa di semplice: creiamo un utente locale di test e verifichiamo che il demone faccia il suo dovere. Apriamo prima di tutto il file /etc/freeradius/clients.conf
e cambiamo la chiave che serve per mettere in comunicazione il server Radius con i dispositivi di rete:
# nano /etc/freeradius/clients.conf
client localhost { ipaddr = 127.0.0.1 secret = chiave_segreta require_message_authenticator = no nastype = other }
Quindi creiamo un utente locale aggiungendo le seguenti righe al file /etc/freeradius/users
:
utentetest Cleartext-Password := "testpassword"
Riavviamo FreeRADIUS e controlliamone il funzionamento:
# /etc/init.d/freeradius restart # radtest utentetest testpassword 127.0.0.1 0 chiave_segreta Sending Access-Request of id 186 to 127.0.0.1 port 1812 User-Name = "utentetest" User-Password = "testpassword" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=186, length=20
Ok, funziona tutto.
Autenticazione via MySQL
Apriamo il file di configurazione /etc/freeradius/radiusd.conf
e decommentiamo la voce:
$INCLUDE sql.conf
Poi apriamo il file /etc/freeradius/sites-available/default
e cerchiamo al suo interno tutte le configurazioni seguenti, decommentando l'autenticazione sql
:
bind_address = * proxy_requests = no #$INCLUDE ${confdir}/proxy.conf # Sezione authorize{} # See “Authorization Queries” in sql.conf sql # Sezione accounting{} # See “Accounting queries” in sql.conf sql # Sezione session{} # See “Simultaneous Use Checking Queries” in sql.conf sql # Sezione post-auth{} # See “Authentication Logging Queries” in sql.conf sql
Aggiungiamo un nuovo utente al file /etc/freeradius/users
:
testsql User-Password == "passwordsql" DEFAULT Auth-Type := sql Fall-Through := 1
e stiamo attenti a commentare le seguenti righe, dato che non vogliamo che il nuovo utente si autentichi su /etc/password
, ma solo su MySQL:
#DEFAULT Auth-Type = System # Fall-Through = 1
Configurazione del database MySQL
Archiviare gli utenti in un file può diventare poco comodo con il passare del tempo e può portare a cali di prestazione.
Quindi creeremo un database MySQL apposito e lo utilizzeremo come archivio delle credenziali.
Iniziamo con la creazione del database. FreeRADIUS ci mette a disposizione uno script SQL già pronto da utilizzare:
# mysql -u root mysql -p mysql> CREATE DATABASE radius; mysql> quit # mysql -u root radius -p < /etc/freeradius/sql/mysql/schema.sql # mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql
Creiamo un nuovo utente radius@localhost
e diamogli i privilegi di accesso corretti sul database appena creato.
- Da shell:
# mysql -u root -p mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'radiuspassword'; mysql> FLUSH PRIVILEGES; mysql> quit;
- Da phpMyAdmin, inserendo un nuovo record nella tabella
radcheck
L'unica cosa che resta da fare è istruire FreeRADIUS su come connettersi al database appena predisposto. Apriamo il file /etc/freeradius/sql.conf
e modifichiamo le linee seguenti con le corrette credenziali di accesso:
# Connect info server = "localhost" login = "radius" password = "radiuspassword" readclients = yes
Aggiungiamo un nuovo utente di test:
# mysql -u radius radius -p mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('testsql', 'Password', 'passwordsql'); mysql> quit
Riavviamo FreeRADIUS e testiamo l'account:
# /etc/init.d/freeradius restart # radtest testsql passwordsql 127.0.0.1 0 chiave_segreta Sending Access-Request of id 48 to 127.0.0.1:1812 User-Name = "testsql" User-Password = "passwordsql" NAS-IP-Address = ford NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=48, length=20
Ok, anche l'autenticazione su SQL funziona.
Debug
Per effettuare operazioni di debug nel caso i client avessero difficoltà a connettersi alla rete wireless, può venire utile stoppare il servizio freeradius
e riavviarlo in modalità di debug:
# /etc/init.d/freeradius stop # freeradius -X
daloRadius, un'interfaccia grafica per FreeRadius
daloRadius è un'interfaccia grafica per facilitare l'inserimento e la gestione degli utenti Radius all'interno del database MySQL, che ci eviterà quindi di dover inserire a mano tramite query tutti i nostri utenti.
daloRadius ha alcuni requisiti, che provvediamo a soddisfare:
# apt-get install php5-gd php-pear php-db
Quindi scarichiamo l'ultima versione dal sito del progetto: http://sourceforge.net/projects/daloradius/
Infine scompattiamo l'archivio scaricato, copiamolo nella nostra directory di Apache e impostiamo i permessi corretti:
# tar xvfz daloradius-0.9-9.tar.gz # mv daloradius-0.9-9 daloradius # mv daloradius /var/www # chown www-data:www-data /var/www/daloradius -R # chmod 644 /var/www/daloradius/library/daloradius.conf.php
L'ultimo passo che resta da compiere è aggiungere la tabella daloradius
al nostro database MySQL e impostare i corretti parametri di connessione per la nuova applicazione:
# cd /var/www/daloradius/contrib/db # mysql -u root -p radius < mysql-daloradius.sql
# nano /var/www/daloradius/library/daloradius.conf.php
impostando correttamente la variabile:
$configValues['CONFIG_DB_PASS'] = 'thepassword';
A questo punto possiamo collegarci all'interfaccia: http://127.0.0.1/daloradius , utilizzando per il primo ingresso le credenziali:
username: administrator password: radius
Conclusioni
A questo punto abbiamo un server Radius installato su Debian, in grado di gestire le richieste di autenticazione di tutti i dispositivi che supportano il protocollo di autenticazione Radius. Gli utenti saranno archiviati in un database MySQL; in ogni momento potranno essere aggiunti nuovi utenti tramite la shell mysql
o tramite l'interfaccia phpMyAdmin
.
Il passo successivo è decidere come configurare i nostri Access Point Wireless. In sostanza ci troviamo di fronte due possibili strade:
- Impostare ogni Access Point per gestire le autenticazioni WPA/WPA2 Enterprise. L'Access Point rigirerà automaticamente al nostro server ogni richiesta di autenticazione sulla rete wireless; su ogni client comparirà una richiesta di inserimento di una coppia di credenziali (user/password). In questo caso nella configurazione dell'Access Point dovremo indicare:
- L'indirizzo IP del nostro server Radius
- La chiave segreta di connessione al server Radius
- Lasciare la rete wireless aperta e impostare un'autenticazione a livello di Proxy. Si veda ad esempio la seguente guida: Autenticare Squid Proxy Server su un server Radius
- Lasciare la rete wireless aperta e impostare un sistema Captive Portal per la gestione degli accessi e delle login.
Guida scritta da: Ferdybassi 10:01, 1 set 2012 (CEST) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |