Configurare un client Linux per l'autenticazione ldap dei laboratori
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 debian-host1.lab.unimore.it (non unimo.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 ldap3.unimore.it base dc=unimore,dc=it pagesize 100000 ldap_version 3 bind_policy soft ssl start_tls tls_cacert /etc/ssl/certs/europki-ca-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 Gusty Gibbon (7.10) 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://www.lettere.unimo.it/samba-ldap/certs/createhash.sh sh createhash.sh
per le macchine CentOS based
cd /etc/pki/tls/certs
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)
iptables
Per un uso automatico delle iptables, è comodo il pacchetto lokkit:
- editare /etc/init.d/lokkit e settare:
SCRIPT=/etc/default/lokkit.0
- copiare in /etc/default/lokkit.0
#!/bin/sh PATH=/sbin:$PATH iptables -N RH-Lokkit-0-50-INPUT iptables -F RH-Lokkit-0-50-INPUT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -s 155.185.1.25 --sport 123 -d 0/0 -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p tcp -m tcp -s 155.185.0.0/16 --dport 22 --syn -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth0 -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth1 -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -s 155.185.1.2 --sport 53 -d 0/0 -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -s 155.185.1.5 --sport 53 -d 0/0 -j ACCEPT iptables -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --syn -j REJECT iptables -A RH-Lokkit-0-50-INPUT -p udp -m udp -j REJECT
Avviare il servizio lokkit.
samba e join al dominio
Dovrebbe essere sufficiente modificare:
workgroup SAMBANFS security DOMAIN
Poi fare il join con
net -Uusername join SAMBANFS
Penne usb
Aggiungere:
/dev/sda1 /media/usb auto rw,user 0 0
in /etc/fstab e creare /media/usb
Da non dimenticare
- Bloccare da BIOS l'avvio da cdrom
- mettere la password su grub
- impedire il logon di root da gdm