Implementare un'architettura ridondante master/slave OpenLDAP: differenze tra le versioni
Riga 4: | Riga 4: | ||
Debian Etch 4.0 installa OpenLDAP 2.3, che supporta entrambi i moduli, ma dalla versione 2.4 OpenLDAP eliminerà il supporto al modulo <tt>slurpd</tt> (come si legge nella documentazione ufficiale di OpenLDAP 2.4). Pertanto in questa guida verrà preso in considerazione l'approccio <tt>syncrepl</tt> alla replicazione di LDAP, in modo da garantirci possibilità di aggiornamento dell'infrastruttura. | Debian Etch 4.0 installa OpenLDAP 2.3, che supporta entrambi i moduli, ma dalla versione 2.4 OpenLDAP eliminerà il supporto al modulo <tt>slurpd</tt> (come si legge nella documentazione ufficiale di OpenLDAP 2.4). Pertanto in questa guida verrà preso in considerazione l'approccio <tt>syncrepl</tt> alla replicazione di LDAP, in modo da garantirci possibilità di aggiornamento dell'infrastruttura. | ||
===Il master server LDAP=== | ===Il master server LDAP=== | ||
Il master server LDAP su cui ci baseremo viene usato per fornire servizi di autenticazione centralizzata agli utenti Samba e Unix così come indicato da [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch | questa guida]]. I files di configurazione di OpenLDAP sono perciò gli stessi presenti nella guida indicata; sono state evidenziate in '''grassetto''' le modifiche e/o le aggiunte rispetto ai files originali di partenza della guida.<br/> | Il master server LDAP su cui ci baseremo viene usato per fornire servizi di autenticazione centralizzata agli utenti Samba e Unix così come indicato da [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch | questa guida]]. I files di configurazione di OpenLDAP sono perciò gli stessi presenti nella guida indicata; sono state evidenziate in '''grassetto''' le modifiche e/o le aggiunte rispetto ai files originali di partenza della guida, modifiche necessarie per convertire il master server LDAP in un provider (il termine usato da OpenLDAP per indicare il server che fornisce i dati a <tt>syncrepl</tt> affinchè vengano trasferiti a un consumer o slave server LDAP).<br/> | ||
<br/> | <br/> | ||
'''File <tt>/etc/ldap/slapd.conf</tt>''': | '''File <tt>/etc/ldap/slapd.conf</tt>''': | ||
Riga 17: | Riga 17: | ||
: include /etc/ldap/schema/inetorgperson.schema | : include /etc/ldap/schema/inetorgperson.schema | ||
: include /etc/ldap/schema/samba.schema | : include /etc/ldap/schema/samba.schema | ||
: pidfile /var/run/slapd/slapd.pid | : pidfile /var/run/slapd/slapd.pid | ||
Riga 25: | Riga 24: | ||
: moduleload back_bdb | : moduleload back_bdb | ||
: sizelimit 500 | : sizelimit 500 | ||
tool-threads 1 | : tool-threads 1 | ||
backend bdb | : backend bdb | ||
checkpoint 512 30 | : checkpoint 512 30 | ||
database bdb | : database bdb | ||
suffix "dc=dominio,dc=local" | |||
rootdn | : suffix "dc=dominio,dc=local" | ||
rootpw | : rootdn "cn=admin,dc=dominio,dc=local" | ||
directory "/var/lib/ldap" | : rootpw "password" | ||
dbconfig set_cachesize 0 2097152 0 | : '''moduleload syncprov''' | ||
dbconfig set_lk_max_objects 1500 | : '''index entryCSN,entryUUID eq''' | ||
dbconfig set_lk_max_locks 1500 | : '''overlay syncprov''' | ||
dbconfig set_lk_max_lockers 1500 | : '''syncprov-checkpoint 100 10''' | ||
index objectClass eq | : '''syncprov-sessionlog 200''' | ||
index | |||
index | : directory "/var/lib/ldap" | ||
index | : dbconfig set_cachesize 0 2097152 0 | ||
index | : dbconfig set_lk_max_objects 1500 | ||
index | : dbconfig set_lk_max_locks 1500 | ||
lastmod on | : dbconfig set_lk_max_lockers 1500 | ||
access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword | |||
by dn="cn=admin,dc=dominio,dc=local" write | : index objectClass eq | ||
by anonymous auth | : index uid,uidNumber,gidNumber,memberUid eq | ||
by self write | : index cn,mail,surname,givenname eq,subinitial | ||
by * none | : index sambaSID eq | ||
access to dn.base="" by * read | : index sambaPrimaryGroupSID eq | ||
access to * | : index sambaDomainName eq | ||
by dn="cn=admin,dc=dominio,dc=local" write | |||
by * read | : lastmod on | ||
: access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword | |||
: by dn="cn=admin,dc=dominio,dc=local" write | |||
: '''by dn=”uid=replicant,ou=Users,dc=dominio,dc=local” read''' | |||
: by anonymous auth | |||
: by self write | |||
: by * none | |||
: access to dn.base="" by * read | |||
: access to * | |||
: by dn="cn=admin,dc=dominio,dc=local" write | |||
: by * read | |||
</tt> | </tt> | ||
===Lo slave server LDAP=== | ===Lo slave server LDAP=== |
Versione delle 16:54, 23 set 2008
Come implementare un'architettura ridondante master/slave OpenLDAP
Questa guida illustra un metodo per fornire ridondanza ad una rete in cui sia presente un server OpenLDAP, in modo da avere una replica del database LDAP su un diverso server fisico che subentri automaticamente in caso di down del server principale.
Le vecchie versioni di OpenLDAP usavano un modello push per la replica. Questo modello si basava sull'assunto che il server LDAP master eseguisse periodicamente un push dei propri dati verso i server LDAP slave, utilizzando un modulo chiamato slurpd. Le nuove versioni di OpenLDAP hanno introdotto un modello di replica pull, appoggiato ad un modulo chiamato syncrepl.
Debian Etch 4.0 installa OpenLDAP 2.3, che supporta entrambi i moduli, ma dalla versione 2.4 OpenLDAP eliminerà il supporto al modulo slurpd (come si legge nella documentazione ufficiale di OpenLDAP 2.4). Pertanto in questa guida verrà preso in considerazione l'approccio syncrepl alla replicazione di LDAP, in modo da garantirci possibilità di aggiornamento dell'infrastruttura.
Il master server LDAP
Il master server LDAP su cui ci baseremo viene usato per fornire servizi di autenticazione centralizzata agli utenti Samba e Unix così come indicato da questa guida. I files di configurazione di OpenLDAP sono perciò gli stessi presenti nella guida indicata; sono state evidenziate in grassetto le modifiche e/o le aggiunte rispetto ai files originali di partenza della guida, modifiche necessarie per convertire il master server LDAP in un provider (il termine usato da OpenLDAP per indicare il server che fornisce i dati a syncrepl affinchè vengano trasferiti a un consumer o slave server LDAP).
File /etc/ldap/slapd.conf:
- # Allow LDAPv2 binds
- allow bind_v2
- # Schema and objectClass definitions
- include /etc/ldap/schema/core.schema
- include /etc/ldap/schema/cosine.schema
- include /etc/ldap/schema/nis.schema
- include /etc/ldap/schema/inetorgperson.schema
- include /etc/ldap/schema/samba.schema
- pidfile /var/run/slapd/slapd.pid
- argsfile /var/run/slapd/slapd.args
- loglevel sync
- modulepath /usr/lib/ldap
- moduleload back_bdb
- sizelimit 500
- tool-threads 1
- backend bdb
- checkpoint 512 30
- database bdb
- suffix "dc=dominio,dc=local"
- rootdn "cn=admin,dc=dominio,dc=local"
- rootpw "password"
- moduleload syncprov
- index entryCSN,entryUUID eq
- overlay syncprov
- syncprov-checkpoint 100 10
- syncprov-sessionlog 200
- directory "/var/lib/ldap"
- dbconfig set_cachesize 0 2097152 0
- dbconfig set_lk_max_objects 1500
- dbconfig set_lk_max_locks 1500
- dbconfig set_lk_max_lockers 1500
- index objectClass eq
- index uid,uidNumber,gidNumber,memberUid eq
- index cn,mail,surname,givenname eq,subinitial
- index sambaSID eq
- index sambaPrimaryGroupSID eq
- index sambaDomainName eq
- lastmod on
- access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword
- by dn="cn=admin,dc=dominio,dc=local" write
- by dn=”uid=replicant,ou=Users,dc=dominio,dc=local” read
- by anonymous auth
- by self write
- by * none
- access to dn.base="" by * read
- access to *
- by dn="cn=admin,dc=dominio,dc=local" write
- by * read