Configurare un client Linux per l'autenticazione ldap dei laboratori

Da sia.
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 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