Configurare per l'autenticazione via ldap e pam mount un client Linux

Da sia.
Vai alla navigazione Vai alla ricerca

Configurare per l'autenticazione via ldap un client Linux

Warning
Warning
Warning

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