User Tools

Site Tools


doc:appunti:linux:sa:ldap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:linux:sa:ldap [2009/02/02 15:11] – external edit 127.0.0.1doc:appunti:linux:sa:ldap [2011/10/31 14:38] (current) – [Configurazione del server] niccolo
Line 9: Line 9:
 È possibile utilizzare LDAP per numerosi scopi; come database per l'**autenticazione** degli utenti Unix, come **rubrica di contatti** email, ecc. È possibile utilizzare LDAP per numerosi scopi; come database per l'**autenticazione** degli utenti Unix, come **rubrica di contatti** email, ecc.
  
-Utilizzando **LDAP per l'autenticazione** è interessante la possibile integrazione con il sottosistema //**[[kerberos|Kerberos]]** versione 5//. Le informazioni relative all'autenticazione (estermamente sensibili dal punto di vista della sicurezza) vengono tolte dal database LDAP e memorizzate nel più sicuro database Kerberos, inoltre si viene ad usufruire del sistema di ticketing di Kerberos, utilie ad esempio per abbinare il montaggio sicuro delle home directory via **NFSv4**.+Utilizzando **LDAP per l'autenticazione** è interessante la possibile integrazione con il sottosistema //**[[kerberos|Kerberos]]** versione 5//. Le informazioni relative all'autenticazione (estremamente sensibili dal punto di vista della sicurezza) vengono tolte dal database LDAP e memorizzate nel più sicuro database Kerberos, inoltre si viene ad usufruire del sistema di ticketing di Kerberos, utilie ad esempio per abbinare il montaggio sicuro delle home directory via **NFSv4**.
  
   * [[http://www.linuxjournal.com/article/6876|Paranoid Penguin - Authenticate with LDAP]]   * [[http://www.linuxjournal.com/article/6876|Paranoid Penguin - Authenticate with LDAP]]
Line 93: Line 93:
 directory       "/var/lib/ldap" directory       "/var/lib/ldap"
  
-Wha can change the userPassword.+Who can change the userPassword.
 access to attrs=userPassword,shadowLastChange access to attrs=userPassword,shadowLastChange
         by dn="cn=admin,dc=rigacci,dc=org" write         by dn="cn=admin,dc=rigacci,dc=org" write
Line 106: Line 106:
         by * read         by * read
 </file> </file>
 +
 +Attenzione: l'intero database è accessibile in lettura anche agli utenti anonimi. Eventualmente aggiungere una clausola **''by anonymous auth''** anche alla seconda ACL.
  
 Le voci **rootdn** e **rootpw** (sopra commentate) possono essere utilizzate per memorizzare le credenziali di amministratore nel file di configurazione invece che nel database. Le voci **rootdn** e **rootpw** (sopra commentate) possono essere utilizzate per memorizzare le credenziali di amministratore nel file di configurazione invece che nel database.
Line 116: Line 118:
 # following command: # following command:
 # #
-# openssl req -config /etc/ldap/tls/ldap.soluzioni.per.cnf \ +# openssl req -config /etc/ldap/ssl/ldap.rigacci.org.cnf \ 
-#     -new -x509 -days 1095 -nodes \ +#     -new -x509 -days 1461 -nodes \ 
-#     -keyout /etc/ldap/tls/ldap.soluzioni.per.pem \ +#     -keyout /etc/ldap/ssl/ldap.rigacci.org.pem \ 
-#     -out /etc/ldap/tls/ldap.soluzioni.per.pem+#     -out /etc/ldap/ssl/ldap.rigacci.org.pem
 # #
 # The resulting file (unencrypted otherwise Slapd can't start # The resulting file (unencrypted otherwise Slapd can't start
Line 127: Line 129:
 [ req ] [ req ]
 prompt                          = no prompt                          = no
-default_bits                    = 1024+default_bits                    = 2048
 distinguished_name              = ldap.rigacci.org_distinguished_name distinguished_name              = ldap.rigacci.org_distinguished_name
  
Line 140: Line 142:
 </file> </file>
  
-Il certificato **''/etc/ldap/tls/ldap.rigacci.org.pem''** deve essere protetto con permessi **0400** e deve appartenere all'utente LDAP (**openldap:openldap** in Debian). Per utilizzarlo si aggiunge a ''/etc/ldap/slapd.conf'' le righe:+Il certificato **''/etc/ldap/ssl/ldap.rigacci.org.pem''** deve essere protetto con permessi **0400** e deve appartenere all'utente LDAP (**openldap:openldap** in Debian). Per utilizzarlo si aggiunge a ''/etc/ldap/slapd.conf'' le righe:
  
 <file> <file>
 # Allow the server to picks-up the default cypher. # Allow the server to picks-up the default cypher.
 # TLSCipherSuite         HIGH:MEDIUM:+SSLv2 # TLSCipherSuite         HIGH:MEDIUM:+SSLv2
-TLSCertificateFile     /etc/ldap/tls/ldap.rigacci.org.pem +TLSCertificateFile     /etc/ldap/ssl/ldap.rigacci.org.pem 
-TLSCertificateKeyFile  /etc/ldap/tls/ldap.rigacci.org.pem+TLSCertificateKeyFile  /etc/ldap/ssl/ldap.rigacci.org.pem
 </file> </file>
  
Line 395: Line 397:
 In generale i servizi di **auth**entication sono i più importanti. Per un modulo PAM non è obbligatorio fornire tutti i servizi; ad esempio alcuni moduli PAM potrebbero non fornire la possibilità di cambiare la password. In generale i servizi di **auth**entication sono i più importanti. Per un modulo PAM non è obbligatorio fornire tutti i servizi; ad esempio alcuni moduli PAM potrebbero non fornire la possibilità di cambiare la password.
  
-La procedura Debian di configurazione per **libpam-ldap** richiede diversi parametri:+La procedura Debian (Squeeze) di configurazione per **libpam-ldap** richiede diversi parametri, si può ri-eseguire con ''dpkg-reconfigure libpam-ldap'':
  
 <code> <code>
-ldaps://192.168.200.245+LDAP server URI: ldaps://127.0.0.1
-dc=rigacci,dc=org+Distinguished name of the search base: dc=rigacci,dc=org
 LDAP version to use: 3 LDAP version to use: 3
-Make local root Database admin: Yes+Allow LDAP admin account to behave like local rootYes
 Does the LDAP database require login? No Does the LDAP database require login? No
-LDAP account for root: cn=admin,dc=rigacci,dc=org +LDAP administrative account: cn=admin,dc=rigacci,dc=org 
-LDAP root account password: ****** +LDAP administrative password: **** 
-Local crypt to use when changing passwords: exop (perché non crypt?)+Local encryption algorithm to use for passwords: crypt 
 +PAM profiles to enable: Unix authentication, LDAP Authentication
 </code> </code>
  
 Le impostazioni vengono salvate in **''/etc/pam_ldap.conf''** e in **''/etc/pam_ldap.secret''**. Le impostazioni vengono salvate in **''/etc/pam_ldap.conf''** e in **''/etc/pam_ldap.secret''**.
 +
 +**NOTA:** L'help allegato alla domanda //Allow LDAP admin account to behave like local root?// non è chiaro: rispondendo //No// il file ''/etc/pam_ldap.secret'' contenente la password di amministratore LDAP **non** viene creato, quindi PAM non sarà in grado di modificare il database con i privilegi di amministratore.
  
 **NOTA:** Non dovrebbe essere strettamente necessario che l'utente root del client sia amministratore del database LDAP, quindi si dovrebbe poter evitare che la password relativa venga memorizzata sul client. **NOTA:** Non dovrebbe essere strettamente necessario che l'utente root del client sia amministratore del database LDAP, quindi si dovrebbe poter evitare che la password relativa venga memorizzata sul client.
Line 491: Line 496:
   * **libnss-db** e **nss-updatedb** alternativi a ''libnss-ldap'': crea una copia locale dei database, usabile in modalità off-line    * **libnss-db** e **nss-updatedb** alternativi a ''libnss-ldap'': crea una copia locale dei database, usabile in modalità off-line 
  
-La procedura Debian di configurazione per **libnss-ldap** richiede diversi parametri:+La procedura Debian di configurazione per **libnss-ldap** richiede diversi parametri (eseguire '''' per vedere tutte le domande):
  
 <code> <code>
-LDAP server Uniform Resource Identifier: ldaps://192.168.200.245/+LDAP server Uniform Resource Identifier: ldap://127.0.0.1/
 Distinguished name of the search base: dc=rigacci,dc=org Distinguished name of the search base: dc=rigacci,dc=org
 LDAP version to use: 3 LDAP version to use: 3
Line 501: Line 506:
 Make the configuration file readable/writeable by its owner only? Yes Make the configuration file readable/writeable by its owner only? Yes
 </code> </code>
- 
-:!: **NOTA:** Forse è opportuno rispondere **No** all'ultima domanda, visto che anche gli utenti non privilegiati devono poter accedere (in modo anonimo) al database LDAP. Vedi avanti. 
  
 Le impostazioni vengono salvate in **''/etc/libnss-ldap.conf''**. Attivare i privilegi speciali LDAP per root vorrebbe dire che l'utente root del client ha i privilegi di amministratore su LDAP, questo però richiederebbe di memorizzare in chiaro la password di amministratore LDAP nel file **''/etc/libnss-ldap.secret''**. Le impostazioni vengono salvate in **''/etc/libnss-ldap.conf''**. Attivare i privilegi speciali LDAP per root vorrebbe dire che l'utente root del client ha i privilegi di amministratore su LDAP, questo però richiederebbe di memorizzare in chiaro la password di amministratore LDAP nel file **''/etc/libnss-ldap.secret''**.
 +
 +:!: **NOTA:** Forse è opportuno rispondere **No** all'ultima domanda, visto che anche gli utenti non privilegiati devono poter accedere (in modo anonimo) al database LDAP. Vedi avanti.
  
 :!: **ATTENZIONE:** Se in **''/etc/libnss-ldap.conf''** viene impostata l'opzione **binddn**, allora il collegamento al server LDAP avviene con quel nome **invece che in modo anonimo**. Nel nostro caso si preferisce che l'utente non privilegiato faccia collegamenti anonimi, pertanto l'opzione viene omessa. Se l'utente è root allora l'accesso LDAP avviene con le credenziali specificate in **rootbinddn** e la password contenuta in ''/etc/libnss-ldap.secret''. :!: **ATTENZIONE:** Se in **''/etc/libnss-ldap.conf''** viene impostata l'opzione **binddn**, allora il collegamento al server LDAP avviene con quel nome **invece che in modo anonimo**. Nel nostro caso si preferisce che l'utente non privilegiato faccia collegamenti anonimi, pertanto l'opzione viene omessa. Se l'utente è root allora l'accesso LDAP avviene con le credenziali specificate in **rootbinddn** e la password contenuta in ''/etc/libnss-ldap.secret''.
Line 600: Line 605:
 </code> </code>
  
-Per fare in modo che tutti i programmi PAM utilizzino Kerberos si modificano alcuni file in **''/etc/pam.d/''**, aggiungendo al tradizionale **''pam_unix.so''** il modulo **''pam_krb5.so''**:+Per fare in modo che tutti i programmi PAM utilizzino Kerberos si modificano alcuni file in **''/etc/pam.d/''**, aggiungendo al tradizionale **''pam_unix.so''** il modulo **''pam_krb5.so''**. 
 + 
 +**ATTENZIONE**: Con Debian Squeeze queste aggiunte vengono effettuate automaticamente con l'installazione del pacchetto **libpam-krb5**, grazie al comando **''pam-auth-update''**. Le regole sono in realtà molto più elaborate ed efficaci.
  
 <code> <code>
doc/appunti/linux/sa/ldap.1233583898.txt.gz · Last modified: 2010/10/28 11:26 (external edit)