Dimensione: 6158
Commento:
|
← Versione 8 del 14/03/2011 12.51.54 ⇥
Dimensione: 6067
Commento: converted to 1.6 markup
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
[[BR]] [[Indice()]] |
<<BR>> <<Indice>> |
Linea 10: | Linea 10: |
Le parti che costituiscono l'architettura RADIUS sono un server di accesso alla rete, comunemente indicato con la sigla NAS (Network Access Server) e un server che si occupa di effettuare l'autenticazione dell'utente sulla rete, il server RADIUS appunto. | I componenti che costituiscono l'architettura '''Radius''' sono: * un server di accesso alla rete chiamato '''NAS''' ('''''N'''etwork '''A'''ccess '''S'''erver''); * un server che si occupa di autenticare l'utente sulla rete(il server '''RADIUS'''). |
Linea 12: | Linea 14: |
== NAS == | |
Linea 14: | Linea 15: |
Solitamente il NAS è un router o accespoint dedicato in grado di commutare vari ingressi, ed è collegato direttamente al server RADIUS che si occupa di controllare il pacchetto contentente le credenziali di accesso dell'utente (username e password). Tali credenziali vengono confrontate con quelle esistenti in un database relativamente all'utente: in caso di matching l'utente autenticato può accedere ai servizi della rete, in caso contrario il protocollo prevede la notifica di un messaggio di errore. La comunicazione fra il NAS ed il server RADIUS è crittografata usando una chiave segreta condivisa da entrambi (secert key) che deve essere opportunamente creata sia sul NAS che sul server RADIUS e mantenuta riservata. Uno dei compiti del NAS può essere quello di assegnare al client remoto, dopo l'avvenuta convalida delle credenziali di accsso alla rete dell'utente, un indirizzo IP compatibile con il range di IP disponibili (il NAS spesso funge da server DHCP , funzionalità questa integrata in molti routers presenti sul mercato). |
|
Linea 24: | Linea 18: |
I protocolli di autenticazione dell'utente remoto sul server RADIUS sono PAP (password authentication protocol) e CHAP (challenge handshake authentication protocol). Il database delle utenze che fornisce il servizio di backend come supporto al server RADIUS può essere sia un semplice file di testo (ad es il file `/etc/passwd` di UNIX) sia un DB dedicato come LDAP o un altro database ('''PostgreSQL''', '''MySQL'''). |
Il database delle utenze che fornisce il servizio di backend come supporto al server RADIUS può essere: * un semplice '''file di testo''' (ad es il file `/etc/passwd` standard di UNIX) * un DB dedicato come '''LDAP''' o un altro database ('''PostgreSQL''', '''MySQL'''). |
Linea 29: | Linea 23: |
Aprite una shell ed al prompt dei comandi digitate {{{ sudo apt-get -y install freeradius freeradius-ldap |
aprire un terminale ed al prompt dei comandi digitare {{{ sudo apt-get install freeradius freeradius-ldap |
Linea 36: | Linea 29: |
L'opzione ''-y'' di apt-get non chiede la conferma per le azioni legate al processo di instalalzione del software. Se non avete bisogno del DB LDAP potete anche fermarvi qui , in quanto il sistema è già predisposto per supportare l'autenticazione UNIX classica (quella degli utenti definiti nel file `/etc/passwd` per intenderci). Se invece volete utilizzare come DB delle utenze RADIUS un DB LDAP , dovete passare al paragrafo seguente. |
|
Linea 44: | Linea 32: |
I file di configurazione sono sotto la directory `/etc/freeradius` ed il file fondamentali sono 2: | I file di configurazione sono nella la directory `/etc/freeradius` ed i file fondamentali sono 2: |
Linea 48: | Linea 36: |
Nello specifico il file `clients.conf` deve avere un'entry come quella che segue: {{{ | Nello specifico il file `clients.conf` deve avere una sezione come quella che segue, per ogni NAS che userà il server RADIUS per l'autentificazione: {{{ |
Linea 57: | Linea 45: |
dove sostituirete `192.168.200.1` con l'IP del vostro NAS , `testing123` con il secret key per la comunicazione fra il vostro NAS ed il server RADIUS, `routercisco` con il nome con cui volete chiamare il vostro NAS e `cisco` con il tipo di NAS utilizzato (i valori possibili dipendono dal modello di NAS usato, ma in generale i più comuni sono `cisco`, `livingston`, e `other` per indicare un tipo di NAS che non rientra nelle categorie elencate). |
Sostitudendo `192.168.200.1` con l'IP del vostro NAS , `testing123` con il secret key per la comunicazione fra il NAS ed il server RADIUS, `routercisco` con il nome con cui si vuole identificare il NAS (usato nei file di log) e `cisco` con il tipo di NAS utilizzato (i valori possibili dipendono dal modello di NAS, ma i più comuni sono `cisco`, `livingston`, e `other` per indicare un tipo di NAS che non rientra nelle categorie precedentemente elencate). |
Linea 62: | Linea 49: |
= Configurazione di un server RADIUS con backend LDAP = | Se non si ha bisogno del DB LDAP o MySQL è possibile saltare i paragrafi relativi, in quanto il sistema è già predisposto per supportare l'autenticazione UNIX classica (quella degli utenti definiti nel file `/etc/passwd`). |
Linea 64: | Linea 51: |
Chi legge questa sezione si prepara a configurare un server RADIUS con freeradius usando come DB degli utenti un database LDAP. Il file fondamentale da modificare è `/etc/freeradius/radiusd.conf` e precisamente devono essere modificati i seguenti parametri: |
Se invece si vuole utilizzare come DB delle utenze RADIUS un DB LDAP o MySQL, è necessario seguire il paragrafo seguente. |
Linea 67: | Linea 53: |
* nella sezione `modules` individuare la sottosezione '''ldap''' e modificare i seguenti parametri: {{{ | == Configurazione di un server RADIUS con backend LDAP == Si suppone che si abbia un database '''LDAP''' installato, configurato, e con qualche utente inserito. 0. Installare i pacchetti di freeradius per il supporto ad un backend che utilizza un database LDAP.{{{ sudo apt-get install freeradius-ldap }}} 0. Con un [[Ufficio/EditorDiTesto|editor di testo]] e [[AmministrazioneSistema/Sudo|privilegi di amministratore]] modificare nel file `/etc/freeradius/radiusd.conf` i seguenti parametri: * nella sezione `modules` individuare la sottosezione '''ldap''' e modificare i seguenti parametri, con quelli del database ldap: {{{ |
Linea 71: | Linea 66: |
}}} e commentare la stringa {{{ | }}}nel caso in cui l'accesso al database sia protetto con utente e password aggiungere anche {{{ identity = "cn=admin,dc=example,dc=com" password = ldappassword }}}commentare la stringa {{{ |
Linea 75: | Linea 73: |
}}} * nella sezione `authorize` commentare la riga '''files''' e togliere il commento a '''ldap'''. * nella sezione '''authenticate''' commentare la riga '''unix''' e togliere il commento alla sottosezione '''Auth-Type LDAP'''. = Verifica e avvio del servizio = A questo punto è possibile avviare il server RADIUS con il comando: {{{ freeradius -X }}} che lo avvia in modalità di debug così che si possa controllare che i tentativi di autenticazione avvengono correttamente. Si può procedere ad un test di verifica dell'autenticazione di un utente usando il comando di test nativo fornito con freeradius, come segue: {{{ radtest username password localhost 1812 testing123 |
|
Linea 77: | Linea 89: |
* nella sezione `authorize` commentare la riga '''files''' e togliere il commento a '''ldap'''. Questo dice al vostro server RADIUS che deve usare come metodo di autorizzazione il DB LDAP e non quello tradizionale UNIX basato sul file `/etc/passwd`. | sostituendo `username` e `password` con il nome utente e la password dell'utente, `1812` con la porta usata per la comunicazione fra il server NAS ed il server RADIUS(1812 è quella standard), `testing123` con il secret key per la comunicazione protetta fra NAS e RADIUS. |
Linea 79: | Linea 91: |
* nella sezione '''authenticate''' commentare la riga '''unix''' e togliere il commento alla sottosezione '''Auth-Type LDAP'''. Questo dice al vostro server RADIUS che deve usare come metodo di autenticazione il DB LDAP e non quello tradizionale UNIX basato sul file `/etc/passwd`. A questo punto potete riavvaire il server RADIUS con il comando: {{{ freeradius -X |
Se tutto è corretto si avrà una risposta di questo tipo {{{ Sending Access-Request of id 192 to 127.0.0.1 port 1812 User-Name = "username" User-Password = "password" NAS-IP-Address = 255.255.255.255 NAS-Port = 1812 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=192, length=20 |
Linea 85: | Linea 100: |
che lo avvia in modalità di debug così che possiate controllare che i tentativi di autenticazione avvengono correttamente. Prima di testare il tutto occorre che creiate nel vostro DB LDAP una '''ou = users''' e che vi inseriate almeno un utente di prova. A questo punto potete procedere ad un test di verifica dell'autenticazione dell'utente RADIUS LDAP così creato usando il comando di test nativo fornito con freeradius , come segue: {{{ radtest username password 192.168.200.1 123 testing123 |
e nella console dove avete lanciato freeradius in debug si vedrà: {{{ rlm_pap: login attempt with password password rlm_pap: Using SSHA encryption. rlm_pap: Normalizing SSHA-Password from base64 encoding rlm_pap: User authenticated successfully modcall[authenticate]: module "pap" returns ok for request 4 modcall: leaving group PAP (returns ok) for request 4 Sending Access-Accept of id 192 to 127.0.0.1 port 36883 |
Linea 93: | Linea 111: |
ovviamente sostituirete `username` e `password` con il nome utente e la password dell'utente LDAP appena creato, `192.168.200.1` con l'IP del vostro NAS , `123` con la porta usata per la comunicazione fra il server NAS ed il server RADIUS , `testing123` con il secret key per la comunicazione protetta fra NAS e RADIUS. | Se si prova a mettere una password sbagliata, l'ultima riga dovrebbe cambiare così {{{ rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=188, length=20 }}} Se è così il server radius funziona correttamente ed è possibile configurare il/i Nas per autenticarsi. = Ulteriori Risorse = * [[http://freeradius.org/|Sito Ufficiale]] = Ulteriori Risorse = * [[http://freeradius.org/|Sito Ufficiale]] * [[http://wiki.ubuntu-it.org/Server/RadiusSql|Autentificazione Radius con backend MySQL]] |
Linea 96: | Linea 128: |
CategoryServer | CategoryHomepage |
Introduzione
Questa guida spiega come configurare un server RADIUS con database LDAP.
RADIUS è un protocollo che regola i meccanismi di autenticazione di un utente che accede ad una LAN da un computer remoto.
I componenti che costituiscono l'architettura Radius sono:
un server di accesso alla rete chiamato NAS (Network Access Server);
un server che si occupa di autenticare l'utente sulla rete(il server RADIUS).
Autenticazione
Il database delle utenze che fornisce il servizio di backend come supporto al server RADIUS può essere:
un semplice file di testo (ad es il file /etc/passwd standard di UNIX)
un DB dedicato come LDAP o un altro database (PostgreSQL, MySQL).
Installazione
aprire un terminale ed al prompt dei comandi digitare
sudo apt-get install freeradius freeradius-ldap
Questo installerà i pacchetti necessari per il servizio RADIUS con supporto ad un backend che utilizza un database LDAP.
File e cartelle di configurazione
I file di configurazione sono nella la directory /etc/freeradius ed i file fondamentali sono 2:
radiusd.conf: contiene le direttive relative al tipo di autenticazione ed autorizzazione utilizzati dal vostro server RADIUS
clients.conf: contiene i dati del server NAS (compreso il secret key che serve per la comunicazione crittografata con il server RADIUS)
Nello specifico il file clients.conf deve avere una sezione come quella che segue, per ogni NAS che userà il server RADIUS per l'autentificazione:
client 192.168.200.1 { secret = testing123 shortname = routercisco nastype = cisco }
Sostitudendo 192.168.200.1 con l'IP del vostro NAS , testing123 con il secret key per la comunicazione fra il NAS ed il server RADIUS, routercisco con il nome con cui si vuole identificare il NAS (usato nei file di log) e cisco con il tipo di NAS utilizzato (i valori possibili dipendono dal modello di NAS, ma i più comuni sono cisco, livingston, e other per indicare un tipo di NAS che non rientra nelle categorie precedentemente elencate).
Tutti i log files inerenti lo stratup dei servizi sono contenuti nel file /var/log/syslog e nei file all'interno della directory /var/log/freeradius/.
Se non si ha bisogno del DB LDAP o MySQL è possibile saltare i paragrafi relativi, in quanto il sistema è già predisposto per supportare l'autenticazione UNIX classica (quella degli utenti definiti nel file /etc/passwd).
Se invece si vuole utilizzare come DB delle utenze RADIUS un DB LDAP o MySQL, è necessario seguire il paragrafo seguente.
Configurazione di un server RADIUS con backend LDAP
Si suppone che si abbia un database LDAP installato, configurato, e con qualche utente inserito.
Installare i pacchetti di freeradius per il supporto ad un backend che utilizza un database LDAP.
sudo apt-get install freeradius-ldap
Con un editor di testo e privilegi di amministratore modificare nel file /etc/freeradius/radiusd.conf i seguenti parametri:
nella sezione modules individuare la sottosezione ldap e modificare i seguenti parametri, con quelli del database ldap:
server = "wilcoyote.example.com" basedn = "dc=example,dc=com" filter = "(cn=%{Stripped-User-Name:-%{User-Name}})"
nel caso in cui l'accesso al database sia protetto con utente e password aggiungere anche
identity = "cn=admin,dc=example,dc=com" password = ldappassword
commentare la stringa
accessattr = "dialupAccess"
togliere inoltre il commento al parametro
password_attribute = userPassword
nella sezione authorize commentare la riga files e togliere il commento a ldap.
nella sezione authenticate commentare la riga unix e togliere il commento alla sottosezione Auth-Type LDAP.
Verifica e avvio del servizio
A questo punto è possibile avviare il server RADIUS con il comando:
freeradius -X
che lo avvia in modalità di debug così che si possa controllare che i tentativi di autenticazione avvengono correttamente.
Si può procedere ad un test di verifica dell'autenticazione di un utente usando il comando di test nativo fornito con freeradius, come segue:
radtest username password localhost 1812 testing123
sostituendo username e password con il nome utente e la password dell'utente, 1812 con la porta usata per la comunicazione fra il server NAS ed il server RADIUS(1812 è quella standard), testing123 con il secret key per la comunicazione protetta fra NAS e RADIUS.
Se tutto è corretto si avrà una risposta di questo tipo
Sending Access-Request of id 192 to 127.0.0.1 port 1812 User-Name = "username" User-Password = "password" NAS-IP-Address = 255.255.255.255 NAS-Port = 1812 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=192, length=20
e nella console dove avete lanciato freeradius in debug si vedrà:
rlm_pap: login attempt with password password rlm_pap: Using SSHA encryption. rlm_pap: Normalizing SSHA-Password from base64 encoding rlm_pap: User authenticated successfully modcall[authenticate]: module "pap" returns ok for request 4 modcall: leaving group PAP (returns ok) for request 4 Sending Access-Accept of id 192 to 127.0.0.1 port 36883
Se si prova a mettere una password sbagliata, l'ultima riga dovrebbe cambiare così
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=188, length=20
Se è così il server radius funziona correttamente ed è possibile configurare il/i Nas per autenticarsi.
Ulteriori Risorse