Configurare un client CentOS per l'autenticazione ldap

Da sia.
Vai alla navigazione Vai alla ricerca

Installare e configurare le librerie ldap

Se non presenti installare i pacchetti:

  • nss_ldap
  • openldap-clients
  • openssl
yum install nss_ldap openldap-clients openssl

Editare /etc/openldap/ldap.conf e modificarlo come segue

BASE    dc=unimore,dc=it
URI     ldap://debian-host1.lab.unimore.it ldap://ldap.unimore.it
TLS_CACERT /etc/pki/tls/certs/europki-ca-chain.pem
  • BASE: indica il nome dell'albero
  • URI: indica l'indirizzo dei server ldap da interrogare. Il secondo è per il fault tolerance
  • TLS_Cert: indica il path dei certificati TLS che servono per l'interrogazioni LDAP Cifrate (con lo switch -ZZ)

Oppure usare l'apposita Utility

authconfig-tui

e scegliere le voci:

  • Use LDAP
  • Use MD5 Passwords
  • Use Shadow Passwords
  • Use LDAP Authentication
  • Local authorization is sufficient (Nel caso di utenti locali al server)

LDAP Settings:

  • Use TLS
  • Server: ldap://debian-host1.lab.unimore.it
  • Base DN: dc=unimore,dc=it

in questo caso bisogna copiare il file dei certificati della CA in

/etc/openldap/cacerts

Oppure, molto meglio

rm -f /etc/openldap/cacerts
ln -s /etc/pki/tls/certs/europki-ca-chain.pem /etc/openldap/cacerts

Il file europki-ca-chain.pem è la concatenazione dei file di certificato di europki (l'autorità di certificazione dei server per UNIMORE) ed è scaricabile autonomamente secondo le istruzioni a Questo Indirizzo oppure con:

cd /etc/pki/tls/certs
sudo wget http://www.lettere.unimo.it/samba-ldap/certs/createhash.sh
sudo sh createhash.sh

Eventualmente aprire i Firewall da e per i server LDAP:

  • Malvezzi per i firewall sulle macchine LDAP
  • Calanca per i Firewall delle Sottoreti
  • Tu per il tuo firewall interno alla tuo server

Verifica

ldapsearch -x 'uid=UIDdiUnUtenteEsistente' 

Se non funziona e il tempo di attesa supera la decina di secondi, probabilmente è un problema di firewall.

ldapsearch -x -ZZ 'uid=UIDdiUnUtenteEsistente'

Se non funziona è un problema di certificati

ldapsearch -x -ZZ 'uid'

Se non restituisce circa 30.000 entry c'è un qualche errore misterioso per cui contattare Supporto Sistemi

Configurare il servizio nss (risoluzione degli utenti)

Se si è usata l'apposita utility authconfig-tui non c'è bisogno di fare nulla; altrimenti editare il file

/etc/nsswitch.conf

come segue:

passwd:     files ldap
shadow:     files ldap
group:      files ldap

Configurare pam-ldap

Fare 2 link simbolici

ln -s /bin/bash /bin/mosh
ln -s /home /homel

Servono per la logica di funzionamento di LDAP: se mancano ci sono dei problemi con il login degli utenti sulla macchina (he sono monitorabili con un tail -f /var/log/secure

Aggiungere la seguente riga in

/etc/pam.d/sshd

session    required     pam_mkhomedir.so skel=/etc/skel umask=0027

che crea la home dell' utente On The Fly al suo login se non esiste già


Cambiare la Build_Policy nel file

/etc/ldap.conf

bind_policy soft

per evitare di impiegare 16 minuti per fare il boot nel caso che il server LDAP non venga trovato. Nel Caso si usi l'apposita utility authconfig-tui, ricordarsi di modificare questo parametro TUTTE le volte perchè il file viene sovrascritto

Se non si è usata l'apposita utility authconfig-tui, modificare il file

/etc/pam.d/system-auth

come di seguito

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so 

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so 

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so

Da non dimenticare

Aquesto punto, qualunque utente presente in LDAp può accedere a questa macchina! Precipitarsi a modificare il file

/etc/ssh/sshd_config

e aggiungere una riga del tipo

AllowUsers UIDutente1 UIDutente2 ... UIDutenteN