Configurare un client Linux per l'autenticazione ldap dei laboratori

Da sia.
Versione del 14 ott 2010 alle 09:09 di malvezzi (discussione | contributi) (Panoramica)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Configurare un client Linux per l'autenticazione ldap dei laboratori

Panoramica

Si suppone che il client si chiami pinss9.lab.unimo.it ed il server OpenLDAP/samba sia ldap5.unimore.it. Il client linux monta una /home locale con le quote: fa parte del workgroup sambanfs per poter salvare i dati in una locazione condivisa.

Impostazioni per l'autenticazione

ldap.conf e configurazione di libnss e pam_ldap

Pacchetti da installare:

apt-get install ldap-utils openssl libnss-ldap libpam-ldap

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. Rispondere "workgroup" o "test" o simili (non "sambanfs").

Modificare il file /etc/ldap/ldap.conf come segue:

host ldap5.unimore.it 
base dc=unimore,dc=it
pagesize 100000
ldap_version 3
bind_policy soft
ssl start_tls 
tls_cacert /etc/ssl/certs/tcs-chain.pem
#tls_cacertdir /etc/ssl/certs

Nota: per debian sarge l'ultima riga si può anche decommentare (per debian etch no).

Cancellare il file /etc/pam_ldap.conf e renderlo soft link a /etc/ldap/ldap.conf:

rm /etc/pam_ldap.conf
ln -s /etc/ldap/ldap.conf /etc/pam_ldap.conf 

In Ubuntu il file di configurazione di pam_ldap da sostituire con il softlink è /usr/share/libpam-ldap/ldap.conf

Il file /etc/libnss-ldap.conf invece, conviene che una riga sia differente, per evitare che il client stabilisca onerose connessioni cifrate anche solo per la richiesta della mappatura degli uidNumber in username: modificare la riga di ssl da start_tls in "off":

ssl off

Cioe': i file /etc/ldap/ldap.conf e /etc/libnss-ldap.conf devono essere uguali a meno (eventualmente) della direttiva ssl.

In Ubuntu il file /etc/libnss-ldap.conf si chiama /etc/ldap.conf.

Autorizzazione basata su libnss

Se necessario che ai client acceda solo un sottoinsieme degli utenti LDAP, usare la direttiva

nss_base_passwd

del file

/etc/libnss-ldap.conf

. Ad esempio per permettere l'ingresso solo agli studenti di ingegneria:

# RFC2307bis naming contexts
# Syntax:
# nss_base_XXX          base?scope?filter
# where scope is {base,one,sub}
# and filter is a filter to be &'d with the
# default filter.
# You can omit the suffix eg:
# nss_base_passwd       ou=People,
# to append the default base DN but this
# may incur a small performance impact.
#nss_base_passwd        ou=People,dc=padl,dc=com?one
nss_base_passwd ou=people,dc=unimore,dc=it?one?ou=INGEGNERIA*

Per altri filtri, mettersi in contatto con support_security@unimore.it

Installare i certificati digitali per lo start_tls

cd /etc/ssl/certs
wget http://apps.lettere.unimo.it/samba-ldap/certs/createhash.sh
sh createhash.sh


per le macchine CentOS based

cd /etc/pki/tls/certs
wget http://apps.lettere.unimo.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 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 30 mila entry (dato del 8/11/2007).

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:
session required pam_mkhomedir.so skel=/etc/skel umask=0027
session required        pam_unix.so

common-password resta invariato.

Nelle macchine Ubuntu il file /etc/pam.d/common-session deve essere editato come segue:

session required pam_mkhomedir.so skel=/etc/skel umask=0022
session required        pam_unix.so

Sulle macchine Ubuntu Feisty è possibile che a causa di un bug in netbase scompaiano i files /etc/hosts.allow e /etc/hosts.deny. Per risolvere è sufficiente lanciare il comando sudo apt-get install tcpd

nscd

Il demone di cache dei nomi, nscd, aiuta di molto le performance. Invece causa problemi durante la configurazione dei servizi, perche' nasconde o dissimula certi errori.

Quindi, alla fine della configurazione e testato il tutto:

apt-get install nscd


NB: se tale demone era già installato e attivo, è possibile che la cache contenga dati obsoleti. Per verificare l'esistenza del problema verificare se i due comandi

getent passwd nome_utente

e

getent passwd | grep nome_utente

restituiscono risultati diversi

In caso affermatvo riavviare il demone affinché la cache venga ricreata

/etc/init.d/nscd restart

Pacchetti da installare

apt-get install gdm openoffice.org openoffice.org-l10n-it x-window-system-core gnome samba gnome-panel gnome-menus smbclient

e subito dopo:

apt-get remove ekiga

(se lo si vuole togliere)


samba e join al dominio

Installare il pacchetto samba e dovrebbe essere sufficiente modificare sul file smb.conf le righe:

workgroup SAMBANFS
security DOMAIN

Poi fare il join con

net -Uusername join SAMBANFS

Questa operazione dovrebbe permettere l'accesso alle cartelle di rete del dominio.

Penne usb

Aggiungere:

/dev/sda1       /media/usb        auto    rw,user         0       0

in /etc/fstab e creare /media/usb. Se il primo disco è però SATA, ovviamente va indicato /dev/sdb1 come primo dispositivo USB.

Da non dimenticare

  • Bloccare da BIOS l'avvio da cdrom
  • mettere la password su grub
  • impedire il logon di root da gdm