Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze: differenze tra le versioni

rimosso tag <tt>
(rimosso tag <tt>)
Riga 41: Riga 41:
</pre>
</pre>
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 154: Riga 154:
Tuttavia, dato che non mi fido molto degli script, nel seguito della guida verranno date le indicazioni per procedere ad una configurazione manuale.
Tuttavia, dato che non mi fido molto degli script, nel seguito della guida verranno date le indicazioni per procedere ad una configurazione manuale.


Copiare inannzitutto i file <tt>smbldap.conf</tt> e <tt>smbldap_bind.conf</tt> in <tt>/etc/smbldap-tools</tt>.
Copiare inannzitutto i file <code>smbldap.conf</code> e <code>smbldap_bind.conf</code> in <code>/etc/smbldap-tools</code>.
<pre>
<pre>
# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
</pre>
</pre>
Modificare il file <tt>/etc/smbldap-tools/smbldap_bind.conf</tt> inserendo il DN dell'amministratore del server LDAP e la sua password. Il DN dell'amministratore è stato impostato automaticamente durante l'installazione del pacchetto Debian di slapd e corrisponde a <nowiki>"cn=admin,dc=dominio,dc=local"</nowiki>, in cui il dominio dipende dalle configurazioni sopra riportate per il server LDAP. La password è quella richiesta in fase di installazione del server LDAP.<br/>
Modificare il file <code>/etc/smbldap-tools/smbldap_bind.conf</code> inserendo il DN dell'amministratore del server LDAP e la sua password. Il DN dell'amministratore è stato impostato automaticamente durante l'installazione del pacchetto Debian di slapd e corrisponde a <nowiki>"cn=admin,dc=dominio,dc=local"</nowiki>, in cui il dominio dipende dalle configurazioni sopra riportate per il server LDAP. La password è quella richiesta in fase di installazione del server LDAP.<br/>
Se non si è sicuri del DN da inserire lanciare il comando:
Se non si è sicuri del DN da inserire lanciare il comando:
<pre>
<pre>
Riga 193: Riga 193:
e copiare o prendere nota del codice che viene restituito.
e copiare o prendere nota del codice che viene restituito.
<br/>
<br/>
Modificare il file <tt>/etc/smbldap-tools/smbldap.conf</tt> inserendo il SID appena ottenuto e controllare gli indirizzi dei 2 server LDAP in modo che coincidano con il server locale (127.0.0.1).
Modificare il file <code>/etc/smbldap-tools/smbldap.conf</code> inserendo il SID appena ottenuto e controllare gli indirizzi dei 2 server LDAP in modo che coincidano con il server locale (127.0.0.1).
<pre>
<pre>
SID="S-1-5-21-2318037123-1631426476-2439636316"
SID="S-1-5-21-2318037123-1631426476-2439636316"
Riga 397: Riga 397:
# 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>
# wget http://debian.easyteam.org/files/samba/hdb.schema -P /etc/ldap/schema/
# wget http://debian.easyteam.org/files/samba/hdb.schema -P /etc/ldap/schema/
Riga 567: Riga 567:
# slapcat > ~/slapd.ldif
# slapcat > ~/slapd.ldif
</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>
# wget http://debian.easyteam.org/files/samba/hdb.schema -P /etc/ldap/schema/
# wget http://debian.easyteam.org/files/samba/hdb.schema -P /etc/ldap/schema/
Riga 578: Riga 578:
</pre>
</pre>
e prendete nota del risultato.<br/>
e prendete nota del risultato.<br/>
Ora occorre modificare il file di configurazione di slapd (<tt>/etc/ldap/slapd.conf</tt>) aggiungendo nella sezione <tt>Schema and objectClass definitions</tt> lo schema per samba:
Ora occorre modificare il file di configurazione di slapd (<code>/etc/ldap/slapd.conf</code>) aggiungendo nella sezione <code>Schema and objectClass definitions</code> lo schema per samba:
<pre>
<pre>
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/samba.schema
</pre>
</pre>
Nella sezione <tt>Indexing options</tt> aggiungere una serie di indicizzazioni che ottimizzeranno le interogazioni per l'utilizzo del server SAMBA:
Nella sezione <code>Indexing options</code> aggiungere una serie di indicizzazioni che ottimizzeranno le interogazioni per l'utilizzo del server SAMBA:
<pre>
<pre>
index objectClass eq,pres
index objectClass eq,pres
Riga 788: Riga 788:
#suffix        "dc=debian,dc=org"
#suffix        "dc=debian,dc=org"
</pre>
</pre>
Possiamo far ripartire <tt>slapd</tt> affinché tutte le modifiche apportate siano prese in considerazione.
Possiamo far ripartire <code>slapd</code> affinché tutte le modifiche apportate siano prese in considerazione.
<pre>
<pre>
# /etc/init.d/slapd stop
# /etc/init.d/slapd stop
Riga 802: Riga 802:
# ldapsearch -x
# ldapsearch -x
</pre>
</pre>
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 <tt>slapd</tt> può sempre tornare utile fermare il servizio e farlo partire, anziché con gli script standard debian con il comando:
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 <code>slapd</code> può sempre tornare utile fermare il servizio e farlo partire, anziché con gli script standard debian con il comando:
<pre>
<pre>
# slapd -d 256
# slapd -d 256
Riga 809: Riga 809:


== Configurazione di Samba ==
== Configurazione di Samba ==
Prima di iniziare a configurare Samba è necessario creare le directory nelle quali risiederanno le homes degli utenti, gli script di netlogon e i profili centralizzati (o profili roaming). Alcune di queste directory sono già state indicate nel file <tt>/etc/smbldap-tools/smbldap.conf</tt>, quindi è bene stare attenti a non commettere errori.<br/>
Prima di iniziare a configurare Samba è necessario creare le directory nelle quali risiederanno le homes degli utenti, gli script di netlogon e i profili centralizzati (o profili roaming). Alcune di queste directory sono già state indicate nel file <code>/etc/smbldap-tools/smbldap.conf</code>, quindi è bene stare attenti a non commettere errori.<br/>
<pre>
<pre>
# mkdir /dominio
# mkdir /dominio
Riga 817: Riga 817:
# mkdir /dominio/pubblica
# mkdir /dominio/pubblica
</pre>
</pre>
La configurazione di Samba si riduce a modificare il file <tt>/etc/samba/smb.conf</tt>. State attenti: il file è molto lungo ed è facile tralasciare qualcosa o inserire opzioni in conflitto tra loro. Per iniziare ci si basi sul file di esempio, funzionante e testato, riportato di seguito con gli opportuni commenti:
La configurazione di Samba si riduce a modificare il file <code>/etc/samba/smb.conf</code>. State attenti: il file è molto lungo ed è facile tralasciare qualcosa o inserire opzioni in conflitto tra loro. Per iniziare ci si basi sul file di esempio, funzionante e testato, riportato di seguito con gli opportuni commenti:
<pre>
<pre>
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
Riga 1 121: Riga 1 121:
Per creare i gruppi predefiniti e gli utenti utilizzati da Samba è possibile procedere in due modi.
Per creare i gruppi predefiniti e gli utenti utilizzati da Samba è possibile procedere in due modi.
=== 1 - Utilizzo degli script forniti con smbldap-tools ===
=== 1 - Utilizzo degli script forniti con smbldap-tools ===
La prima via consiste nel fare uso di alcuni script forniti con il pacchetto <tt>smbldap-tools</tt> che abbiamo già installato:
La prima via consiste nel fare uso di alcuni script forniti con il pacchetto <code>smbldap-tools</code> che abbiamo già installato:
<pre>
<pre>
# smbldap-populate -a root -k 0
# smbldap-populate -a root -k 0
Riga 1 199: Riga 1 199:
* Account LDAP per root: ''cn=admin,dc=dominio,dc=local''
* Account LDAP per root: ''cn=admin,dc=dominio,dc=local''
* Password LDAP di root: ''mia_password''
* Password LDAP di root: ''mia_password''
Verifichiamo che il file <tt>/etc/pam_ldap.conf</tt> contenga almeno:
Verifichiamo che il file <code>/etc/pam_ldap.conf</code> contenga almeno:
<pre>
<pre>
host 127.0.0.1
host 127.0.0.1
Riga 1 208: Riga 1 208:
Assicuriamoci che l'uri sia settato correttamente in ''/etc/default/slapd'' alla voce ''SLAPD_SERVICES = ldap://10.0.0.10:389''.
Assicuriamoci che l'uri sia settato correttamente in ''/etc/default/slapd'' alla voce ''SLAPD_SERVICES = ldap://10.0.0.10:389''.
<br/><br/>
<br/><br/>
A questo punto bisogna modificare il file <tt>/etc/nsswitch.conf</tt> come indicato dall'installer. Prima però ne facciamo una copia di backup.
A questo punto bisogna modificare il file <code>/etc/nsswitch.conf</code> come indicato dall'installer. Prima però ne facciamo una copia di backup.
<pre>
<pre>
# cp -pf /etc/nsswitch.conf /etc/nsswitch.conf.orig
# cp -pf /etc/nsswitch.conf /etc/nsswitch.conf.orig
Riga 1 488: Riga 1 488:
=== Offline Physical Backup ===
=== Offline Physical Backup ===
Un offline physical backup deve essere effettuato sul server stesso. Lo svantaggio di questo tipo di backup è che il server LDAP non sarà disponibile per l'intera durata del processo.
Un offline physical backup deve essere effettuato sul server stesso. Lo svantaggio di questo tipo di backup è che il server LDAP non sarà disponibile per l'intera durata del processo.
# Stopare il server LDAP: <tt>/usr/sbin/rcldap stop</tt>
# Stopare il server LDAP: <code>/usr/sbin/rcldap stop</code>
# Copiare tutti i files in /var/lib/ldap/ dentro una directory di backup
# Copiare tutti i files in /var/lib/ldap/ dentro una directory di backup
# Riavviare il server LDAP: <tt>/usr/sbin/rcldap start</tt>
# Riavviare il server LDAP: <code>/usr/sbin/rcldap start</code>


=== Offline Logical Backup ===
=== Offline Logical Backup ===
Questo tipo di backup, noto anche come '''database dump''' richiede sempre l'arresto del servizio LDAP:
Questo tipo di backup, noto anche come '''database dump''' richiede sempre l'arresto del servizio LDAP:
# <tt>/usr/sbin/rcldap stop</tt>
# <code>/usr/sbin/rcldap stop</code>
# <tt>slapcat >ldap.\$(date +'\%Y\%m\%d-\%T')</tt> Questo comando genera nella directory corrente un file LDIF che può successivamente essere archiviato
# <code>slapcat >ldap.\$(date +'\%Y\%m\%d-\%T')</code> Questo comando genera nella directory corrente un file LDIF che può successivamente essere archiviato
# <tt>/usr/sbin/rcldap start</tt>
# <code>/usr/sbin/rcldap start</code>


=== Online Backup ===
=== Online Backup ===
Questo tipo di backup, a differenza dei precedenti, utilizza LDAP stesso per effettuare il dump dei dati del database e quindi, pur appensantendo il server, non richiede l'arresto del servizio.
Questo tipo di backup, a differenza dei precedenti, utilizza LDAP stesso per effettuare il dump dei dati del database e quindi, pur appensantendo il server, non richiede l'arresto del servizio.
# <tt>ldapsearch -h LDAPServer -x -b baseDN > ldap.\$(date +'\%Y\%m\%d-\%T')</tt><br/>
# <code>ldapsearch -h LDAPServer -x -b baseDN > ldap.\$(date +'\%Y\%m\%d-\%T')</code><br/>
dove <tt>LDAPServer</tt> è il nome del server e <tt>baseDN</tt> è il distinguished name (DN) della struttura LDAP, nel nostro caso <tt>dc=dominio,dc=local</tt>
dove <code>LDAPServer</code> è il nome del server e <code>baseDN</code> è il distinguished name (DN) della struttura LDAP, nel nostro caso <code>dc=dominio,dc=local</code>
=== Database Restore ===
=== Database Restore ===
# Per ripristinare un offline backup:
# Per ripristinare un offline backup:
## <tt>/usr/sbin/rcldap stop</tt>
## <code>/usr/sbin/rcldap stop</code>
## copiare i files salvati in /var/lib/ldap (Se Offline Physical Backup)
## copiare i files salvati in /var/lib/ldap (Se Offline Physical Backup)
## <tt>slapadd -l nome_del_backupfile</tt> (Se Offline Logical Backup)
## <code>slapadd -l nome_del_backupfile</code> (Se Offline Logical Backup)
## <tt>/usr/sbin/rcldap start</tt>
## <code>/usr/sbin/rcldap start</code>
# Per ripristinare un online backup:
# Per ripristinare un online backup:
## <tt>ldapadd -D adminDN -x -w adminPassword -h LDAPServer -x -f nome_del_backupfile</tt><br/>
## <code>ldapadd -D adminDN -x -w adminPassword -h LDAPServer -x -f nome_del_backupfile</code><br/>
dove <tt>adminDN</tt> è nel nostro caso dn=admin,dc=dominio,dc=local
dove <code>adminDN</code> è nel nostro caso dn=admin,dc=dominio,dc=local




6 999

contributi