Configurare per l'autenticazione via ldap e pam mount un client Linux
Configurare per l'autenticazione via ldap un client Linux
Questa configurazione ha enormi problemi di performance.
Sembra funzionare solo se il windows manager è xfce4 e la versione di debian è stable.
Non c'è nessuna garanzia che possa continuare a funzionare in futuro.
Il problema è che i programmi (e tra questi i windows manager) si aspettano di scrivere i dati di configurazione nella home dell'utente in certi dot-files.
Se la /home è troppo lenta e la scrittura di questi file fallisce, le applicazioni funzionano o molto lente, o male oppure (caso di firefox) non funzionano proprio perché non riescono a modificare/cancellare il loro file di LOCK.
Questa procedura è stata provata con Debian GNU/Linux stable sarge 3.1 i386.
Si suppone che il client si chiami pinss9.lab.unimo.it ed il server OpenLDAP/samba sia debian-host1.lab.unimore.it (non unimo.it). Il client linux monta come /home degli utenti le share [homes] di samba, tramite protocollo cifs.
Pacchetti da installare:
apt-get install ldap-utils openssl libnss-ldap libpam-ldap libpam-mount smbfs lsof
Si possono ignorare le richiesta di configurazione ldap perché i file di configurazione saranno riscritti a breve. La configurazione di samba chiede il nome di un workgroup, ma si tratta si un'informazione inutile perché samba non viene avviato. Rispondere "workgroup" o "test" o simili.
Modificare il file /etc/ldap/ldap.conf come segue:
host debian-host1.lab.unimore.it base dc=unimore,dc=it pagesize 100000 ldap_version 3 bind_policy soft ssl start_tls tls_cacert /etc/ssl/certs/tcs-chain2.pem #tls_cacertdir /etc/ssl/certs
Nota: per debian sarge l'ultima riga si può anche decommentare (per debian etch no).
Cancellare i file /etc/libnss-ldap.conf e /etc/pam_ldap.conf e renderli soft link a /etc/ldap/ldap.conf.
Installare i certificati digitali per lo start_tls
cd /etc/ssl/certs wget http://www.appslettere.unimore.it/samba-ldap/certs/createhash.sh sh createhash.sh
Lo script createhash.sh copia dal server di lettere i certificati necessari per l'autenticazione e crea gli indici necessari al loro uso.
Per provare che lo start_tls funziona lanciare:
ldapsearch -x -ZZ 'uid=malvezzi'
Modifiche a nsswitch.conf, pam_mount.conf e pam.d
Modificare il file /etc/nsswitch.conf e aggiungere ldap nelle sezioni passwd e shadow (dopo compat, con uno spazio come separatore). Lanciare il comando "getent passwd" e controllare di avere oltre 27 mila entry.
Modificare il file /etc/security/pam_mount.conf e aggiungere in fondo al file la riga:
volume * cifs debian-host1.lab.unimo.it homes /home/& - - - volume * cifs debian-host1.lab.unimo.it homes /home/n& - - -
(In questo modo si permette il login anche agli studenti, che hanno come username il numero tessera, ma come /home il numero tessera prefissato da "n").
Per eliminare i mount point, bisogna modificare così la riga di smbumount:
smbumount /usr/bin/smbumount %(MNTPT) && rm -rf %(MNTPT)
Si può impedire tout-court il logon degli studenti con lo uid prefissato da "n", ad esempio con pam_time.
Creare i soft link:
ln -s /bin/bash /bin/mosh ln -s /home /homel
Spostarsi in /etc/pam.d e modificare i file common-* in questo modo:
common-auth: auth sufficient pam_unix.so nullok_secure auth required pam_ldap.so use_first_pass common-account: account sufficient pam_unix.so likeauth nullok account required pam_ldap.so use_first_pass
common-session e common-password restano invariati
creare i file:
common-auth-pam_mount: auth sufficient pam_unix.so nullok_secure auth required pam_mount.so use_first_pass auth required pam_ldap.so use_first_pass common-session-pam_mount: session required pam_unix.so session optional pam_mount.so use_first_password
Modificare /etc/pam.d/login e /etc/login/[xdm|gdm|kdm] per includere common-auth-pam_mount e common-session-pam_mount