Old:Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server LDAP Server: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Nuova pagina: {{Sommario|titolo=Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server|contenuto= #[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Intro|Introduzio...)
 
 
(10 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Sommario|titolo=Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server|contenuto=
{{Old:Template:Samba e OpenLDAP su Ubuntu server}}
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Intro|Introduzione]]
 
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Configurazioni Preliminari|Configurazione DHCP e DNS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server LDAP Server|Installazione e Configurazione LDAP Server]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server TLS e SSL|Configurazione cittografia TLS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Samba PDC|Installazione e Configurazione Samba PDC]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Smbldap-tools|Installazione e Configurazione SMBLDAP-TOOLS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Popolamento ldap|Popolamento database LDAP]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Aggiungere gli utenti di dominio|Aggiungere gli utenti di dominio]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server script login di Windows|Creazione di un semplice script da eseguire al login di Windows]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Testare la rete|Testare la rete]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Implementazioni|Implementazioni]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Interfaccia grafica phpldapadmin|Installazione e configurazione PHPLDAPADMIN]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Comandi Utili|Comandi Utili e altro]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Approfondimenti|Approfondimenti]]
}}
<br/>
<br/>
<br/>
== LDAP Server ==
== LDAP Server ==
=== Installazione del server LDAP ===
=== Installazione del server LDAP ===
Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.<br/>
Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.<br/>
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento. Se si è interessati ad un'implementazione sicura del protocollo LDAP si veda ad esempio la guida [[Samba, OpenLDAP, Kerberos: creare un controller di dominio sicuro con Debian Lenny]], che è basata sulla guida che state leggendo, ma che introduce e analizza una serie di aspetti legati alla trasmissione e all'archiviazione sicura delle informazioni.<br/>
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento. Se si è interessati ad un'implementazione sicura del protocollo LDAP si veda ad esempio la guida [[Samba, OpenLDAP, Kerberos: creare un controller di dominio sicuro con Debian Lenny]], che è basata sulla guida che state leggendo, ma che introduce e analizza una serie di aspetti legati alla trasmissione e all'archiviazione sicura delle informazioni.<br/>
Per utilizzare il server LDAP occorre installare il pacchetto slapd che costituisce un'implementazione di server LDAP per Linux e il pacchetto ldap-utils, un insieme di strumenti che ne permettono la gestione.<br/>
Per utilizzare il server LDAP occorre installare il pacchetto <code>slapd</code> che costituisce un'implementazione di server LDAP per Linux e il pacchetto <code>ldap-utils</code>, un insieme di strumenti che ne permettono la gestione.<br/>
<pre>
<pre>
# apt-get install slapd ldap-utils samba-doc
# apt-get install slapd ldap-utils samba-doc
</pre>
</pre>
Si presume che l'utente operi con l'account root per eseguire le operazioni di seguito descritte.
Si presume che l'utente operi con l'account [[root]] per eseguire le operazioni di seguito descritte.<br/>
Durante l'installazione verranno richieste alcune informazioni necessarie a configurare il server LDAP. In particolare verrà richiesto il nome del dominio che può essere un dominio interno completamente inventato (es. miodominio.tld) o un dominio internet valido. La scelta è legata a politiche organizzative aziendali e tecniche che richiederebbero una trattazione approfondita e che esula da questo HOWTO.<br/>
Durante l'installazione verranno richieste alcune informazioni necessarie a configurare il server LDAP. In particolare verrà richiesto il nome del dominio che può essere un dominio interno completamente inventato (es. miodominio.tld) o un dominio internet valido. La scelta è legata a politiche organizzative aziendali e tecniche che richiederebbero una trattazione approfondita e che esula da questo HOWTO.<br/>
Nei file riportati si considera che il dominio specificato è <tt>dominio.local</tt>, un dominio interno non valido per Internet.
Nei file riportati si considera che il dominio specificato è <code>dominio.local</code>, un dominio interno non valido per Internet.
In seguito verrà richiesta la password per l'utente amministratore. Scegliete una password particolarmente sicura, in quanto tramite essa si potrà avere accesso completo alla gestione degli utenti del vostro dominio e, pertanto, accedere a qualsiasi sistema presente sulla vostra rete. Questa password, inoltre, verrà utilizzata anche in seguito in alcuni file di configurazione, pertanto è bene ricordarsela.<br/>
In seguito verrà richiesta la password per l'utente amministratore. Scegliete una password particolarmente sicura, in quanto tramite essa si potrà avere accesso completo alla gestione degli utenti del vostro dominio e, pertanto, accedere a qualsiasi sistema presente sulla vostra rete. Questa password, inoltre, verrà utilizzata anche in seguito in alcuni file di configurazione, pertanto è bene ricordarsela.<br/>
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di Dominio.<br/>
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di Dominio.<br/>
Riga 55: Riga 38:
# cp -R /etc/ldap/slapd.d /etc/slapd.d.backup
# cp -R /etc/ldap/slapd.d /etc/slapd.d.backup
</pre>
</pre>
Adesso dobbiamo recuperare gli schemi mancanti, che aggiungeremo poi alla configurazione di LDAP, e copiare in <tt>/etc/ldap/schema</tt> lo schema LDAP necessario per SAMBA.
Adesso dobbiamo recuperare gli schemi mancanti, che aggiungeremo poi alla configurazione di LDAP, e copiare in <code>/etc/ldap/schema</code> lo schema LDAP necessario per SAMBA.
<pre>
<pre>
# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
Riga 61: Riga 44:
# mkdir /tmp/ldif_output
# mkdir /tmp/ldif_output
</pre>
</pre>
Creiamo il file schema_convert.conf ed editatelo:
Creiamo il file <code>schema_convert.conf</code> ed editatelo:
<pre>
<pre>
#touch /tmp/schema_convert.conf
# touch /tmp/schema_convert.conf
# vim /tmp/schema_convert.conf
# vim /tmp/schema_convert.conf
</pre>
</pre>
Riga 82: Riga 65:
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/samba.schema
</pre>
</pre>
salvate
salvate:
<pre>
<pre>
# slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/samba.ldif
# slapcat -f /tmp/schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/samba.ldif
# vim /tmp/samba.ldif
# vim /tmp/samba.ldif
</pre>
</pre>
Riga 103: Riga 86:
modifyTimestamp: 20080827045234Z
modifyTimestamp: 20080827045234Z
</pre>
</pre>
Salvate tutto e copiare in /etc/ldap/schema:
Salvate tutto e copiare in <code>/etc/ldap/schema</code>:
<pre>
<pre>
#cp /tmp/samba.ldif /etc/ldap/schema
# cp /tmp/samba.ldif /etc/ldap/schema
</pre>
</pre>


Riga 114: Riga 97:
e prendete nota del risultato della password in md5.
e prendete nota del risultato della password in md5.


La versione utilizzata di OpenLdap ha come file di configurazione la cartella slapd.d ubicata in /etc/ldap/slapd.d 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 che è molto più flessibile.
La versione utilizzata di OpenLdap ha come file di configurazione la cartella <code>slapd.d</code> ubicata in <code>/etc/ldap/slapd.d</code> ed è stato quindi soppresso il precedente <code>slapd.conf</code>. La differenza è nella configurazione e nella funzionalità degli stessi. Il primo file di configurazione era statico perciò richiedeva sempre lo stop del demone <code>slapd</code>. Il secondo è dinamico perciò va da che è molto più flessibile.


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:
In questa guida verrà utilizzato <code>slapd.d</code> come di default, ma ricordo che in <code>/etc/default/slapd</code> si può impostare il vecchio database <code>slapd.conf</code> oppure si può convertire un vecchio database <code>slapd.conf</code> in <code>slapd.d</code> con il comando:
<pre>
<pre>
#slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
</pre>
</pre>
Ora occorre aggiungere gli schemi che ci serviranno per la cnfigurazione:
Ora occorre aggiungere gli schemi che ci serviranno per la configurazione:
<pre>
<pre>
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
# 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/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif  
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif  
</pre>
</pre>
Creare il file module.ldif per aggiungere il modulo del backend e crearlo:
Creare il file <code>module.ldif</code> per aggiungere il modulo del backend e crearlo:
<pre>
<pre>
# touch /tmp/module.ldif
# touch /tmp/module.ldif
Riga 142: Riga 125:
salvare e caricare il file:
salvare e caricare il file:
<pre>
<pre>
ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/module.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/module.ldif
</pre>
</pre>
Creare il file backend.ldif ed editarlo:
Creare il file <code>backend.ldif</code> ed editarlo:
<pre>
<pre>
# touch /tmp/backend.ldif
# touch /tmp/backend.ldif
Riga 151: Riga 134:
editarlo così:
editarlo così:
<pre>
<pre>
dn: cn=module,cn=config
objectclass: olcModuleList
cn: module
olcModuleLoad: back_bdb.la
dn: olcDatabase=bdb
dn: olcDatabase=bdb
objectClass: olcDatabaseConfig
objectClass: olcDatabaseConfig
Riga 186: Riga 174:
Aggiungere il backend così:
Aggiungere il backend così:
<pre>
<pre>
#ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/backend.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/backend.ldif
</pre>
</pre>


Riga 199: Riga 187:
</pre>
</pre>


Editiamo cn=config.ldif così:
Editiamo <code>cn=config.ldif</code> così:
<pre>
<pre>
olcLogLevel: 1 2 8 64 128 256 512
olcLogLevel: 1 2 8 64 128 256 512
Riga 205: Riga 193:
olcAuthzRegexp: uid=(.*),cn=.*,cn=auth ldap:///dc=milanoaccademia,dc=lan??sub?(uid=$1)
olcAuthzRegexp: uid=(.*),cn=.*,cn=auth ldap:///dc=milanoaccademia,dc=lan??sub?(uid=$1)
</pre>
</pre>
Eliminiamo il contenuto della cartella /var/lib/ldap:
Eliminiamo il contenuto della cartella <code>/var/lib/ldap</code>:
<pre>
<pre>
## rm -rf /var/lib/ldap/*
# rm -rf /var/lib/ldap/*
</pre>
</pre>
Riavviamo il demone <tt>slapd</tt>:
Riavviamo il demone <code>slapd</code>:
<pre>
<pre>
# /etc/init.d/slapd restart
# /etc/init.d/slapd restart
</pre>
=== Installazione e Configurazione dell'autenticazione LDAP ===
Per prima cosa installeremo il pacchetto libnss-ldap, con il classico comando:
<pre>
# apt-get install libnss-ldap libpam-ldap
</pre>
Rispondere alle domande di autoconfigurazione:
<pre>
* Server LDAP: 127.0.0.1
* Distinguished name (DN): dc=dominio,dc=local
* LDAP version: 3
* Make local root Database admin: sí
* Si richiede utente per database LDAP: no
* LDAP account for root cn=admin,dc=dominio,dc=local
* LDAP root password: secret
* Local crypt to use when changing passwords: md5
</pre>
Se sbagliate a configurare rilanciate la schermata con:
<pre>
# dpkg-reconfigure ldap-auth-config
</pre>
Assicuratevi che il file ldap.secret, dal quale traspare la password in chiaro, sia leggibile e scrivibile solo da root.
Non impostatela criptata perchè altrimenti non vi autentica. Vi assicuro che se vi accertate dei permessi la password non trasparirà fuori. 
Editate il file ''ldap.conf'' (le prime tre voci dovrebbero essere già editate correttamente mentre le altre voci devono essere decommentate ed editate:
<pre>
host 127.0.0.1
base dc=dominio,dc=local
ldap_version 3
scope sub
bind_policy soft
pam_login_attribute uid
pam_member_attribute gid
pam_password exop
nss_base_passwd dc=dominio,dc=local?sub
nss_base_shadow dc=dominio,dc=local?sub
nss_base_group ou=groups,dc=dominio,dc=local?one
</pre>
Lanciate i seguenti comandi di autoconfigurazione:
<pre>
# pam-auth-update (Dal menù pam-auth-update, scegliere LDAP e unix, inoltre qualsiasi altro metodo di
  autenticazione necessario.)
# auth-client-config -t nss -p lac_ldap (configura nsswitch.conf all'uso di ldap)
    * -t: modifica solamente /etc/nsswitch.conf.
   
    * -p: nome del profilo da abilitare, disabilitare, ecc...
    * lac_ldap: il profilo auth-client-config parte del pacchetto ldap-auth-config.
</pre>
Verificare il contenuto di /etc/nsswitch.conf e controllare le seguenti voci se corrispondono:
<pre>
passwd: files ldap
group: files ldap
shadow: files ldap
</pre>
A causa di un bug documentato (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=375077) e a cui il team di sviluppo di Debian ha fornito una soluzione parziale (è stato eliminato il problema, ma non i messaggi d'errore generati al boot) è possibile che al reboot compaiano messaggi di errore simili ai seguenti:
<pre>
...
udevd[1350]: nss_ldap: could not connect to any LDAP server as cn=admin,dc=home,dc=tld - Can't contact LDAP server
udevd[1350]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
udevd[1350]: nss_ldap: could not search LDAP server - Server is unavailable
udevd[1350]: lookup_user: error resolving user 'tss': Illegal seek
...
</pre>
Una possibile via per eludere il problema è quella di aggiungere a mano gli utenti di sistema mancanti:
<pre>
# addgroup --system tss
# addgroup --system kvm
# addgroup --system rdma
# addgroup --system fuse
# addgroup --system scanner
# addgroup --system nvram
# adduser --system tss
</pre>
</pre>

Versione attuale delle 15:17, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server

Sommario

  1. Introduzione
  2. Configurazione DHCP e DNS
  3. Installazione e Configurazione LDAP Server
  4. Installazione e Configurazione Autenticazione LDAP
  5. Configurazione cittografia TLS
  6. Installazione e Configurazione Samba PDC
  7. Installazione e Configurazione SMBLDAP-TOOLS
  8. Popolamento database LDAP
  9. Configurazione Quote Utenti
  10. Aggiungere gli utenti di dominio
  11. Testare la rete
  12. Installazione e configurazione PHPLDAPADMIN
  13. Configurazione Client Linux
  14. Comandi Utili e altro
  15. Approfondimenti


LDAP Server

Installazione del server LDAP

Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento. Se si è interessati ad un'implementazione sicura del protocollo LDAP si veda ad esempio la guida Samba, OpenLDAP, Kerberos: creare un controller di dominio sicuro con Debian Lenny, che è basata sulla guida che state leggendo, ma che introduce e analizza una serie di aspetti legati alla trasmissione e all'archiviazione sicura delle informazioni.
Per utilizzare il server LDAP occorre installare il pacchetto slapd che costituisce un'implementazione di server LDAP per Linux e il pacchetto ldap-utils, un insieme di strumenti che ne permettono la gestione.

# apt-get install slapd ldap-utils samba-doc

Si presume che l'utente operi con l'account root per eseguire le operazioni di seguito descritte.
Durante l'installazione verranno richieste alcune informazioni necessarie a configurare il server LDAP. In particolare verrà richiesto il nome del dominio che può essere un dominio interno completamente inventato (es. miodominio.tld) o un dominio internet valido. La scelta è legata a politiche organizzative aziendali e tecniche che richiederebbero una trattazione approfondita e che esula da questo HOWTO.
Nei file riportati si considera che il dominio specificato è dominio.local, un dominio interno non valido per Internet. In seguito verrà richiesta la password per l'utente amministratore. Scegliete una password particolarmente sicura, in quanto tramite essa si potrà avere accesso completo alla gestione degli utenti del vostro dominio e, pertanto, accedere a qualsiasi sistema presente sulla vostra rete. Questa password, inoltre, verrà utilizzata anche in seguito in alcuni file di configurazione, pertanto è bene ricordarsela.
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di Dominio.
Per tutte le altre opzioni possono essere confermate le impostazioni di default.
Per andare più in profondità nella configurazione del server LDAP è consigliabile, subito dopo l'installazione, lanciare il comando:

# dpkg-reconfigure slapd

Verrà eseguita la riconfigurazione di OpenLDAP, ma saranno poste più domande. Rispondete così:

  • Omettere la configurazione di OpenLDAP: no
  • Nome del dominio: dominio.local
  • Nome dell'organizzazione: DOMINIO
  • Password di admin: secret
  • Conferma password: secret
  • Cancellare il database quando si effettua il purge di slapd: no
  • Spostare il vecchio database: sì
  • Permettere LDAPv2: no

Configurazione del server LDAP

Passiamo ora alla configurazione del server LDAP.

Innanzitutto effettuiamo un backup di LDAP:

# slapcat > ~/slapd.ldif
o semplicemente
# cp -R /etc/ldap/slapd.d /etc/slapd.d.backup

Adesso dobbiamo recuperare gli schemi mancanti, che aggiungeremo poi alla configurazione di LDAP, e copiare in /etc/ldap/schema lo schema LDAP necessario per SAMBA.

# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
# gzip -d /etc/ldap/schema/samba.schema.gz
# mkdir /tmp/ldif_output

Creiamo il file schema_convert.conf ed editatelo:

# touch /tmp/schema_convert.conf
# vim /tmp/schema_convert.conf

editate così:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema

salvate:

# slapcat -f /tmp/schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/samba.ldif
# vim /tmp/samba.ldif

modificate il file come segue:

dn: cn=samba,cn=schema,cn=config
...
cn: samba

rimuovere le stringhe a fondo pagina:

structuralObjectClass: olcSchemaConfig
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
creatorsName: cn=config
createTimestamp: 20080827045234Z
entryCSN: 20080827045234.341425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080827045234Z

Salvate tutto e copiare in /etc/ldap/schema:

# cp /tmp/samba.ldif /etc/ldap/schema

Quindi generate l'hash MD5 della password di root di LDAP:

# slappasswd -s secret -h {MD5}

e prendete nota del risultato della password in md5.

La versione utilizzata di OpenLdap ha come file di configurazione la cartella slapd.d ubicata in /etc/ldap/slapd.d 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.

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:

# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d

Ora occorre aggiungere gli schemi che ci serviranno per la configurazione:

# 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 

Creare il file module.ldif per aggiungere il modulo del backend e crearlo:

# touch /tmp/module.ldif
# vim /tmp/module.ldif

editarlo così:

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_bdb.la

salvare e caricare il file:

# ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/module.ldif

Creare il file backend.ldif ed editarlo:

# touch /tmp/backend.ldif
# vim /tmp/backend.ldif

editarlo così:

dn: cn=module,cn=config
objectclass: olcModuleList
cn: module
olcModuleLoad: back_bdb.la

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

Aggiungere il backend così:

# ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/backend.ldif

Infine aggiungere le informazioni per l'autenticazione e la criptazione della password degli utenti:

# vim /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif

e aggiungere:

olcRootPW: {MD5}..--..\\..//..::
olcPasswordHash: {MD5}

Editiamo cn=config.ldif così:

olcLogLevel: 1 2 8 64 128 256 512
olcAuthzPolicy: none
olcAuthzRegexp: uid=(.*),cn=.*,cn=auth ldap:///dc=milanoaccademia,dc=lan??sub?(uid=$1)

Eliminiamo il contenuto della cartella /var/lib/ldap:

# rm -rf /var/lib/ldap/*

Riavviamo il demone slapd:

# /etc/init.d/slapd restart