Samba OpenLDAP su Etch: Configurazione LDAP

Versione del 30 giu 2013 alle 14:00 di S3v (discussione | contributi) (rimosso tag <tt>)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Samba e OpenLDAP: creare un controller di dominio con Debian Etch

Sommario

  1. Introduzione e prerequisiti
  2. Installazione del server LDAP
  3. Installazione di Samba
  4. Configurazione del server LDAP
  5. Configurazione dei client per LDAP
  6. Configurazione di Samba
  7. Configurazione delle autenticazioni UNIX
  8. Aggiungere i primi utenti di dominio
  9. Creazione di un semplice script da eseguire al login di Windows
  10. Test e connessione al dominio
  11. Unire un server Samba al domino
  12. Backup e restore del database LDAP
  13. Interfacce web alternative per OpenLDAP
  14. Comandi utili e consigli finali

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.