User Tools

Site Tools


doc:appunti:linux:sa:sldap

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:sldap [2011/10/14 13:19] – [Creazione di un indice] niccolodoc:appunti:linux:sa:sldap [2014/12/25 16:24] – [Configurazione TLS] niccolo
Line 26: Line 26:
 </file> </file>
  
 +===== Inizializzazione o restore di un database =====
 +
 +Nell'installazione predefinita il database #1 viene definito nel file **''/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif''**, il contenuto vero e proprio (in formato Berkeley DB) è invece in **''/var/lib/ldap/''**.
 +
 +Per recuperare o inizializzare il contenuto del database (ad esempio facendo il restore di un precedente **''slapcat''**) è sufficiente eseguire questa procedura basata su **''slapadd''** (aggiustare il //suffix// del database in cui fare il restore):
 +
 +<code>
 +/etc/init.d/slapd stop
 +slapadd -b 'dc=rigacci,dc=org' < slapcat_dump.ldif
 +/etc/init.d/slapd start
 +</code>
 +
 +Dopo l'operazione controllare i permessi dei file in ''/var/lib/ldap/'', devono essere leggibili e scrivibili da **''openldap''**. Se per esempio un indice viene creato a nome di ''root'', nelle successive esecuzioni di ''ldapadd'' si incappa nell'errore:
 +
 +<code>
 +ldap_add: Other (e.g., implementation specific) error (80)
 +        additional info: index generation failed
 +</code>
 +
 +Notare che **non è in genere possibile usare ''ldapadd''** per aggiungere oggetti in un database vuoto, ad esempio perché le informazioni per onorare le ACL (es. le password) devono risiedere nel database stesso.
 +
 +In modo analogo con ''ldapadd'' non è possibile effettuare il restore di alcuni attributi, in quanto lo schema li dichiara non modificabili dall'utente. Questi alcuni esempi: **''structuralObjectClass''**, **''entryUUID''**, **''creatorsName''**. Quindi in generale il restore va effettuato con **''slapadd''** che interviene direttamente sul database senza passare per il protocollo LDAP.
 ===== Creazione di un indice ===== ===== Creazione di un indice =====
  
Line 133: Line 155:
 Per utilizzare i protocolli cifrati **ldaps** (su porta 636 TCP) oppure **ldap con ''StartTLS''** (su porta 389 TCP) bisogna anzitutto creare un certificato auto-firmato, utilizziamo per questo ''openssl''. Per utilizzare i protocolli cifrati **ldaps** (su porta 636 TCP) oppure **ldap con ''StartTLS''** (su porta 389 TCP) bisogna anzitutto creare un certificato auto-firmato, utilizziamo per questo ''openssl''.
  
-Creare un file di configurazione, ad esempio **''/etc/ldap/tls/ldap.my.rigacci.org.cnf''**:+Creare un file di configurazione, ad esempio **''/etc/ldap/ssl/ldap.rigacci.org.cnf''**:
  
 <file> <file>
Line 140: Line 162:
 # following command: # following command:
 # #
-# openssl req -config /etc/ldap/tls/ldap.my.rigacci.org.cnf \+# openssl req -config /etc/ldap/ssl/ldap.my.rigacci.org.cnf \
 #     -new -x509 -days 1461 -nodes \ #     -new -x509 -days 1461 -nodes \
-#     -keyout /etc/ldap/tls/ldap.my.rigacci.org.pem \ +#     -keyout /etc/ldap/ssl/ldap.my.rigacci.org.pem \ 
-#     -out /etc/ldap/tls/ldap.my.rigacci.org.pem+#     -out /etc/ldap/ssl/ldap.my.rigacci.org.pem
 # #
 # The resulting file (unencrypted otherwise Slapd can't start # The resulting file (unencrypted otherwise Slapd can't start
Line 154: Line 176:
 distinguished_name              = ldap.rigacci.org_distinguished_name distinguished_name              = ldap.rigacci.org_distinguished_name
  
-[ ldap.my.rigacci.org_distinguished_name ]+[ ldap.rigacci.org_distinguished_name ]
 countryName                     = IT countryName                     = IT
 stateOrProvinceName             = Italy stateOrProvinceName             = Italy
Line 160: Line 182:
 organizationName                = Rigacci.Org organizationName                = Rigacci.Org
 organizationalUnitName          = Information and Communications Technology organizationalUnitName          = Information and Communications Technology
-commonName                      = ldap.my.rigacci.org+commonName                      = ldap.rigacci.org
 emailAddress                    = webmaster@rigacci.org emailAddress                    = webmaster@rigacci.org
 </file> </file>
Line 169: Line 191:
  
 <file> <file>
-olcTLSCertificateFile: /etc/ldap/tls/ldap.my.rigacci.org.pem +olcTLSCertificateFile: /etc/ldap/ssl/ldap.rigacci.org.pem 
-olcTLSCertificateKeyFile: /etc/ldap/tls/ldap.my.rigacci.org.pem+olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap.rigacci.org.pem
 </file> </file>
  
Line 204: Line 226:
  
 Catturando i pacchetti con **''tcpdump''** sull'interfaccia ''lo'' si verifica che la trasmissione dati sia cifrata. Catturando i pacchetti con **''tcpdump''** sull'interfaccia ''lo'' si verifica che la trasmissione dati sia cifrata.
 +
 +===== Cambio password =====
 +
 +Per modificare la password di un record LDAP esiste l'**RFC 3062** e l'apposito tool **''ldappasswd''**. Con l'opzione **''%%-D%%''** si specifica le credenziali per il collegamento, con **''%%-S%%''** si attiva la modalità interattiva, l'utente a cui cambiare la password è indicato come ultimo parametro:
 +
 +<code>
 +ldappasswd -x -D "cn=admin,dc=rigacci,dc=org" -W -h host.rigacci.org -S "cn=user,dc=rigacci,dc=org"
 +</code>
 +
doc/appunti/linux/sa/sldap.txt · Last modified: 2014/12/25 16:26 by niccolo