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

Riga 440: Riga 440:
</pre>
</pre>
e prendete nota del risultato.<br/>
e prendete nota del risultato.<br/>
Ora occorre modificare il file di configurazione di slapd (<tt>/etc/ldap/slapd.conf</tt>) aggiungendo nella sezione <tt>Schema and objectClass definitions</tt> lo schema per samba:
<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:
<pre>
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
</pre>
Creiamo il file ''module.ldif'' per aggiungere il modulo del backend:
<pre>
# touch /tmp/module.ldif
# nano /tmp/module.ldif
</pre>
editandolo così:
<pre>
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_bdb.la
</pre>
Quindi salviamo e carichiamo il file nella configurazione di LDAP:
<pre>
ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/module.ldif
</pre>
Creiamo il file ''backend.ldif'':
<pre>
# touch /tmp/backend.ldif
# nano /tmp/backend.ldif
</pre>
editandolo così:
<pre>
dn: olcDatabase=bdb
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /var/lib/ldap
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
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
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcDbIndex: uidNumber eq
olcDbIndex: cn pres,sub,eq
olcDbIndex: sn pres,sub,eq
olcDbIndex: gidNumber eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: memberUid eq
olcDbIndex: uniqueMember eq
olcDbIndex: displayName pres,sub,eq
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaDomainName eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaGroupType eq
olcDbIndex: default sub
</pre>
Aggiungiamo alla configurazione il backend in questo modo:
<pre>
#ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/backend.ldif
</pre>
Infine aggiungiamo le informazioni per l'autenticazione e la criptazione della password degli utenti:
<pre>
# nano /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif
</pre>
editandolo così:
<pre>
olcRootPW: {MD5}mia_password_crittata
olcPasswordHash: {MD5}
</pre>
Editiamo ''cn=config.ldif'' così:
<pre>
olcLogLevel: 1 2 8 64 128 256 512
olcAuthzPolicy: none
olcAuthzRegexp: uid=(.*),cn=.*,cn=auth ldap:///dc=dominio,dc=lan??sub?(uid=$1)
</pre>
Eliminiamo quindi il contenuto della cartella /var/lib/ldap:
<pre>
## rm -rf /var/lib/ldap/*
</pre>
Riavviamo infine il demone <code>slapd</code>:
<pre>
# /etc/init.d/slapd restart
</pre>
 
=== Configurazione di LDAP con il vecchio metodo ''slapd.conf'' ===
Per prima cosa occorre modificare il file di configurazione di slapd (<tt>/etc/ldap/slapd.conf</tt>) aggiungendo nella sezione <tt>Schema and objectClass definitions</tt> lo schema per samba:
<pre>
<pre>
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/samba.schema