Configurare un client CentOS per l'autenticazione ldap
Installare e configurare le librerie ldap
Se non presenti installare i pacchetti:
- nss_ldap
- openldap-clients
- openssl
yum install nss_ldap openldap-clients openssl
Editare /etc/openldap/ldap.conf e modificarlo come segue
BASE dc=unimore,dc=it URI ldap://ldap5.unimore.it TLS_CACERT /etc/pki/tls/certs/DigiCertCA.crt
- BASE: indica il nome dell'albero
- URI: indica l'indirizzo dei server ldap da interrogare. Il secondo è per il fault tolerance
- TLS_Cert: indica il path dei certificati TLS che servono per l'interrogazioni LDAP Cifrate (con lo switch -ZZ)
Oppure usare l'apposita Utility
authconfig-tui
e scegliere le voci:
- Use LDAP
- Use MD5 Passwords
- Use Shadow Passwords
- Use LDAP Authentication
- Local authorization is sufficient (Nel caso di utenti locali al server)
LDAP Settings:
- Use TLS
- Server: ldap://ldap5.unimore.it
- Base DN: dc=unimore,dc=it
in questo caso bisogna copiare il file dei certificati della CA in
/etc/openldap/cacerts
Il file DigiCertCA.crt è scaricabile autonomamente secondo le istruzioni a Questo Indirizzo oppure con:
cd /etc/pki/tls/certs sudo wget http://apps.lettere.unimo.it/samba-ldap/certs/createhash.sh sudo sh createhash.sh
Verifica
ldapsearch -x 'uid=UIDdiUnUtenteEsistente'
Se non funziona e il tempo di attesa supera la decina di secondi, probabilmente è un problema di firewall.
ldapsearch -x -ZZ 'uid=UIDdiUnUtenteEsistente'
Se non funziona è un problema di certificati
ldapsearch -x -ZZ 'uid'
Se non restituisce circa 30.000 entry c'è un qualche errore misterioso per cui contattare Supporto Sistemi
Configurare il servizio nss (risoluzione degli utenti)
Se si è usata l'apposita utility authconfig-tui non c'è bisogno di fare nulla; altrimenti editare il file
/etc/nsswitch.conf
come segue:
passwd: files ldap shadow: files ldap group: files
Inoltre modificare nel file /etc/ldap.conf le righe (se non si usa authconfig-tui):
uri ldap://ldap5.unimore.it ssl start_tls tls_cacertdir /etc/openldap/cacerts
Configurare pam-ldap
Fare 2 link simbolici
ln -s /bin/bash /bin/mosh ln -s /home /homel
Servono per la logica di funzionamento di LDAP: se mancano ci sono dei problemi con il login degli utenti sulla macchina (he sono monitorabili con un tail -f /var/log/secure
Aggiungere la seguente riga in /etc/pam.d/sshd
session required pam_mkhomedir.so skel=/etc/skel umask=0027
che crea la home dell'utente On The Fly al suo login se non esiste già
Cambiare la bind_policy nel file /etc/ldap.conf:
bind_policy soft
per evitare di impiegare 16 minuti per fare il boot nel caso che il server LDAP non venga trovato.
Nel caso si usi l'apposita utility authconfig-tui, ricordarsi di modificare questo parametro TUTTE le volte perché il file viene sovrascritto
Se non si è usata l'apposita utility authconfig-tui, modificare il file
/etc/pam.d/system-auth
come di seguito
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so
Chi ha usato authconfig-tui potrebbe dover modificare a mano il file /etc/nsswitch.conf e togliere la risoluzione ldap per i gruppi. Infatti talvolta si impatta in un timeout tale da impedire il login.
Da non dimenticare
Aquesto punto, qualunque utente presente in LDAp può accedere a questa macchina! Precipitarsi a modificare il file
/etc/ssh/sshd_config
e aggiungere una riga del tipo
AllowUsers UIDutente1 UIDutente2 ... UIDutenteN