Abilitare autenticazione LDAP su macchine linux

Di recente mi è capitato di dover configurare alcune macchine linux per permettere l’accesso agli utenti di dominio.

La procedura, in breve, richiede di configurare l’accesso con NSS/PAM, gestire i certificati SSL per LDAPS e abilitare determinati gruppi come sudoers.

1. Verifica dei requisiti

Prima di iniziare, assicurati di avere:

  • Un account di AD con permessi di lettura sugli utenti e sui gruppi (nel caso di esempio ldapbind).
  • Il certificato SSL per eseguire la connessione LDAPS.

2. Installazione dei pacchetti necessari

Per permettere al sistema di interrogare il server LDAP, installiamo i pacchetti richiesti:

sudo apt update && sudo apt install -y libnss-ldapd libpam-ldapd nslcd

Questi pacchetti consentono a Linux di utilizzare LDAP per la gestione degli utenti e dell’autenticazione.

3. Configurazione di LDAPS

Dobbiamo configurare il file /etc/nslcd.conf per connettere il sistema al server LDAP. Il file deve contenere informazioni come:

  • L’URI del server LDAPS (o più di uno, in caso di failover).
  • Il percorso base per la ricerca degli utenti.
  • Le credenziali dell’account di servizio.
  • Il mapping degli attributi tra LDAP e il sistema Linux.

Ecco un esempio:

uri ldaps://ldap.example.com
base dc=example,dc=com
binddn cn=ldapbind,ou=services,dc=example,dc=com
bindpw Password_Utente_ldapbind
ldap_version 3
pagesize 1000
referrals off
nss_nested_groups yes
ssl on
tls_reqcert demand
tls_cacertfile /etc/ssl/certs/ca-certificates.crt

4. Configurazione dei certificati SSL

Se il server LDAP utilizza LDAPS, è necessario installare il certificato CA. Puoi importare sulla macchina il certificato CA o recuperare i certificati dei singoli server LDAPS (tieni a mente che tipicamente il certificato CA padre ha una scadenza più lunga e con un’unica chiave ti permette di autenticare tutti i DC figli che verranno nel tempo connessi all’infrastruttura). Se non hai il CA root, puoi comunque recuperare il certificato del DC e salvarlo in ldap-ca.crt attraverso:

openssl s_client -connect ldap.example.com:636 -showcerts </dev/null | openssl x509 -outform PEM > /usr/local/share/ca-certificates/ldap-ca.crt
chmod 644 /usr/local/share/ca-certificates/ldap-ca.crt
update-ca-certificates

Dopo aver aggiornato i certificati, il sistema sarà in grado di stabilire connessioni sicure.

5. Configurazione di NSS e PAM

Aggiorniamo il file /etc/nsswitch.conf per abilitare LDAP nella ricerca di utenti e gruppi:

sed -i '/^passwd:/ { / ldap/! s/$/ ldap/ }' /etc/nsswitch.conf
sed -i '/^group:/ { / ldap/! s/$/ ldap/ }' /etc/nsswitch.conf
sed -i '/^shadow:/ { / ldap/! s/$/ ldap/ }' /etc/nsswitch.conf

Poi configuriamo PAM per creare automaticamente la home directory di un utente LDAP al primo login:

cat <<EOF > /usr/share/pam-configs/mkhomedir
Name: Create home directory on login
Default: no
Priority: 0
Session-Type: Additional
Session-Interactive-Only: yes
Session:
optional pam_mkhomedir.so umask=0077
EOF

pam-auth-update --enable mkhomedir ldap

6. Configurazione dei sudoers per i gruppi LDAP

Se vogliamo che alcuni utenti LDAP abbiano accesso privilegiato, possiamo aggiungere i loro gruppi al file /etc/sudoers.d/eossorg.

Esempio di configurazione:

%LDAPAdmins ALL=(ALL) ALL
%Developers ALL=(ALL) NOPASSWD: ALL

7. Riavvio dei servizi e test

Dopo aver completato la configurazione, riavviamo i servizi e svuotiamo la cache relativa ai gruppi:

systemctl restart nslcd
systemctl restart nscd
nscd --invalidate=group

Ora possiamo verificare che il sistema riconosca gli utenti LDAP attraverso getent passwd username o comunque aprendo una nuova shell ed effettuando la connessione SSH con utente di dominio.

That’s all folks.

Emanuele

Pubblicato da

Ingegnere. Si divide tra lavoro, bicicletta, monociclo e volontariato. Vive in una casa con un ciliegio insieme ad una moglie, tre bimbe e otto pesciolini che non lo aiutano a tenere in ordine.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.