Configurare un client Debian GNU/Linux per l'autenticazione ldap con sss
System Security Services Daemon (SSSD)
Il sistema System Security Services Daemon è alternativo ai tradizionali libnss-ldap e libpam-ldap. Questo servizio è più rispettoso della privacy, quindi getent passwd non restituisce gli utenti anche se è possibile fare il login con ssh.
Installazione
apt-get install libnss-sss libpam-sss sssd openssl ldap-utils
Scaricare i certificati
cd /etc/ssl/certs wget https://apps.lettere.unimo.it/samba-ldap/certs/createhash.sh sh createhash.sh
Editare ldap.conf
BASE dc=unimore,dc=it URI ldap://ldap5.unimore.it pagesize 100000 ldap_version 3 bind_policy soft ssl start_tls tls_cacert /etc/ssl/certs/DigiCertCA.crt
Fare un test con ldapsearch:
ldapsearch -x -ZZ -h ldap5.unimore.it 'uid=una_username'
Modificare pam
Aggiungere come ultima riga a /etc/pam.d/common-session
# end of pam-auth-update config session required pam_mkhomedir.so skel=/etc/skel umask=0027
Creare i soft link per shell e home
ln -s /home /homel ln -s /bin/bash /bin/mosh
Configurazione di sssd.conf
Compiare il template /usr/share/doc/sssd-common/examples/sssd-example.conf in /etc/sssd/sssd.conf ed assegnare il privilegi corretti al file:
cp /usr/share/doc/sssd-common/examples/sssd-example.conf /etc/sssd/sssd.conf chmod 600 /etc/sssd/sssd.conf chown root:root /etc/sssd/sssd.conf
Editare il file di configurazione in 2 punti
domains = LDAP
[domain/LDAP] id_provider = ldap auth_provider = ldap ldap_schema = rfc2307 ldap_uri = ldap://ldap5.unimore.it ldap_search_base = dc=unimore,dc=it ldap_tls_reqcert = demand cache_credentials = true enumerate = False
Il file /etc/sssd/sssd.conf deve essere chmod 600 e chown root:root, altrimenti il servizio sssd non si avvia. La causa precisa dell'errore e' in /var/log/syslog.
Lanciare il comando:
sudo pam-auth-update
e scegliere
[*] SSS authentication [*] Unix authentication
NOTA: è possibile che nelle versioni più recenti di Debian si riceva, al momento del login grafico, l'errore "Could not connect to session bus: /usr/bin/dbus-launch terminated abnormally without any error message". In questo selezionare anche l'opzione:
[*] Register user sessions in the systemd control group hierarchy
Svuotare la cache
Talvolta sssd mantiene la cache dei gruppi pittosto a lungo.
Per un refresh, usare sss_cache -g gruppo per il refresh di un gruppo.
Nelle versioni più antiche, sss_cache non esiste e bisogna spegnere sssd e cancellare il file /var/lib/sss/db/cache_LDAP.ldb