{"id":11345,"date":"2025-03-20T15:00:49","date_gmt":"2025-03-20T14:00:49","guid":{"rendered":"https:\/\/www.dreamsworld.it\/emanuele\/?p=11345"},"modified":"2025-03-20T15:01:02","modified_gmt":"2025-03-20T14:01:02","slug":"abilitare-autenticazione-ldap-su-macchine-linux","status":"publish","type":"post","link":"https:\/\/www.dreamsworld.it\/emanuele\/2025-03-20\/abilitare-autenticazione-ldap-su-macchine-linux\/","title":{"rendered":"Abilitare autenticazione LDAP su macchine linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Di recente mi \u00e8 capitato di dover configurare alcune macchine linux per permettere l&#8217;accesso agli utenti di dominio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La procedura, in breve, richiede di configurare l\u2019accesso con NSS\/PAM, gestire i certificati SSL per LDAPS e abilitare determinati gruppi come sudoers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Verifica dei requisiti<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di iniziare, assicurati di avere:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un account di AD con permessi di lettura sugli utenti e sui gruppi (nel caso di esempio ldapbind).<\/li>\n\n\n\n<li>Il certificato SSL per  eseguire la connessione LDAPS.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Installazione dei pacchetti necessari<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per permettere al sistema di interrogare il server LDAP, installiamo i pacchetti richiesti:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sudo apt update &amp;&amp; sudo apt install -y libnss-ldapd libpam-ldapd nslcd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Questi pacchetti consentono a Linux di utilizzare LDAP per la gestione degli utenti e dell\u2019autenticazione.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Configurazione di LDAPS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dobbiamo configurare il file <code>\/etc\/nslcd.conf<\/code> per connettere il sistema al server LDAP. Il file deve contenere informazioni come:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u2019URI del server LDAPS (o pi\u00f9 di uno, in caso di failover).<\/li>\n\n\n\n<li>Il percorso base per la ricerca degli utenti.<\/li>\n\n\n\n<li>Le credenziali dell\u2019account di servizio.<\/li>\n\n\n\n<li>Il mapping degli attributi tra LDAP e il sistema Linux.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco un esempio:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>uri ldaps:\/\/ldap.example.com<br \/>base dc=example,dc=com<br \/>binddn cn=ldapbind,ou=services,dc=example,dc=com<br \/>bindpw Password_Utente_ldapbind<br \/>ldap_version 3<br \/>pagesize 1000<br \/>referrals off<br \/>nss_nested_groups yes<br \/>ssl on<br \/>tls_reqcert demand<br \/>tls_cacertfile \/etc\/ssl\/certs\/ca-certificates.crt<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Configurazione dei certificati SSL<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se il server LDAP utilizza LDAPS, \u00e8 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\u00f9 lunga e con un&#8217;unica chiave ti permette di autenticare tutti i DC figli che verranno nel tempo connessi all&#8217;infrastruttura). Se non hai il CA root, puoi comunque recuperare il certificato del DC e salvarlo in <code>ldap-ca.crt<\/code> attraverso:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>openssl s_client -connect ldap.example.com:636 -showcerts &lt;\/dev\/null | openssl x509 -outform PEM > \/usr\/local\/share\/ca-certificates\/ldap-ca.crt<br \/>chmod 644 \/usr\/local\/share\/ca-certificates\/ldap-ca.crt<br \/>update-ca-certificates<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver aggiornato i certificati, il sistema sar\u00e0 in grado di stabilire connessioni sicure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Configurazione di NSS e PAM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aggiorniamo il file <code>\/etc\/nsswitch.conf<\/code> per abilitare LDAP nella ricerca di utenti e gruppi:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sed -i '\/^passwd:\/ { \/ ldap\/! s\/$\/ ldap\/ }' \/etc\/nsswitch.conf<br \/>sed -i '\/^group:\/ { \/ ldap\/! s\/$\/ ldap\/ }' \/etc\/nsswitch.conf<br \/>sed -i '\/^shadow:\/ { \/ ldap\/! s\/$\/ ldap\/ }' \/etc\/nsswitch.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Poi configuriamo PAM per creare automaticamente la home directory di un utente LDAP al primo login:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cat &lt;&lt;EOF > \/usr\/share\/pam-configs\/mkhomedir<br \/>Name: Create home directory on login<br \/>Default: no<br \/>Priority: 0<br \/>Session-Type: Additional<br \/>Session-Interactive-Only: yes<br \/>Session:<br \/>        optional                        pam_mkhomedir.so umask=0077<br \/>EOF<br \/><br \/>pam-auth-update --enable mkhomedir ldap<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6. Configurazione dei sudoers per i gruppi LDAP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se vogliamo che alcuni utenti LDAP abbiano accesso privilegiato, possiamo aggiungere i loro gruppi al file <code>\/etc\/sudoers.d\/eossorg<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esempio di configurazione:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>%LDAPAdmins ALL=(ALL) ALL<br \/>%Developers ALL=(ALL) NOPASSWD: ALL<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">7. Riavvio dei servizi e test<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver completato la configurazione, riavviamo i servizi e svuotiamo la cache relativa ai gruppi:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart nslcd<\/code><br \/><code>systemctl restart nscd<br \/>nscd --invalidate=group<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ora possiamo verificare che il sistema riconosca gli utenti LDAP attraverso <code>getent passwd username<\/code> o comunque aprendo una nuova shell ed effettuando la connessione SSH con utente di dominio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s all folks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Emanuele<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Di recente mi \u00e8 capitato di dover configurare alcune macchine linux per permettere l&#8217;accesso agli utenti di dominio. La procedura, in breve, richiede di configurare l\u2019accesso con NSS\/PAM, gestire i certificati SSL per LDAPS e abilitare determinati gruppi come sudoers. &hellip; <a href=\"https:\/\/www.dreamsworld.it\/emanuele\/2025-03-20\/abilitare-autenticazione-ldap-su-macchine-linux\/\">Leggi ancora &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[3],"tags":[653,640,2846,638,372,548],"class_list":["post-11345","post","type-post","status-publish","format-standard","hentry","category-computer","tag-guide","tag-how-to","tag-ldap","tag-linux","tag-software","tag-utenti"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts\/11345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/comments?post=11345"}],"version-history":[{"count":0,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts\/11345\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/media?parent=11345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/categories?post=11345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/tags?post=11345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}