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
doc:appunti:linux:sa:sldap [2011/10/28 16:34] – [Creazione di un indice] niccolodoc:appunti:linux:sa:sldap [2014/12/25 16:26] (current) – [Configurazione TLS] niccolo
Line 26: Line 26:
 </file> </file>
  
-===== Inizializzazione di un database =====+===== 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''**.+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 facenod il restore di un precedente **''slapcat''**) è sufficiente eseguire questa procedura (aggiustare il //suffix// del database in cui fare il restore):+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> <code>
Line 38: Line 38:
 </code> </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 145: 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 152: Line 162:
 # following command: # following command:
 # #
-# openssl req -config /etc/ldap/tls/ldap.my.rigacci.org.cnf \+# openssl req -config /etc/ldap/ssl/ldap.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.rigacci.org.pem \ 
-#     -out /etc/ldap/tls/ldap.my.rigacci.org.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 166: 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 172: 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 181: 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 216: 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.1319812454.txt.gz · Last modified: 2011/10/28 16:34 by niccolo