Samba OpenLDAP su Etch: Configurazione LDAP
Configurazione del server LDAP
Passiamo ora alla configurazione del server LDAP.
Innanzitutto dobbiamo copiare in /etc/ldap/schema lo schema LDAP necessario per SAMBA.
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
Ora occorre modificare il file di configurazione di slapd (/etc/ldap/slapd.conf) aggiungendo nella sezione Schema and objectClass definitions lo schema per samba:
include /etc/ldap/schema/samba.schema
Nella sezione Indexing options aggiungere una serie di indicizzazioni che ottimizzeranno le interogazioni per l'utilizzo del server SAMBA:
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 index sambaGroupType eq index sambaSIDList eq index uniqueMember eq
Bisogna consentire agli utenti di cambiare non solo la propria password LDAP, ma anche le password di SAMBA e contemporaneamente proteggere tali informazioni da un accesso pubblico sostituendo la riga:
access to attribute=userPassword
con:
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
Infine aggiungere le informazioni per l'autenticazione:
rootdn "cn=admin,dc=dominio,dc=local" rootpw "password"
Il contenuto del file dovrebbe essere il seguente:
/etc/ldap/sldap.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 0 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" 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 index sambaGroupType eq index sambaSIDList eq index uniqueMember eq lastmod on access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword by dn="cn=admin,dc=dominio,dc=local" write 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
Possiamo far ripartire slapd affinché tutte le modifiche apportate siano prese in considerazione.
# /etc/init.d/slapd restart
Si può controllare che il server sia correttamente partito eseguendo una query con il comando:
# ldapsearch -x
La risposta deve essere un file LDIF. Se invece si ottiene un errore di connessione ricontrollare tutte le impostazioni e i file di log. Per controllare il funzionamento di slapd può sempre tornare utile fermare il servizio e farlo partire, anziché con gli script standard debian con il comando:
# slapd -d 256
In tal modo viene avviato visualizzando varie informazioni di debug a video.