Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 6 del 24/11/2008 20.51.16

Nascondi questo messaggio

BR Indice()

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.

Le parti che costituiscono l'architettura RADIUS sono un apparato 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.

Autenticazione

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).

Installazione

Aprite una shell ed al prompt dei comandi digitate

sudo apt-get -y install freeradius freeradius-ldap

Questo installerà i pacchetti necessari per il servizio RADIUS con supporto ad un backend che utilizza un database LDAP.

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.

File e cartelle di configurazione

I file di configurazione sono sotto la directory /etc/freeradius ed il 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 un'entry come quella che segue:

client 192.168.200.1 {

secret = testing123
shortname = routercisco
nastype = cisco

} 

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).

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/.

Configurazione di un server RADIUS con backend LDAP

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:

  • nella sezione modules individuare la sottosezione ldap e modificare i seguenti parametri:

    server = "wilcoyote.example.com"
    basedn = "dc=example,dc=com"
    filter = "(cn=%{Stripped-User-Name:-%{User-Name}})"

    e 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. 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.

  • 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 autentificazione 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 

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 localhost 1812 testing123

ovviamente sostituirete username e password con il nome utente e la password dell'utente LDAP appena creato, 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 avrete 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 vedrete:

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 provate 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 e possiamo configurare il nostro Nas per autenticarsi con il server radius

Ulteriori Risorse


CategoryHomepage