Autenticazione centralizzata con LDAP
Da Faber Libertatis.
| | |
| | contenuto obsoleto |
|
Questa pagina contiene alcune informazioni obsolete, ma verrà aggiornata a breve. Nel frattempo puoi consultare questo argomento come trattato nella serata di formazione interna.
| |
In questo documento vedremo come realizzare un sistema di autenticazione centralizzata basato su una directory LDAP. I procedimenti seguiti sono più o meno gli stessi usati per la preparazione dell'internet point NSE. Questo documento non vuole essere un howto su cos'è un albero LDAP, verranno quindi esposti solo i passi necessari alla configurazione dell'autenticazione centralizzara. Si cercherà in ogni caso di "narrare" il tutto in una maniera il più user-friendly possibile.
Indice della pagina |
Lato Server
Queste sono le operazioni da eseguire sulla macchina che fungerà da servente LDAP
OpenLDAP
Innanzitutto è necessario installare openldap
apt-get install slapd
durante la configurazione verranno poste alcune domande, come ad esempio in dominio e la password di amministratore. Il dominio servirà a configurare quella che sarà la radice del nosto albero ldap; ad esempio, se come dominio abbiamo inserito fake.net la radice LDAP sarà dc=fake,dc=net (DC sta per Domain Component); la password di amministratore sarà la password che verrà impostata per l'utente cn=admin,dc=fake,dc=net (CN sta per Common Name), che in pratica è l'utente root di LDAP.
Ora è necessario modificare il file di configurazione del demone, /etc/ldap/slapd.conf, in modo da permettere ai singoli utenti di aggiornare i propri dati
access to attrs=loginShell
by dn="cn=admin,dc=fake,dc=net" write
by self write
by * read
access to attrs=gecos
by dn="cn=admin,dc=fake,dc=net" write
by self write
by * read
Poi, per avere delle maggiori performances diciamo a openldap quali campi indicizzare, per sveltire le ricerche
index objectClass eq index cn pres,sub,eq index sn pres,sub,eq index uid pres,sub,eq index displayName pres,sub,eq index default sub index uidNumber eq index gidNumber eq index mail,givenName eq,subinitial index dc eq
Dopo aver modificato come sopra il file di configurazione, fermiamo openldap
# /etc/init.d/slapd stop
generiamo gli indici
# slapindex
e quindi avviamo il demone.
# /etc/init.d/slapd start
La creazione degli utenti, dei gruppi e dell'albero iniziale LDAP verrà vista in seguito.
Lato Server e Lato Client
Le seguenti operazioni andranno eseguite sia sul server che sui client
LDAP client
Per prima cosa installiamo l'LDAP client
apt-get install ldap-utils
e ne modifichiamo il file di configurazione, /etc/ldap/ldap.conf, definendo al suo interno il server e l'albero base LDAP (dc=fake,dc=net)
BASE dc=fake,dc=net URI ldap://ldap.fake.net
dove ldap.fake.net è l'hostname o l'indirizzo IP del server LDAP
NSS e PAM
Vedremo qui come installare e configurare le librerie PAM e NSS per l'autenticazione ldap (PAM = Pluggable Authentication Module; NSS = Name Service Switch).
Installazione librerie
apt-get install libpam-ldap libnss-ldap
rispondere alle domande poste con:
- LDAP server host: ldap.fake.net
- distinguished name of the search base: dc=fake,dc=net
- LDAP version to use: 3
- Make local root database admin: Si
- Database requires logging in: No
- Root Login Account: cn=admin,dc=fake,dc=net
- Root Login Password: password-server-ldap
al termine dell'installazione dei pacchetti verificare che esista il file /etc/ldap.secret, e che al suo interno vi sia la password dell'amministratore LDAP (cn=admin,dc=fake,dc=net). Se così non fosse bisogna provvedere a creare il file:
# echo "password-server-ldap" > /etc/ldap.secret # chmod 600 /etc/ldap.secret
Configurazione NSS
Configuriamo ora NSS per fare il lookup utenti e gruppi su LDAP:
modifichiamo come segue il file /etc/nsswitch.conf
passwd: files ldap group: files ldap shadow: files ldap
inoltre è necessario modificare il file /etc/libnss-ldap.conf, e decommentare la linea con l'istruzione
rootbinddn ...
facendola diventare
rootbinddn cn=admin,dc=fake,dc=net
Configurazione PAM
Per lasciare agli utenti la possibilità di cambiare la propria password è necessario modificare il file /etc/pam.d/common-password, in modo che al suo interno ci sia SOLO (commentare altre righe eventualmente presenti)
password sufficient pam_ldap.so ignore_unknown_user md5 password required pam_unix.so nullok obscure min=4 max=8 md5
Albero LDAP iniziale
Per la popolazione iniziale dell'albero ldap creiamo un file, iniziale.ldif, che poi importeremo in OpenLDAP. Il file deve contenere:
# file: iniziale.ldif # rootdn: dc=fake,dc=net dn:dc=fake,dc=net objectClass: top objectClass: dcObject objectClass: organization o: fake.net dc: fake # OU=People, la "directory" dove verranno poi contenuti gli utenti dn:ou=People,dc=fake,dc=net ou: People objectClass: top objectClass: organizationalUnit # OU=Group, la "directory" dove verranno poi contenuti i gruppi dn:ou=Group,dc=fake,dc=net ou: Group objectClass: top objectClass: organizationalUnit
possiamo ora procedere con l'importazione:
ldapadd -h localhost -x -W -D "cn=admin,dc=fake,dc=net" -c -f iniziale.ldif
e per verificare il corretto inserimento dei dati diamo il comando
ldapsearch -x -h localhost
che come output dovrebbe darci la "panoramica" dell'albero ldap, tranne le informazioni riservate come le password.
Se invece vogliamo vedere proprio tutto, password comprese (criptate), dobbiamo dare
ldapsearch -x -W -D "cn=admin,dc=fake,dc=net" -h localhost
Tools per la gestione degli utenti e gruppi
Invece di editare "manualmente" l'albero ldap per aggiungere, modificare, cancellare utenti e gruppi vi sono numerosi front-end che possono gestire facilemente tutto ciò, eccone alcuni:
Utility Grafiche
- Kuser (si, proprio il tool di KDE)
- Directory Administrator
- Ldap User Manager


