Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools (1 di 6)

1

samba

La maggior parte delle reti diffuse negli uffici delle aziende in cui esiste una centralizzazione della gestione delle utenze presenta tipicamente una struttura con un server Microsoft Windows al quale tutti i client della rete si connettono per il recupero delle informazioni degli account.

Tale server viene definito “Primary Domain Controller” o “PDC” e controlla quello che in ambiente Microsoft Windows è chiamato “Dominio”. Un Dominio è il raggruppamento delle utenze e delle risorse presenti in una rete. All’interno del PDC sono conservate tutte le informazioni sulle utenze (nomi utente e password) e sui permessi di accesso alle risorse disponibili. In genere a connettersi al PDC sono client Microsoft Windows, ma esiste anche la possibilità di connettere client Linux attraverso il pacchetto SAMBA.

Nato per questo tipo di impiego, il progetto SAMBA si è mano a mano evoluto sino ad offrire una serie di funzionalità che consentono a Linux di diventare a sua volta un vero e proprio PDC.

Quanto vedremo in questa serie di articoli saranno i passi necessari alla realizzazione di un PDC in Linux basato su SAMBA, che sfrutti le potenzialità offerte da OpenLDAP per la memorizzazione degli account e gli script delle SMBLDAP-TOOLS per gestire il tutto.

Come gli account vengono memorizzati : Slapd e OpenLDAP

La prima questione da affrontare nella creazione di un PDC riguarda dove ed in quale modo gli account utente verranno memorizzati, cioè quale backend verrà utilizzato da SAMBA per gestire i dati.

Sebbene SAMBA supporti la possibilità di gestire utenze in un database attraverso il backend di default “tdbsam” è consigliabile utilizzare, per ottenere maggiori performance e più scalabilità, un altro tipo di backend denominato “ldapsam”.

ldapsam comunica a SAMBA che le utenze verranno gestite attraverso un Directory Server, ossia un database la cui caratteristica principale è l’elevato numero di letture rispetto alle rare scritture.

Le operazioni di interrogazione e modifica dei dati in un Directory Server vengono effettuate attraverso il protocollo LDAP, il cui acronimo sta per Lightweight Directory Access Protocol.

Il Directory Server che verrà utilizzato come gestore dei profili utente sarà Slapd che è parte del progetto OpenLDAP, l’implementazione opensource di LDAP.

Il processo permanente (o demone) Slapd verrà quindi interrogato da SAMBA sulla base delle richieste ricevute dai client Microsoft Windows. Tali richieste comprenderanno l’autenticazione di un’utenza, la modifica di una password, l’ottenimento della lista delle utenze presenti nel PDC e altre operazioni di questo tipo.

Manipolare le utenze SAMBA e Slapd : smbldap-tools

La struttura tipica del Directory Service in cui un PDC Microsoft Windows gestisce le utenze risulta abbastanza complessa, riprodurre quindi un PDC in Linux senza conoscerla a fondo potrebbe risultare problematico.

Per ovviare a questo inconveniente il team IDEALX (http://www.idealx.com) ha creato il progetto opensource denominato smbldap-tools. Questa collezione di script permette di creare e popolare un Directory Service in maniera identica a quella di un PDC Microsoft Windows e di rimpiazzare i comandi SAMBA per la manipolazione delle utenze e dei gruppi in modo che questi vengano gestiti attraverso il servizio di directory LDAP.

Oltre a questo alcuni script facilitano la migrazione da un PDC Microsoft Windows NT 4.0 a un PDC Samba-LDAP.

Lo schema riassuntivo delle componenti impiegate

Come si può osservare in figura 1, le richieste della Local Area Network (LAN) arrivano alla componente SAMBA in ascolto che fa uso del Directory Server per reperire le informazioni inerenti agli account e registra i dati fisici del profilo utente (la home directory ed i file relativi).

Figura 1
Figura 1

Sviluppo del progetto

Per realizzare fisicamente quanto descritto andrà quindi predisposto un ambiente Linux base nel quale andranno installati i pacchetti degli applicativi utilizzati.

I passi descritti si riferiscono alla distribuzione Debian Etch 4.0, ma possono essere applicati a qualsiasi altra distribuzione una volta installate le stesse versioni dei pacchetti software utilizzati, in quanto i file di configurazione avranno identica struttura.

Nel dettaglio le versioni dei pacchetti software utilizzati saranno le seguenti :

slapd 2.3.30-5
samba 3.0.24-6
samba-common 3.0.24-6
samba-doc 3.0.24-6
smbclient 3.0.24-6
smbldap-tools 0.9.2-3
libnss-ldap 251-7.5

Nel prossimo articolo verrà descritta nel dettaglio l’installazione e la configurazione di Openldap.

La serie comprende questi articoli :

Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (1 di 6)
Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (2 di 6)
Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (3 di 6)
Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (4 di 6)
Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (5 di 6)
Realizzare un Primary Domain Controller con SAMBA, Openldap e smbldap-tools : (6 di 6)

Nota :

Questo articolo è originariamente apparso su Tux Journal nel Gennaio 2008.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.