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

Vai alla navigazione Vai alla ricerca
m
nessun oggetto della modifica
mNessun oggetto della modifica
 
(25 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
==Samba e OpenLDAP: creare un controller di dominio==
{{SAMBA
===Introduzione===
|precedente=Samba: guida estesa
|successivo=Samba e OpenLDAP: creare un controller di dominio con Debian Etch}}{{Versioni compatibili|ONLY|Sarge}}
== Versioni compatibili ==
* Debian Sarge 3.0
* Per Debian Etch 4.0 vedi: [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]]
* Per Debian Lenny 5.0 vedi: [[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny]]
== Introduzione ==
In questo articolo vedremo come installare un server basato su Debian e Samba 3 con backend di un database LDAP, affinché funga da Primary Domain Controller di una rete Windows. Lo stesso server LDAP verrà utilizzato anche per la gestione in contemporanea degli utenti Unix, in modo da avere un controllo unico e centralizzato sia sugli utenti Windows sia sugli utenti Linux.<br/>
In questo articolo vedremo come installare un server basato su Debian e Samba 3 con backend di un database LDAP, affinché funga da Primary Domain Controller di una rete Windows. Lo stesso server LDAP verrà utilizzato anche per la gestione in contemporanea degli utenti Unix, in modo da avere un controllo unico e centralizzato sia sugli utenti Windows sia sugli utenti Linux.<br/>
Per la redazione di questa guida mi sono basato su questi ottimi HowTo:<br/>
Per la redazione di questa guida mi sono basato su questi ottimi HowTo:<br/>
Riga 10: Riga 16:
<br/>
<br/>


===Sistema installato===
== Sistema installato ==
Il presente HOWTO è stato realizzato utilizzando un sistema Debian 3.1 Sarge con tutti gli aggiornamenti di sicurezza ufficiali.  
Il presente HOWTO è stato realizzato utilizzando un sistema Debian 3.1 Sarge con tutti gli aggiornamenti di sicurezza ufficiali.  
La configurazione iniziale del sistema prevede un'installazione base Debian net install senza alcun componente aggiuntivo.<br/>
La configurazione iniziale del sistema prevede un'installazione base Debian net install senza alcun componente aggiuntivo.<br/>
Riga 16: Riga 22:
<br/>
<br/>


===Samba===
== Samba ==
Si consiglia di installare immediatamente Samba, in quanto alcuni strumenti che mette a disposizione saranno necessari anche per le configurazioni degli altri servizi.
Si consiglia di installare immediatamente Samba, in quanto alcuni strumenti che mette a disposizione saranno necessari anche per le configurazioni degli altri servizi.
<pre>
<pre>
Riga 30: Riga 36:
<br/>
<br/>


===Installazione e configurazione del server LDAP===
== Installazione e configurazione del server LDAP ==
Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.<br/>
Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.<br/>
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento.<br/>
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento.<br/>
Riga 38: 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 44: 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 74: 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 82: 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 89: Riga 95:
<br/>
<br/>


===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 102: Riga 108:
<br/>
<br/>


===Configurare i SMBLDAP TOOLS===
== Configurare i SMBLDAP TOOLS ==
I smbldap-tools sostituiscono i comandi standard di UNIX per la gestione di gruppi, utenti e password in modo da dialogare direttamente con il server LDAP e fornire un metodo per gestire in contemporanea gli account UNIX e SAMBA.<br/>
I smbldap-tools sostituiscono i comandi standard di UNIX per la gestione di gruppi, utenti e password in modo da dialogare direttamente con il server LDAP e fornire un metodo per gestire in contemporanea gli account UNIX e SAMBA.<br/>
Malgrado la documentazione ufficiale di SAMBA asserisca che smbpasswd sia in grado di gestire tali account, utilizzando quello strumento occorre prima creare l'utente UNIX, poi quello Samba, pertanto ne sconsiglio l'utilizzo.
Malgrado la documentazione ufficiale di SAMBA asserisca che smbpasswd sia in grado di gestire tali account, utilizzando quello strumento occorre prima creare l'utente UNIX, poi quello Samba, pertanto ne sconsiglio l'utilizzo.
====Installazione====
=== Installazione ===
Installare il pacchetto smbldap-tools
Installare il pacchetto smbldap-tools
<pre>
<pre>
# apt-get install smbldap-tools
# apt-get install smbldap-tools
</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 135: 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 177: Riga 183:
</pre><br/>
</pre><br/>


===Configurazione di SAMBA===
== Configurazione di SAMBA ==
A questo punto il backend per la memorizzazione degli utenti e la loro gestione è pronto; è quindi il momento di passare a SAMBA per farlo accedere a quanto fatto finora.
A questo punto il backend per la memorizzazione degli utenti e la loro gestione è pronto; è quindi il momento di passare a SAMBA per farlo accedere a quanto fatto finora.
====Creazione dei dati base====
=== Creazione dei dati base ===
Per il funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.<br/>
Per il funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.<br/>
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.<br/>
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.<br/>
Riga 203: Riga 209:
</pre>
</pre>
Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.
Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.
====Configurazione di NSS per lavorare con LDAP====
=== Configurazione di NSS per lavorare con LDAP ===
Per far lavorare correttamente Samba è necessario configurare NSS con LDAP. Samba infatti si aspetta di trovare un utente di sistema con lo stesso nome di un utente Samba. Per questo occorre recuperare le informazioni sugli utenti dal database LDAP. È necessario quindi installare:
Per far lavorare correttamente Samba è necessario configurare NSS con LDAP. Samba infatti si aspetta di trovare un utente di sistema con lo stesso nome di un utente Samba. Per questo occorre recuperare le informazioni sugli utenti dal database LDAP. È necessario quindi installare:
<pre>
<pre>
Riga 209: 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 221: 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 241: 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 269: Riga 275:
<br/>
<br/>


===Configurazione del server Samba===
== Configurazione del server Samba ==
E' possibile copiare un prototipo per il file di configurazione di samba (facendo una copia dell'originale!):
E' possibile copiare un prototipo per il file di configurazione di samba (facendo una copia dell'originale!):
<pre>
<pre>
Riga 279: Riga 285:
<pre>
<pre>
[global]
[global]
workgroup = LOGIC
workgroup = MIODOMINIO
server string = LAN Server %v
server string = LAN Server %v
Riga 317: Riga 323:
##### LDAP Configuration #####
##### LDAP Configuration #####


ldap admin dn = cn=admin,dc=logic
ldap admin dn = cn=admin,dc=miodominio,dc=local
ldap suffix = dc=logic
ldap suffix = dc=miodominio,dc=local
ldap group suffix = ou=Groups
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap user suffix = ou=Users
Riga 422: Riga 428:
# chmod 1757 /var/lib/samba/profiles
# chmod 1757 /var/lib/samba/profiles
</pre>
</pre>
====Creare il primo utente====
=== Creare il primo utente ===
Adesso siamo pronti per la creazione del primo utente con il comando:
Adesso siamo pronti per la creazione del primo utente con il comando:
<pre>
<pre>
Riga 435: Riga 441:
# smbldap-usershow username
# smbldap-usershow username
</pre>
</pre>
====Creare un gruppo====
=== Creare un gruppo ===
<pre>
<pre>
# smbldap-groupadd "NomeGruppo"
# smbldap-groupadd "NomeGruppo"
</pre>
</pre>
====Aggiunta di un utente a un gruppo====
=== Aggiunta di un utente a un gruppo ===
<pre>
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
# smbldap-usermod -G "NomeGruppo" nome.utente
Riga 445: Riga 451:
<br/>
<br/>


===Creazione di un semplice script da eseguire al login di windows===
== Creazione di un semplice script da eseguire al login di windows ==
E' possibile creare uno script che abbiamo chiamto "logon.bat" (come specificato nel file /etc/smbldap-tools/smbldap.conf) da mettere nella cartella indicata per la condivisione netlogon, quindi nel nostro caso /var/lib/samba/netlogon/  
E' possibile creare uno script che abbiamo chiamto "logon.bat" (come specificato nel file /etc/smbldap-tools/smbldap.conf) da mettere nella cartella indicata per la condivisione netlogon, quindi nel nostro caso /var/lib/samba/netlogon/  
Tale script dovrà esser scritto in modalità dos, per far questo sfrutteremo il tool unix2dos contenuto nel pacchetto tofrodos.
Tale script dovrà esser scritto in modalità dos, per far questo sfrutteremo il tool unix2dos contenuto nel pacchetto tofrodos.
Riga 466: Riga 472:
Tenete conto che con queste impostazioni viene creata un'unità di rete collegata alla home dell'utente linux.
Tenete conto che con queste impostazioni viene creata un'unità di rete collegata alla home dell'utente linux.


===Connettersi al dominio===
== Connettersi al dominio ==
Il nostro server è ora pronto per essere utilizzato. Per testarne le funzionalità è possibile procedere per gradi, in modo da isolare quelli che sono i problemi di configurazione da quelli che sono i problemi di rete o dei client Windows.<br/>
Il nostro server è ora pronto per essere utilizzato. Per testarne le funzionalità è possibile procedere per gradi, in modo da isolare quelli che sono i problemi di configurazione da quelli che sono i problemi di rete o dei client Windows.<br/>
A tal fine il primo accesso può essere fatto dal server stesso con il comando:
A tal fine il primo accesso può essere fatto dal server stesso con il comando:
Riga 518: Riga 524:
Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).
Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).
<br/>
<br/>
===Unire un server Samba al dominio===
== Unire un server Samba al dominio ==
Nel caso si disponga di un secondo server e si voglia utilizzare un unico database degli utenti è possibile seguire 2 strade differenti:
Nel caso si disponga di un secondo server e si voglia utilizzare un unico database degli utenti è possibile seguire 2 strade differenti:
# Configurare il secondo server per accedere a LDAP seguendo le indicazioni esposte per il server di dominio, ovviamente senza farlo diventare server di dominio, ma con autenticazione degli utenti
# Configurare il secondo server per accedere a LDAP seguendo le indicazioni esposte per il server di dominio, ovviamente senza farlo diventare server di dominio, ma con autenticazione degli utenti
Riga 524: 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 542: Riga 548:
A questo punto è possibile creare share e assegnare permessi in base a utenti e gruppi definiti nel dominio.
A questo punto è possibile creare share e assegnare permessi in base a utenti e gruppi definiti nel dominio.
<br/>
<br/>
===Promemoria dei comandi di Samba e LDAP===
== Promemoria dei comandi di Samba e LDAP ==
====Creazione di utenti====
=== Creazione di utenti ===
<pre>
<pre>
# smbldap-useradd -a -m -c "Descrizione Utente" nome.utente
# smbldap-useradd -a -m -c "Descrizione Utente" nome.utente
Riga 552: Riga 558:
# smbldap-usershow nome.utente
# smbldap-usershow nome.utente
</pre>
</pre>
====Creazione di un gruppo====
=== Creazione di un gruppo ===
<pre>
<pre>
# smbldap-groupadd "NomeGruppo"
# smbldap-groupadd "NomeGruppo"
</pre>
</pre>
====Aggiunta di un utente a un gruppo====
=== Aggiunta di un utente a un gruppo ===
<pre>
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
</pre>
====Elencare i gruppi memorizzati in LDAP====
=== Elencare i gruppi memorizzati in LDAP ===
<pre>
<pre>
# ldapsearch -x objectClass=posixGroup
# ldapsearch -x objectClass=posixGroup
</pre>
</pre>
====Elencare gli utenti di un gruppo====
=== Elencare gli utenti di un gruppo ===
<pre>
<pre>
# smbldap-groupshow "gruppo"
# smbldap-groupshow "gruppo"
</pre>
</pre>
====Backuppare una directory condivisa dal server usando le credenziali di un utente specifico====
=== Backuppare una directory condivisa dal server usando le credenziali di un utente specifico ===
<pre>
<pre>
smbclient //nomeserver/nomecartella -U nome.utente%password.utente -N -Tc backup.tar /percorso/locale/del/backup
smbclient //nomeserver/nomecartella -U nome.utente%password.utente -N -Tc backup.tar /percorso/locale/del/backup
</pre>
</pre>
====Elencare le risorse condivise di una macchina====
=== Elencare le risorse condivise di una macchina ===
<pre>
<pre>
smbclient -L nomeserver
smbclient -L nomeserver
</pre>
</pre>
====Per fare delle modifiche nel DB in maniera semplice====
=== Per fare delle modifiche nel DB in maniera semplice ===
<pre>
<pre>
   slapcat -l /tmp/backup.ldif     
   slapcat -l /tmp/backup.ldif     
Riga 593: Riga 599:
   slapadd -c -l /tmp/backup.ldif
   slapadd -c -l /tmp/backup.ldif
</pre>
</pre>
====Comandi utili LDAP====
=== Comandi utili LDAP ===
<pre>
<pre>
ldapsearch -b "dc=logic" -x
ldapsearch -b "dc=miodominio,dc=local" -x


ldapsearch -b "dc=logic" -LLL "cn=nomedellutente*" -x
ldapsearch -b "dc=miodominio,dc=local" -LLL "cn=nomedellutente*" -x


ldapadd -x -W -D "cn=admin,dc=logic" -f entry.ldif  # per importare un ldif
ldapadd -x -W -D "cn=admin,dc=miodominio,dc=local" -f entry.ldif  # per importare un ldif


ldapdelete  -x  -D "cn=admin,dc=logic" -W "cn= nomeutente,dc=logic"
ldapdelete  -x  -D "cn=admin,dc=miodominio,dc=local" -W "cn= nomeutente,dc=logic"
</pre>
</pre>
Nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il file di configurazione corretto.
Nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il file di configurazione corretto.
<br/>
<br/>
===Configurazioni addizionali attivabili in SAMBA===
 
== Configurazioni addizionali attivabili in SAMBA ==
'''Disabilitare i roaming profiles'''
'''Disabilitare i roaming profiles'''
<br/>
<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/>
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 617: 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 630: Riga 637:
In questo modo al login e logout i profili sul server non sono più considerati.
In questo modo al login e logout i profili sul server non sono più considerati.
<br/>
<br/>
===db4===
== db4 ==
OpenLDAP ha la brutta abitudine di non risistemarsi per bene quando la donna delle pulizie inciampa nell'interruttore generale della corrente. Perciò conviene installare:
OpenLDAP ha la brutta abitudine di non risistemarsi per bene quando la donna delle pulizie inciampa nell'interruttore generale della corrente. Perciò conviene installare:
<pre>
<pre>
Riga 637: Riga 644:
Questo pacchetto contiene l'utility db4.2_recover che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.
Questo pacchetto contiene l'utility db4.2_recover che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.
<br/>
<br/>
===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 649: Riga 656:
</pre>
</pre>
<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]
workgroup = SCUOLA
workgroup = MIODOMINIO
server string = LAN Server %v
server string = LAN Server %v
wins support = yes
wins support = yes
Riga 690: Riga 697:
##### LDAP Configuration #####
##### LDAP Configuration #####


ldap admin dn = cn=admin,dc=scuola
ldap admin dn = cn=admin,dc=miodominio,dc=local
ldap suffix = dc=scuola
ldap suffix = dc=miodominio,dc=local
ldap group suffix = ou=Groups
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap user suffix = ou=Users
Riga 780: 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 836: Riga 843:


# The base of your directory in database #1
# The base of your directory in database #1
suffix          "dc=scuola"
suffix          "dc=miodominio,dc=local"


# Where the database file are physically stored for database #1
# Where the database file are physically stored for database #1
Riga 861: Riga 868:
# These access lines apply to database #1 only
# These access lines apply to database #1 only
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
         by dn="cn=admin,dc=scuola" write
         by dn="cn=admin,dc=miodominio,dc=local" write
         by anonymous auth
         by anonymous auth
         by self write
         by self write
Riga 880: Riga 887:
# can read everything.
# can read everything.
access to *
access to *
         by dn="cn=admin,dc=scuola" write
         by dn="cn=admin,dc=miodominio,dc=local" write
         by * read
         by * read


Riga 886: Riga 893:
# profile for which they have write access to
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=scuola" write
#        by dn="cn=admin,dc=miodominio,dc=local" write
#        by dnattr=owner write
#        by dnattr=owner write


Riga 899: 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 912: Riga 919:
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666


BASE dc=scuola
BASE dc=miodominio,dc=local
URI ldap://localhost
URI ldap://localhost


Riga 920: 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 929: Riga 936:
# By default, we will use the same DN (so it will work for standard Samba
# By default, we will use the same DN (so it will work for standard Samba
# release)
# release)
slaveDN="cn=admin,dc=scuola"
slaveDN="cn=admin,dc=miodominio,dc=local"
slavePw="password"
slavePw="password"
masterDN="cn=admin,dc=scuola"
masterDN="cn=admin,dc=miodominio,dc=local"
masterPw="password"
masterPw="password"
</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 021: Riga 1 028:
# LDAP Suffix
# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=scuola"
suffix="dc=miodominio,dc=local"


# Where are stored Users
# Where are stored Users
Riga 1 040: Riga 1 047:


# Where to store next uidNumber and gidNumber available
# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="sambaDomainName=SCUOLA,${suffix}"
sambaUnixIdPooldn="sambaDomainName=MIODOMINIO,${suffix}"


# Default scope Used
# Default scope Used
Riga 1 117: Riga 1 124:
# Domain appended to the users "mail"-attribute
# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# when smbldap-useradd -M is used
mailDomain="scuola"
mailDomain="miodominio.local"


##############################################################################
##############################################################################
Riga 1 136: 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 159: 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 173: 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 188: 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 219: 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>
#
#
Riga 1 232: Riga 1 239:
session required pam_unix.so
session required pam_unix.so
</pre>
</pre>
<br/>
== Approfondimenti ==
----
=== Debianizzati ===
: [[Utente:Ferdybassi|Ferdybassi]] 04:46, 31 Dic 2006 (CST)
[[Samba e OpenLDAP: creare un controller di dominio]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny]]<br/>
[[Implementare un'architettura ridondante master/slave OpenLDAP]]<br/>
[[Samba: guida estesa]]<br/>
[[Samba: creare un cestino di rete per le condivisioni]]<br/>
[[ClamAV: scansione antivirus delle condivisioni Samba]]
 
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 04:46, 31 Dic 2006 (CST)
}}
 


[[Categoria:Server]]
[[Categoria:Reti con Windows]][[Categoria:Samba]]
3 581

contributi

Menu di navigazione