Samba e OpenLDAP: creare un controller di dominio Active Directory con Debian Wheezy: differenze tra le versioni

m
rimossa guida obsoleta
m (rimossa guida obsoleta)
 
(34 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{SAMBA
{{SAMBA
|precedente=Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze
|precedente=Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze
|successivo=Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server}}{{Versioni compatibili|Wheezy}}
|successivo=ClamAV: scansione antivirus delle condivisioni Samba}}{{Versioni compatibili|ONLY|Wheezy}}
 
{{Warningbox|'''Aprile 2014''': non sono presenti bug bloccanti nella versione di Samba presente nei Backports. L'installazione su un server di test si è conclusa felicemente.}}
 
== Introduzione ==
== Introduzione ==
Guide simili per precedenti versioni di Debian o altre distribuzioni Linux:
Guide simili per precedenti versioni di Debian o altre distribuzioni Linux:
Riga 167: Riga 170:
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
</pre>
</pre>
E' importante '''spostare''' il file e non semplicemente pensare di sovrascriverlo, altrimenti il seguente comando fallirà restituendo un errore.
E' importante '''spostare''' il file e non semplicemente pensare che venga sovrascritto, altrimenti il seguente comando fallirà restituendo un errore incomprensibile.
<br/>
<br/>
Quindi lanciamo il nuovo tool per effettuare il ''provision'' di Samba, cioè la configurazione di Samba come Domain Controller in una nuova foresta di domini Active Directory.
Quindi lanciamo il nuovo tool per effettuare il ''provision'' di Samba, cioè la configurazione di Samba come Domain Controller in una nuova foresta di domini Active Directory.
Riga 174: Riga 177:
* '''Debian Samba con DNS interno''':
* '''Debian Samba con DNS interno''':
<pre>
<pre>
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=SAMBA_INTERNAL --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.10
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=SAMBA_INTERNAL --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.254
</pre>
</pre>
* '''Debian Samba con Bind come DNS''':
* '''Debian Samba con Bind come DNS''':
<pre>
<pre>
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=BIND9_DLZ --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.10
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=BIND9_DLZ --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.254
</pre>
</pre>
* '''SERNET Samba''':
* '''SERNET Samba con DNS interno''':
<pre>
<pre>
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=SAMBA_INTERNAL --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.10
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=SAMBA_INTERNAL --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.254
</pre>
</pre>
<!-- Se voglio usare BIND come DNS
* '''SERNET Samba con Bind come DNS''':
<pre>
<pre>
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=BIND9_DLZ --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.10
# /usr/bin/samba-tool domain provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc --dns-backend=BIND9_DLZ --function-level=2008_R2 --use-xattr=yes --host-ip=10.0.0.254
</pre>
</pre>
-->
Confermando con Invio partirà la configurazione di Samba come controller di dominio; il tool di provisioning si incaricherà di configurare tutto quello che serve: Samba, Kerberos, OpenLDAP.
Confermando con Invio partirà la configurazione di Samba come controller di dominio; il tool di provisioning si incaricherà di configurare tutto quello che serve: Samba, Kerberos, OpenLDAP.
<br/>
<br/>
Riga 207: Riga 209:
# Se uso DNS interno
# Se uso DNS interno
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = -s3fs -dns
server services = -s3fs +dns
allow dns updates = secure
allow dns updates = secure
dns recursive queries = yes
dns recursive queries = yes
Riga 214: Riga 216:
# Se uso DNS Bind
# Se uso DNS Bind
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = -s3fs +dns
server services = -s3fs -dns
</pre>
</pre>
In mancanza di questa direttiva ogni tentativo di connessione al nostro server terminerebbe con un laconico messaggio di errore:
In mancanza di questa direttiva ogni tentativo di connessione al nostro server terminerebbe con un laconico messaggio di errore:
Riga 259: Riga 261:


=== Definizione di REALM ===  
=== Definizione di REALM ===  
Per poter effettuare questo tipo di configurazione, dobbiamo conoscere almeno a grandi linee alcuni nuovi concetti come il servizio Kerberos e la definizione di Realm. Quindi prima di addentrarsi nella configurazione del Kerberos, è bene affrontare il concetto di REALM (ovvero reame) Kerberos. In pratica il Realm è un dominio di autenticazione formato da utenti e macchine all'interno del quale uno o più server (detti KDC) sono autoritativi. Questa definizione calza perfettamente anche per un dominio AD (Active Directory), che difatti rappresenta anche un REALM kerberos, in cui i KDC sono rappresentati dai Domain Controller. Esattamente come per un AD, anche in Kerberos il REALM ha lostesso nome di un dominio DNS.
Per poter effettuare questo tipo di configurazione, dobbiamo conoscere almeno a grandi linee alcuni nuovi concetti come il servizio Kerberos e la definizione di Realm. Quindi prima di addentrarsi nella configurazione del Kerberos, è bene affrontare il concetto di REALM (ovvero reame) Kerberos. In pratica il Realm è un dominio di autenticazione formato da utenti e macchine all'interno del quale uno o più server (detti KDC) sono autoritativi. Questa definizione calza perfettamente anche per un dominio AD (Active Directory), che difatti rappresenta anche un REALM kerberos, in cui i KDC sono rappresentati dai Domain Controller. Esattamente come per un AD, anche in Kerberos il REALM ha lo stesso nome di un dominio DNS.
<br/>
<br/>
In pratica un utente/servizio appartiene ad un realm se e soltanto se condivide un segreto (password/chiave) con il server di autenticazione di quel realm. Il nome di un realm è case sensitive, cioè fa differenza tra minuscole e maiuscole; ma normalmente i realm vengono sempre specificati in maiuscolo.  
In pratica un utente/servizio appartiene ad un realm se e soltanto se condivide un segreto (password/chiave) con il server di autenticazione di quel realm. Il nome di un realm è case sensitive, cioè fa differenza tra minuscole e maiuscole; ma normalmente i realm vengono sempre specificati in maiuscolo.  
Riga 271: Riga 273:
Se durante la precedente installazione di Samba abbiamo scelto di affidare la gestione dei DNS a un demone diverso da quello di default, questo è il momento di configurare Bind.
Se durante la precedente installazione di Samba abbiamo scelto di affidare la gestione dei DNS a un demone diverso da quello di default, questo è il momento di configurare Bind.
<br/>
<br/>
Il DNS Server Bind lo possiamo installare e configurare utilizzando la guida seguente: [[Un server DNS e DHCP su Debian]] e creando le eventuali ulteriori zone che ci interessano ('''ATTENZIONE''': non va creata la zona relativa al dominio Samba4!), ma la sua configurazione va modificata secondo le indicazioni del file <code>/var/lib/samba/private/named.txt</code>. Quindi apriamo il file di configurazione:
Il DNS Server Bind lo possiamo installare e configurare utilizzando la guida seguente: [[Un server DNS e DHCP su Debian]] e creando le eventuali ulteriori zone che ci interessano ('''ATTENZIONE''': non va creata la zona relativa al dominio Samba4!), oppure, se non abbiamo altre necessità se non gestire i DNS del nostro dominio, possiamo semplicemente installarlo e tenere la configurazione di default:
<pre>
# apt-get install bind9 dnsutils
</pre>
Abbiamo Bind funzionante, ma la sua configurazione va modificata secondo le indicazioni del file <code>/var/lib/samba/private/named.txt</code>. Quindi apriamo il file di configurazione:
<pre>
<pre>
# nano /etc/bind/named.conf.local
# nano /etc/bind/named.conf.local
Riga 278: Riga 284:
<pre>
<pre>
include "/var/lib/samba/private/named.conf";
include "/var/lib/samba/private/named.conf";
</pre>
Occorre modificare il file <code>/var/lib/samba/private/named.conf</code> al fine di selezionare la libreria corretta per la versione di Bind in uso. Ad esempio per la versione 9.9.x il file andrà configurato come segue:
<pre>
nano /var/lib/samba/private/named.conf
</pre>
<pre>
# For BIND 9.8.x
# database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so";
# For BIND 9.9.x
database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so";
</pre>
</pre>
Poi aggiungiamo le seguenti righe al file <code>/etc/bind/named.conf.options</code> appena sotto alla definizione dei forwarders:
Poi aggiungiamo le seguenti righe al file <code>/etc/bind/named.conf.options</code> appena sotto alla definizione dei forwarders:
Riga 289: Riga 306:
e, sempre nello stesso file, modifichiamo la voce:
e, sempre nello stesso file, modifichiamo la voce:
<pre>
<pre>
#change auth-nxdomain no
#auth-nxdomain no
change auth-nxdomain yes
auth-nxdomain yes
</pre>
</pre>
e la sezione
e la sezione
Riga 303: Riga 320:
         empty-zones-enable no;
         empty-zones-enable no;
         allow-recursion { 127.0.0.1; 10.0.0.0/24; } ;
         allow-recursion { 127.0.0.1; 10.0.0.0/24; } ;
</pre>
Se, come quasi sempre, vogliamo che il nostro server DNS possa risolvere anche gli indirizzi esterni al dominio, dobbiamo aggiungere anche una sezione per i server DNS di inoltro:
<pre>
forwarders {
208.67.222.222;
208.67.220.220;
};
</pre>
</pre>
Quindi impostiamo i permessi corretti per la chiave di autenticazione Samba:
Quindi impostiamo i permessi corretti per la chiave di autenticazione Samba:
Riga 352: Riga 376:
Per effettuare una verifica del funzionamento dell’update dinamico possiamo utilizzare il comando:
Per effettuare una verifica del funzionamento dell’update dinamico possiamo utilizzare il comando:
<pre>
<pre>
# samba_dnsupdate –verbose
# samba_dnsupdate --verbose
</pre>
</pre>
=== SELinux ===
=== SELinux ===
Riga 400: Riga 424:


# host -t A server01.dominio.local.
# host -t A server01.dominio.local.
server01.dominio.local has address 10.0.0.10
server01.dominio.local has address 10.0.0.254
</pre>
</pre>


Riga 465: Riga 489:
</pre>
</pre>
<pre>
<pre>
# samba-tool ntacl sysvolreset
# samba-tool ntacl sysvolcheck
# smbclient //localhost/netlogon -UAdministrator%"your_password" -c 'ls'
# smbclient //localhost/netlogon -UAdministrator%"your_password" -c 'ls'
</pre>
</pre>
Riga 516: Riga 542:
D'ora in avanti potremo Samba come un normalissimo Controller di Dominio Windows, dai tool che troveremo in "Start - Programmi - Strumenti di amministrazione".
D'ora in avanti potremo Samba come un normalissimo Controller di Dominio Windows, dai tool che troveremo in "Start - Programmi - Strumenti di amministrazione".


=== Strumenti di Samba da shell ===
=== Strumenti di amministrazione da shell ===
{| class="wikitable" style="width:99%"
{| class="wikitable" style="width:99%"
|-
|-
| align="center" colspan="5" style="background-color:#EFEFEF" |
| align="center" colspan="5" style="background-color:#EFEFEF" |
===Gestione DNS===
===Gestione DNS===
|-
|-
Riga 562: Riga 589:
===Gestione Gruppi===
===Gestione Gruppi===
|-
|-
| width="50%" | Aggiungere un gruppo || width="50%" | # samba-tool group add groupname ||
| width="30%" | Aggiungere un gruppo || width="70%" | # samba-tool group add groupname ||
|-
| width="30%" | Aggiungere utenti a un gruppo || width="70%" | # samba-tool group addmembers groupname members ||
|-
| width="30%" | Cancellare un gruppo || width="70%" | # samba-tool group delete groupname ||
|-
| width="30%" | Elencare i gruppi || width="70%" | # samba-tool group list ||
|-
|-
| width="50%" | Aggiungere utenti a un gruppo || width="50%" | # samba-tool group addmembers groupname members ||
| width="30%" | Elencare i membri di un gruppo || width="70%" | # samba-tool group listmembers groupname ||
|-
|-
| width="50%" | Cancellare un gruppo || width="50%" | # samba-tool group delete groupname ||
| width="30%" | Cancellare utenti da un gruppo || width="70%" | # samba-tool group removemembers groupname members ||
|-
|-
| width="50%" | Elencare i gruppi || width="50%" | # samba-tool group list ||
| align="center" colspan="5" style="background-color:#EFEFEF" |
 
===Gestione Password===
|-
|-
| width="50%" | Elencare i membri di un gruppo || width="50%" | # samba-tool group listmembers groupname ||
| width="30%" | Abbassare la complessità delle password || width="70%" | # samba-tool domain passwordsettings set --complexity=off ||
|-
|-
| width="50%" | Cancellare utenti da un gruppo || width="50%" | # samba-tool group removemembers groupname members ||
| width="30%" | Modificare la lunghezza minima consentita per le password || width="70%" | # samba-tool domain passwordsettings set --min-pwd-length=1 ||
|-
|-
|}
|}
<br/>
Per un elenco completo dei comandi disponibili si consultino le [http://www.samba.org/samba/docs/man/manpages-3/samba-tool.8.html Man pages di Samba4].
<br/><br/>


=== ATTENZIONE ===
=== ATTENZIONE ===
Riga 581: Riga 619:


== Creare delle condivisioni di rete ==
== Creare delle condivisioni di rete ==
Per creare delle condivisioni di rete basta semplicemente aggiungere al file /code>/etc/samba/smb.conf</code> delle sezioni come la seguente:
Per creare delle condivisioni di rete basta semplicemente aggiungere al file <code>/etc/samba/smb.conf</code> delle sezioni come la seguente:
<pre>
<pre>
# mkdir /dati/condivisione
# mkdir /dati/condivisione
Riga 596: Riga 634:
I permessi potranno poi essere gestiti dalle proprietà della condivisione da Windows, attraverso lo Snap-In "Gestione Computer":
I permessi potranno poi essere gestiti dalle proprietà della condivisione da Windows, attraverso lo Snap-In "Gestione Computer":
* Gestione Computer - Connetti a un altro computer - <Immettere il nome del Server> - Strumenti di sistema - Condivisioni
* Gestione Computer - Connetti a un altro computer - <Immettere il nome del Server> - Strumenti di sistema - Condivisioni
== Test e connessione 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/>
A tal fine il primo accesso può essere fatto dal server stesso con il comando:
<pre>
# smbclient -L localhost -U Administrator
</pre>
Dovrebbe essere richiesta la password impostata precedentemente per l'utente Administrator e, di seguito, dovrebbero venire elencate le condivisioni samba impostate sul server.
<br/><br/>
La procedura di connessione dei client al dominio varia a seconda del sistema operativo utilizzato sulle macchine client:
<br/>
*'''Windows 95/98/ME'''
# Non più supportato
*'''Windows NT'''
# Non più supportato
*'''Windows 2000'''
# Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).
*'''Windows XP'''
# Come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica oppure cliccare su Identificazione di Rete ed eseguire il Wizard fornendo le credenziali di Administrator.
*'''Windows Vista'''
# Non ancora testato.
*'''Windows 7'''
# Come su Windows XP: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica oppure cliccare su Identificazione di Rete ed eseguire il Wizard fornendo le credenziali di Administrator.


== Ulteriori configurazioni ==
== Ulteriori configurazioni ==
Riga 601: Riga 662:
* Aggiungere una scansione antivirus alle nostre condivisioni Samba: [[ClamAV: scansione antivirus delle condivisioni Samba]]
* Aggiungere una scansione antivirus alle nostre condivisioni Samba: [[ClamAV: scansione antivirus delle condivisioni Samba]]
* Creare un cestino di rete per evitare di cancellare per sbaglio file importanti: [[Samba: creare un cestino di rete per le condivisioni]]
* Creare un cestino di rete per evitare di cancellare per sbaglio file importanti: [[Samba: creare un cestino di rete per le condivisioni]]
== Configurare un Groupware ==
Se non ci basta avere ottenuto un dominio Actove Directory con strumenti opensource e vogliamo di più, a questo punto possiamo configurare un intero ambiente Groupware che sostituisca Microsoft Exchange.
<br/>
E' sufficiente seguire questa guida: [[Installare un ambiente Groupware integrato in Samba4]]


== Bibliografia ==
== Bibliografia ==
Riga 610: Riga 676:
* [http://linux-on-a-server.com/samba-4-active-directory-my-first-successfully-test/ Linux on a Server]
* [http://linux-on-a-server.com/samba-4-active-directory-my-first-successfully-test/ Linux on a Server]


{{Autori|Autore=[[Utente:Ferdybassi|Ferdybassi]]}}
{{Autori
|Autore=[[Utente:Ferdybassi|Ferdybassi]]
|Estesa_da =
|Verificata_da =
: [[Utente:Turcs|Turcs]] 14:54, 02 feb 2016 (CEST)
|Numero_revisori = 1
}}
 
[[Categoria:Reti con Windows]][[Categoria:Samba]]
3 581

contributi