Dalla release di Ubuntu 7.10, è stato introdotto auth_client_config che consente di gestire agevolmente più configurazioni(profili) e di passare da uno all’altro in modo molto semplce. I procedimenti seguenti utilizzeranno tale feature.
root@ubuntu-desktop:~# apt-get install ldap-auth-config ldap-utils
Nota
L’installazione del pacchetto ldap-utils non è strettamente necessaria. Torna però utile per testare le interrogazioni ldap.
Una volta installati i pacchetti,verrà lanciato uno script di configurazione. Si risponda alle domande come indicato di seguito, sostituendo i dati di esempio con i propri:
| Should debconf manage LDAP configuration?: | sì |
| LDAP server Uniform Resource Identifier: | ldap://192.168.1.150 |
| Distinguished name: | dc=isi,dc=lan |
| LDAP account for root: | cn=admin,dc=isi,dc=lan |
| Password di root: | passwordDiRoot |
(Per ciò che non viene espressamente citato sopra, si accetti il valore di default proposto)
Nota
Per Ubuntu versione 8.10
Per Ubuntu versione < 8.10
Assicuriamoci che la direttiva ldapi://192.168.1.150 sia commentata. In presenza di più modi per identificare il server ldap, l’autenticazione cessa di funzionare.
Procediamo quindi con la scelta del metodo di bind da utilizzare e la sua configurazione.
bind anonimo o bind autenticato
Ogni client recupera le informazioni sugli utenti collegandosi (bind) al server in modo autenticato (passando username e password) od in modo anonimo.
Differenze tra bind autenticato con rootbinddn e bind anonimo
Usando il bind anonimo, agli utenti che desiderano cambiare la propria password, verrà richiesta la password precedente. Lo stesso discorso vale per l’utente root. Con il bind autenticato, questo non avviene.
bind autenticato con rootbindn
Il bind autenticato richiede che le seguenti direttive vengano valorizzate
host 192.168.1.150
rootbinddn cn=admin,dc=isi,dc=lan
base dc=isi,dc=lan
uri ldap://192.168.1.150
ldap_version 3
pam_password md5
Nota
Sostituire 192.168.1.150 con l’ip del server su cui gira slapd.
rootbinddn viene valorizzata con il distinguished name dell’utente amministratore del database ldap, nel nostro caso cn=admin,dc=isi,dc=lan. E anche necessario scrivere la password in chiaro dell’utente amministratore del database LDAP (cn=admin,dc=isi,dc=lan) nel file /etc/ldap.secret, che dovrà avere permessi 600.
Il bind anonimo
Il bind anonimo non richiede nè di configurare un particolare utente per accedere al database nè di creare il file /etc/ldap.secret. Tutto quello che serve è valorizzare le seguenti direttive
host 192.168.1.150
base dc=isi,dc=lan
uri ldap://192.168.1.150
ldap_version 3
pam_password md5
Nota
Sostituire 192.168.1.150 con l’ip del server su cui gira slapd.
Per ragioni di sicurezza è preferibile utilizzare il bind anonimo, evitando così di lasciare il file ldap.secret su tutti i client.
BASE dc=isi,dc=lan
URI ldap://192.168.1.150
Creare, con un editor di testo, un file chiamato isi, popolandolo con le righe seguenti, e salvarlo in :file`/etc/auth-client-config/profile.d/`
Se il sistema in uso è una Ubuntu di versione inferiore alla 8.10:
[isi-ldap]
nss_passwd=passwd: compat ldap
nss_group=group: compat ldap
nss_shadow=shadow: compat ldap
pam_auth=auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
pam_account=account sufficient pam_ldap.so
account required pam_unix.so
pam_password=password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/
session optional pam_ldap.so
session optional pam_foreground.so
[isi-local]
nss_group=group: compat
nss_passwd=passwd: compat
nss_shadow=shadow: compat
pam_account=account required pam_unix.so
pam_auth=auth required pam_unix.so nullok_secure
pam_password=password required pam_unix.so nullok obscure md5
pam_session=session required pam_unix.so
session optional pam_foreground.so
Se il sistema in uso è Ubuntu versione 8.10:
[isi-ldap]
nss_passwd=passwd: compat ldap
nss_group=group: compat ldap
nss_shadow=shadow: compat ldap
nss_netgroup=netgroup: nis
pam_auth=auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
pam_account=account sufficient pam_ldap.so
account required pam_unix.so
pam_password=password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/
session optional pam_ldap.so
session optional pam_foreground.so
[isi-local]
nss_group=group: compat
nss_netgroup=netgroup: nis
nss_passwd=passwd: compat
nss_shadow=shadow: compat
pam_account=account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
pam_auth=auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
pam_password=password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try
password requisite pam_deny.so
password required pam_permit.so
pam_session=session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ck_connector.so nox11
Per verificare che il profilo venga rilevato correttamente si potrà utilizzare il comando auth-client-config -l:
root@ubuntu-desktop:~# auth-client-config -l
Available profiles are:
isi-ldap
isi-local
kerberos_example
lac_ldap
ldap_example
Come si può notare, i profili isi-ldap e isi-local aggiunti in precedenza vengono trovati ed elencati. Non resta che attivare il profilo isi-ldap:
root@ubuntu-desktop:~# auth-client-config -a -p isi-ldap
Ed effettuare un tentativo di interrogazione del database ldap:
root@ubuntu-desktop:~# getent passwd
L’output del comando dovrebbe mostrare tutto il contenuto del file locale /etc/passwd seguito da quello aggiuntivo fornito dal database ldap.