Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze: differenze tra le versioni

Riga 373: Riga 373:
== Configurazione del server LDAP ==
== Configurazione del server LDAP ==
Passiamo ora alla configurazione del server LDAP.<br/>
Passiamo ora alla configurazione del server LDAP.<br/>
La versione utilizzata di OpenLdap ha come file di configurazione la cartella slapd.d ubicata in <code>/etc/ldap/slapd.d</code> ed è stato quindi soppresso il precedente ''slapd.conf''. La differenza è nella configurazione e nella funzionalità degli stessi. Il primo file di configurazione era statico perciò richiedeva sempre lo stop del demone slapd. Il secondo è dinamico perciò va da sè che è molto più flessibile.
<br/>
In questa guida verrà utilizzato ''slapd.d'' come di default, ma ricordo che in ''/etc/default/slapd'' si può impostare il vecchio database ''slapd.conf'' oppure si può convertire un vecchio database slapd.conf in slapd.d con il comando:
<pre>
# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
</pre>
Un esempio di configurazione con il vecchio ''slapd.conf'' sarà riportato nel capitolo seguente della guida.


=== Configurazione del server LDAP con ''slapd.d'' ===
Innanzitutto effettuiamo un backup di LDAP:
Innanzitutto effettuiamo un backup di LDAP:
<pre>
<pre>
Riga 440: Riga 448:
</pre>
</pre>
e prendete nota del risultato.<br/>
e prendete nota del risultato.<br/>
<br/>
La versione utilizzata di OpenLdap ha come file di configurazione la cartella slapd.d ubicata in <code>/etc/ldap/slapd.d</code> ed è stato quindi soppresso il precedente ''slapd.conf''. La differenza è nella configurazione e nella funzionalità degli stessi. Il primo file di configurazione era statico perciò richiedeva sempre lo stop del demone slapd. Il secondo è dinamico perciò va da sè che è molto più flessibile.
<br/>
In questa guida verrà utilizzato ''slapd.d'' come di default, ma ricordo che in ''/etc/default/slapd'' si può impostare il vecchio database ''slapd.conf'' oppure si può convertire un vecchio database slapd.conf in slapd.d con il comando:
<pre>
# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
</pre>
Un esempio di configurazione con il vecchio ''slapd.conf'' sarà riportato nel capitolo seguente della guida.
<br/>
Ora occorre aggiungere gli schemi che ci serviranno per la configurazione:
Ora occorre aggiungere gli schemi che ci serviranno per la configurazione:
<pre>
<pre>
Riga 463: Riga 462:
editandolo così:
editandolo così:
<pre>
<pre>
# Load modules for database type
dn: cn=module,cn=config
dn: cn=module,cn=config
objectClass: olcModuleList
objectclass: olcModuleList
olcModulepath: /usr/lib/ldap
cn: module
cn: module
olcModulepath: /usr/lib/ldap
olcModuleLoad: back_bdb.la
olcModuleload: back_bdb.la
 
</pre>
# Create directory database
Quindi salviamo e carichiamo il file nella configurazione di LDAP:
dn: olcDatabase=bdb,cn=config
<pre>
 
ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/module.ldif
# Location on system where database is stored
</pre>
olcDbDirectory: /var/lib/ldap
Creiamo il file ''backend.ldif'':
 
<pre>
# touch /tmp/backend.ldif
# nano /tmp/backend.ldif
</pre>
editandolo così:
<pre>
dn: olcDatabase=bdb
objectClass: olcDatabaseConfig
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
objectClass: olcBdbConfig
olcDatabase: bdb
olcDatabase: bdb
olcDbDirectory: /var/lib/ldap
 
# Domain name (e.g. dominio.local)
olcSuffix: dc=dominio,dc=local
olcSuffix: dc=dominio,dc=local
olcAccess: {0}to attrs=userPassword,SambaLMPassword,SambaNTPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPasswordHistory by dn="cn=admin,dc=dominio,dc=local" write by anonymous auth by self write by * none
 
olcAccess: {1}to attrs=shadowLastChange by self write by * read
# Manager of the database
olcAccess: {2}to dn.base="" by self write by * read
olcAccess: {3}to * by dn="cn=admin,dc=dominio,dc=local" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=dominio,dc=local
olcRootDN: cn=admin,dc=dominio,dc=local
olcDbCheckpoint: 512 30
olcRootPW: mia_password
olcDbConfig: {0}set_cachesize 0 2097152 0
 
olcDbConfig: {1}set_lk_max_objects 1500
# Indices in database to speed up searches
olcDbConfig: {2}set_lk_max_locks 1500
olcDbIndex: uid pres,sub,eq
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
olcDbIndex: objectClass eq
olcDbIndex: uidNumber eq
olcDbIndex: uidNumber eq
olcDbIndex: cn pres,sub,eq
olcDbIndex: sn pres,sub,eq
olcDbIndex: gidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: memberUid eq
olcDbIndex: memberUid eq
olcDbIndex: uniqueMember eq
olcDbIndex: uniqueMember eq
olcDbIndex: displayName pres,sub,eq
olcDbIndex: sambaSID eq
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaPrimaryGroupSID eq
Riga 512: Riga 501:
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaGroupType eq
olcDbIndex: default sub
olcDbIndex: default sub
# Allow users to change their own password
# Allow anonymous to authenciate against the password
# Allow admin to change anyone's password
olcAccess: to attrs=userPassword,SambaLMPassword,SambaNTPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPasswordHistory
  by self write
  by anonymous auth
  by dn.base="cn=admin,dc=dominio,dc=local" write
  by * none
# Allow users to change their own record
# Allow anyone to read directory
olcAccess: to *
  by self write
  by dn.base="cn=admin,dc=dominio,dc=local" write
  by * read
olcAccess: to attrs=shadowLastChange
  by self write
  by * read
olcAccess: to dn.base=""
  by self write
  by * read
olcDbCheckpoint: 512 30
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
</pre>
</pre>
Aggiungiamo alla configurazione il backend in questo modo:
Aggiungiamo alla configurazione il backend in questo modo: