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

rimosso tag <tt>
(rimosso tag <tt>)
Riga 44: Riga 44:
</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>miodominio.local</tt>, un dominio interno non valido per Internet.
Nei file riportati si considera che il dominio specificato è <code>miodominio.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 MioDominio.<br/>
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di MioDominio.<br/>
Riga 50: Riga 50:
<br/><br/>
<br/><br/>
Passiamo ora alla configurazione del server LDAP.<br/>
Passiamo ora alla configurazione del server LDAP.<br/>
Innanzitutto dobbiamo copiare in <tt>/etc/ldap/schema</tt> lo schema LDAP necessario per SAMBA.
Innanzitutto dobbiamo copiare in <code>/etc/ldap/schema</code> lo schema LDAP necessario per SAMBA.
<pre>
<pre>
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
</pre>
</pre>
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
index objectClass eq
Riga 80: Riga 80:
rootpw          "passworddiadmindigitataprecedentemente"
rootpw          "passworddiadmindigitataprecedentemente"
</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 restart
# /etc/init.d/slapd restart
Riga 88: Riga 88:
# 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 96: Riga 96:


== Configurazione dei client per LDAP ==
== Configurazione dei client per LDAP ==
Ogni volta che un client accede ad un server LDAP deve impostare la base di ricerca e, nel caso si trovi su un server differente, l'URL del server LDAP. Queste informazioni possono essere impostate come default nel file <tt>/etc/ldap/ldap</tt>.conf aggiungendo le righe:
Ogni volta che un client accede ad un server LDAP deve impostare la base di ricerca e, nel caso si trovi su un server differente, l'URL del server LDAP. Queste informazioni possono essere impostate come default nel file <code>/etc/ldap/ldap</code>.conf aggiungendo le righe:
<pre>
<pre>
BASE dc=miodominio,dc=local
BASE dc=miodominio,dc=local
Riga 117: Riga 117:
</pre>
</pre>
=== Configurazione ===
=== Configurazione ===
Copiare i file <tt>smbldap.conf</tt> e <tt>smbldap_bind.conf</tt> in <tt>/etc/smbldap-tools</tt>.
Copiare 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=miodominio,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=miodominio,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 141: Riga 141:
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 215: Riga 215:
</pre>
</pre>
Verrà chiesto il server LDAP e il dominio (miodominio.local), poi dovrete cambiare la stringa per la connessione al database ldap, mettendo admin come utente e dc=miodominio,dc=local nei valori dc. Per tutte le altre domande è possibile mantenere le risposte di default.
Verrà chiesto il server LDAP e il dominio (miodominio.local), poi dovrete cambiare la stringa per la connessione al database ldap, mettendo admin come utente e dc=miodominio,dc=local nei valori dc. Per tutte le altre domande è possibile mantenere le risposte di default.
Dopo l'installazione è necessario modificare il file di configurazione di NSS (<tt>/etc/nsswitch.conf</tt>) come segue:
Dopo l'installazione è necessario modificare il file di configurazione di NSS (<code>/etc/nsswitch.conf</code>) come segue:
<pre>
<pre>
passwd: compat ldap
passwd: compat ldap
Riga 227: Riga 227:
che dovrebbe riportare anche gli utenti Samba come Administrator.
che dovrebbe riportare anche gli utenti Samba come Administrator.
<br/>
<br/>
Verificate anche che il file <tt>/etc/libnss-ldap.conf</tt> sia simile al seguente:
Verificate anche che il file <code>/etc/libnss-ldap.conf</code> sia simile al seguente:
<pre>
<pre>
host 127.0.0.1
host 127.0.0.1
Riga 247: Riga 247:
# apt-get install libpam-ldap libpam-cracklib
# apt-get install libpam-ldap libpam-cracklib
</pre>
</pre>
Vi viene chiesto come per libnss-ldap, il DN dell'amministratore di LDAP e la sua password. Per il resto possono essere confermate le impostazioni predefinite. In questo modo il file <tt>/etc/pam_ldap.conf</tt> ha già tutte le impostazioni corrette e la password è stata memorizzata in <tt>/etc/ldap.secret</tt>.
Vi viene chiesto come per libnss-ldap, il DN dell'amministratore di LDAP e la sua password. Per il resto possono essere confermate le impostazioni predefinite. In questo modo il file <code>/etc/pam_ldap.conf</code> ha già tutte le impostazioni corrette e la password è stata memorizzata in <code>/etc/ldap.secret</code>.
<br />
<br />
Verificate il file <tt>/etc/pam_ldap.conf</tt>, che deve essere identico al file /etc/libnss-ldap.conf modificato poco prima.
Verificate il file <code>/etc/pam_ldap.conf</code>, che deve essere identico al file /etc/libnss-ldap.conf modificato poco prima.
<br/>
<br/>
Nella cartella <tt>/etc/pam.d</tt> modificare i seguenti files:
Nella cartella <code>/etc/pam.d</code> modificare i seguenti files:
<pre>
<pre>
commom-account:
commom-account:
Riga 530: Riga 530:
Il primo caso non verrà trattato, mentre per il secondo occorre eseguire le seguenti operazioni sul server da aggiungere.
Il primo caso non verrà trattato, mentre per il secondo occorre eseguire le seguenti operazioni sul server da aggiungere.
<br/>
<br/>
Modificare il file <tt>/etc/samba/smb.conf</tt> con la seguenti direttiva:
Modificare il file <code>/etc/samba/smb.conf</code> con la seguenti direttiva:
<pre>
<pre>
security = domain
security = domain
Riga 617: Riga 617:
Così come è stato configurator Samba permette l'utilizzo dei roaming profiles, meccanismo per cui tutte le impostazioni di un utente sono caricate dal server al login e salvate sul server al logout in modo da poter utilizzare computer differenti ritrovando le proprie impostazioni.<br/>
Così come è stato configurator Samba permette l'utilizzo dei roaming profiles, meccanismo per cui tutte le impostazioni di un utente sono caricate dal server al login e salvate sul server al logout in modo da poter utilizzare computer differenti ritrovando le proprie impostazioni.<br/>
Seppur questa funzionalità sia utile, nel caso di cartelle di profilo di elevate dimensioni (in questa cartella c'è la cache del browser, le e-mail, la cartella documenti, ...) i tempi di login e logout sono eterni. Il meccanismo dei roaming profiles può essere disabilitato per singolo computer o agendo sul server SAMBA a livello di impostazioni del singolo utente (e ovviamente di impostazioni di default da utilizzare durante la creazione degli utenti).<br/>
Seppur questa funzionalità sia utile, nel caso di cartelle di profilo di elevate dimensioni (in questa cartella c'è la cache del browser, le e-mail, la cartella documenti, ...) i tempi di login e logout sono eterni. Il meccanismo dei roaming profiles può essere disabilitato per singolo computer o agendo sul server SAMBA a livello di impostazioni del singolo utente (e ovviamente di impostazioni di default da utilizzare durante la creazione degli utenti).<br/>
Per disabilitare i roaming profiles agendo sul server occorre, innanzitutto, modificare il file <tt>/etc/samba/smb.conf</tt> aggiungendo le seguenti righe:
Per disabilitare i roaming profiles agendo sul server occorre, innanzitutto, modificare il file <code>/etc/samba/smb.conf</code> aggiungendo le seguenti righe:
<pre>
<pre>
logon home =
logon home =
Riga 624: Riga 624:
Questi parametri, anche se vuoti, DEVONO esserci, altrimenti il client continua a cercare il profile generando un errore.<br/>
Questi parametri, anche se vuoti, DEVONO esserci, altrimenti il client continua a cercare il profile generando un errore.<br/>
Per tutti gli utenti presenti occorre eliminare l'attributo sambaProfilePath. Per far ciò è possibile usare il comando smbldap-usermod, utilizzare un client di LDAP testuale o grafico o ancora usare gli strumenti di gestione utenti di Windows scaricando i srvtools.exe dal sito della Microsoft.<br/>
Per tutti gli utenti presenti occorre eliminare l'attributo sambaProfilePath. Per far ciò è possibile usare il comando smbldap-usermod, utilizzare un client di LDAP testuale o grafico o ancora usare gli strumenti di gestione utenti di Windows scaricando i srvtools.exe dal sito della Microsoft.<br/>
Infine, per far sì che i nuovi utenti non abbiano, come default, impostato il parametro in questione occorre commentare nel file <tt>/etc/smbldap-tools/smbldap.conf</tt> la riga:
Infine, per far sì che i nuovi utenti non abbiano, come default, impostato il parametro in questione occorre commentare nel file <code>/etc/smbldap-tools/smbldap.conf</code> la riga:
<pre>
<pre>
userProfile="\\PDC-SAMBA\profiles\%U"
userProfile="\\PDC-SAMBA\profiles\%U"
Riga 646: Riga 646:
== Impostare i charset corretti ==
== Impostare i charset corretti ==
Il meccanismo di gestione dei charset in Linux e in Windows è abbastanza complicato, anche a causa dell'elevato numero di strati logici e sistemi differenti che una stringa deve attraversare prima di essere letta o scritta. In larga parte ho ancora molte lacune sul funzionamento, ma di seguito riporto le configurazioni necessarie affinché eventuali lettere accentate nei nomi di file e cartelle siano coerenti sui client Windows, Linux e sul server Sambanel caso di charset Italiano (western european - ISO8859-1).<br/>
Il meccanismo di gestione dei charset in Linux e in Windows è abbastanza complicato, anche a causa dell'elevato numero di strati logici e sistemi differenti che una stringa deve attraversare prima di essere letta o scritta. In larga parte ho ancora molte lacune sul funzionamento, ma di seguito riporto le configurazioni necessarie affinché eventuali lettere accentate nei nomi di file e cartelle siano coerenti sui client Windows, Linux e sul server Sambanel caso di charset Italiano (western european - ISO8859-1).<br/>
In primo luogo occorre aggiungere al file di configurazione di Samba (<tt>/etc/samba/smb.conf</tt>), nella sezione <tt>[global]</tt>, la seguente direttiva:
In primo luogo occorre aggiungere al file di configurazione di Samba (<code>/etc/samba/smb.conf</code>), nella sezione <code>[global]</code>, la seguente direttiva:
<pre>
<pre>
unix charset = ISO8859-1
unix charset = ISO8859-1
Riga 657: Riga 657:
<br/>
<br/>
== Appendice A - Files di configurazione ==
== Appendice A - Files di configurazione ==
'''File <tt>/etc/samba/smb.conf</tt>'''
'''File <code>/etc/samba/smb.conf</code>'''
<pre>
<pre>
[global]
[global]
Riga 787: Riga 787:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/ldap/slapd.conf</tt>'''
'''File <code>/etc/ldap/slapd.conf</code>'''
<pre>
<pre>
# This is the main slapd configuration file. See slapd.conf(5) for more
# This is the main slapd configuration file. See slapd.conf(5) for more
Riga 906: Riga 906:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/ldap/ldap.conf</tt>'''
'''File <code>/etc/ldap/ldap.conf</code>'''
<pre>
<pre>
# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.9 2000/09/04 19:57:01 kurt Exp $
# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.9 2000/09/04 19:57:01 kurt Exp $
Riga 927: Riga 927:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/smbldap-tools/smbldap_bind.conf</tt>'''
'''File <code>/etc/smbldap-tools/smbldap_bind.conf</code>'''
<pre>
<pre>
############################
############################
Riga 942: Riga 942:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/smbldap-tools/smbldap.conf</tt>'''
'''File <code>/etc/smbldap-tools/smbldap.conf</code>'''
<pre>
<pre>
# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
Riga 1 143: Riga 1 143:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/nsswitch.conf</tt>'''
'''File <code>/etc/nsswitch.conf</code>'''
<pre>
<pre>
# /etc/nsswitch.conf
# /etc/nsswitch.conf
Riga 1 166: Riga 1 166:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/pam.d/common-account</tt>'''
'''File <code>/etc/pam.d/common-account</code>'''
<pre>
<pre>
#
#
Riga 1 180: Riga 1 180:
</pre>
</pre>
<br>
<br>
'''File <tt>/etc/pam.d/common-auth</tt>'''
'''File <code>/etc/pam.d/common-auth</code>'''
<pre>
<pre>
#
#
Riga 1 195: Riga 1 195:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/pam.d/common-password</tt>'''
'''File <code>/etc/pam.d/common-password</code>'''
<pre>
<pre>
#
#
Riga 1 226: Riga 1 226:
</pre>
</pre>
<br/>
<br/>
'''File <tt>/etc/pam.d/common-session</tt>'''
'''File <code>/etc/pam.d/common-session</code>'''
<pre>
<pre>
#
#
6 999

contributi