Samba e OpenLDAP: creare un controller di dominio Active Directory con Debian Wheezy

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Samba
Arrow left.png

Condivisione risorse

Controller di dominio

Altro

Arrow right.png
Debian-swirl.png Versioni Compatibili

soltanto:
Debian 7 "wheezy"
Warning.png ATTENZIONE
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

Guide simili per precedenti versioni di Debian o altre distribuzioni Linux:

Vedremo questa volta come installare un server basato su Debian Wheezy e Samba 4 affinché funga da Primary Domain Controller di una rete Windows.
Se non siete interessati alle funzionalità di Active Directory introdotte da Samba 4 e intendete solamente installare un Domain Controller che gestisca i profili centralizzati e l'autenticazione degli utenti, consigliamo di utilizzare la versione 3 di Samba, ancora presente nei repository di Wheezy, seguendo ad esempio questa guida:

Active Directory viene rappresentato normalmente come un database integrato nei server Windows, che fungono da domain controller (PDC), e consente di catalogare e gestire in modo centralizzato risorse di vario tipo come utenti, gruppi di lavoro, stampanti e cartelle condivise. In un dominio Active Directory risultano agire diverse componenti. Le informazioni associate alle risorse sono catalogate in un servizio di tipo LDAP integrato, opportunamente personalizzato da Microsoft. Il servizio di risoluzione dei nomi viene effettuato dal servizio DNS interno ai server Active Directory. Alla base del servizio Active Directory vi è il protocollo Kerberos, che permette di gestire le procedure di autenticazione in modo cifrata. Il servizio kerberos si occupa di identificarci, e successivamente di consentirci l’accesso sicuro alle risorse per le quali possediamo i permessi. Questa funzione è definita Single Sign-On (SSO), ovvero una sola autenticazione per l’accesso a tutte le risorse. Questo tipo di supporto viene offerto anche da Samba 4 con le stesse modalità dei server Windows.

La nuova release di Samba 4 ha infatti apportato moltissime modifiche:

  • Samba 4 è in grado di comportarsi come un Domain Controller Active Directory. È quindi possibile utilizzare i tool di gestione presenti nei server Windows 2000/2003, gestire le group policies per i client Windows, aggiungere indifferentemente ulteriori server Windows e/o Debian all'infrastruttura di rete
  • non è più necessario utilizzare come backend un database LDAP, poiché Samba 4 integra un proprio database LDAP modificato per avere compatibilità verso i database LDAP di Microsoft Active Directory
  • la condivisione delle risorse avviene direttamente modificando le proprietà di condivisione della risorsa
  • la gestione del sistema avviene con la logica dell’AD (Active Directory) ed è completamente integrata
  • Samba 4 supporta anche la configurazione cluster, ed il nuovo protocollo CIFS SMB2 introdotto con windows 7
  • E possibile la piena creazione di OU (Unità Amministrative) e l’impostazione di GPO (Group Policies Objects)

Lo stesso server Samba4 verrà poi 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.
Consiglio vivamente di prepararsi una buona tazza di caffè e di armarsi di pazienza e di molta attenzione, dato che un errore di battitura in qualche file di configurazione può mandare in rovina l'intero lavoro: poiché che i file da modificare saranno molti, di certo risulterebbe molto difficile e molto lungo andare a caccia di eventuali errori.

Sistema installato e prerequisiti

Il presente HOWTO è stato realizzato utilizzando un sistema Debian 7.0 Wheezy con tutti gli aggiornamenti di sicurezza ufficiali. La configurazione iniziale del sistema prevede un'installazione base Debian net install con in più:

Non proseguite senza avere questi servizi già attivi e funzionanti. Si suppone per comodità che tutti i servizi (NTP, LAMP) risiedano sullo stesso server.
Durante tutto il processo si presuppone di agire come utente root.

Parametri di rete utilizzati

In tutta la guida saranno utilizzati i seguenti parametri per la configurazione della rete:

  • Nome del server: server01
  • Nome del dominio: dominio.local
  • Nome NETBIOS del dominio: DOMINIO
  • Classe IP: 10.0.0.0 / 255.255.255.0
  • IP Server: 10.0.0.254
  • Password di root: mia_password
  • Password Administrator del dominio: mia_password
  • Password admin di LDAP: mia_password

Questi parametri vanno ovviamente adattati alle vostre esigenze.

Prerequisiti

Incominciamo sistemando l'hostname per il nostro server di dominio. Apriamo il file:

# nano /etc/hosts

e inseriamo il FQDN del server:

127.0.0.1 localhost
127.0.1.1 server01 server01.dominio.local
10.0.0.254 server01 server01.dominio.local

Allo stesso modo:

# nano /etc/hostname
server01.dominio.local 

Verifichiamo adesso la configurazione di rete del nostro server, che deve avere un indirizzo IP statico:

# nano /etc/network/interfaces
auto eth0
iface eth0 inet static
        address 10.0.0.254
        netmask 255.255.255.0
        gateway 10.0.0.1
        dns-nameserver 10.0.0.254
        dns-search dominio.local

Infine controlliamo che il file:

# nano /etc/resolv.conf

contenga solo le seguenti linee:

search dominio.local
nameserver 10.0.0.254

Installiamo infine alcuni pacchetti che ci serviranno in seguito:

# apt-get install apt-transport-https mc zip bzip2 arj

Installazione di Samba 4

L'installazione di Samba 4 va effettuata in questo momento perché insieme ai pacchetti stessi di Samba saranno installate anche alcune utility che adopereremo nei paragrafi successivi.
A causa dei bachi irrisolti contenuti nella versione di Samba presente nei repository Debian, verranno presentati due metodi alternativi per l'installazione:

  • Debian Samba: installa la versione di Samba dei repository Debian
  • SERNET Samba: installa la versione di Samba pacchettizzata dalla società SERNET, che dal 2003 pacchettizza per diverse distribuzioni una versione aggiornata, testata e completa di Samba

Nel resto della guida, ogni volta che le istruzioni differiranno a seconda del pacchetto installato, sarà specificato a quale versione farà riferimento il comando descritto.

Installazione di Debian Samba

La versione di Samba4 presente nei repository Debian Wheezy soffre di diversi bachi. Prima di installare questi pacchetti si legga il box ATTENZIONE presente all'inizio della guida, che riassume i bug ancora presenti e le probabilità di successo dell'installazione. Per questi motivi installeremo la versione presente nei repository Backports: in questi repository, così come da Jessie in avanti, è stato eliminato da Debian il pacchetto Samba3, per cui il pacchetto che fino a Wheezy si chiamava Samba4 è stato rinominato semplicemente Samba.

# apt-get install -t wheezy-backports samba samba-client samba-common-bin samba-testsuite cifs-utils winbind

Durante l'installazione di Samba vedrete che il Debian Installer provvederà autonomamente a generare e configurare un albero LDAP, utilizzando i parametri di dominio specificati nel file /etc/hostname che abbiamo modificato in precedenza.

Installazione di SERNET Samba

Se scegliete di utilizzare i pacchetti Samba pacchettizzati da Sernet, è necessario aggiungere il repository al nostro /etc/apt/sources.list

# SerNet Samba 4.1 Packages
# (debian-wheezy)
# Username e AccessKey vengono forniti dopo la registrazione gratuita
deb https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/debian wheezy main
deb-src https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/debian wheezy main

Installiamo la chiave del repository appena aggiunto:

# wget http://ftp.sernet.de/pub/sernet-samba-keyring_1.4_all.deb
# dpkg -i sernet-samba-keyring_1.4_all.deb 
# rm sernet-samba-keyring_1.4_all.deb 
# apt-get update
# apt-get upgrade

Impostiamo un pinning creando un file:

# nano /etc/apt/preferences.d/samba-sernet

di contenuto:

Package: *
Pin: origin "download.sernet.de"
Pin-Priority: 991

Quindi installiamo Samba:

# apt-get install sernet-samba-ad libwbclient0 sernet-samba-client sernet-samba-winbind sernet-samba sernet-samba-libs sernet-samba-libsmbclient0
# apt-get install acl attr quota fam libnet-ldap-perl krb5-user

Come ultimo, impostiamo la direttiva di avvio corretta nel file di configurazione principale del demone:

# nano /etc/default/sernet-samba
#SAMBA_START_MODE="none"
SAMBA_START_MODE="ad"
#SAMBA_RESTART_ON_UPDATE="no"
SAMBA_RESTART_ON_UPDATE="yes"

Durante l'installazione

Sia che abbiate scelto di installare la versione di Debian sia che abbiate scelto la versione Sernet, durante l'installazione verranno installati anche una serie di pacchetti relativi a Kerberos, poiché Samba4 utilizza di default lo stesso sistema di autenticazione cifrata utilizzato dai server di dominio Windows.
Adesso siamo pronti per installare il nostro dominio Active Directory.

Configurazione di Samba come controller di dominio

Questa fase è essenziale e avvicina Samba a Windows in fase di installazione, infatti serve a definire il REALM ed il dominio in cui andrà a servire il nostro server.
Prima di tutto effettuiamo una copia del file di configurazione originale:

# mv /etc/samba/smb.conf /etc/samba/smb.conf.original

E' importante spostare il file e non semplicemente pensare che venga sovrascritto, altrimenti il seguente comando fallirà restituendo un errore incomprensibile.
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.
Possiamo scegliere se utilizzare il server DNS interno di Samba o se utilizzare Bind configurato alla bisogna. Sebbene sia leggermente più macchinoso, consiglio di utilizzare l'accoppiata Samba + Bind, che permette più configurazioni personalizzate ed è più semplice da amministrare.

  • Debian Samba con DNS interno:
# /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
  • Debian Samba con Bind come DNS:
# /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
  • SERNET Samba con DNS interno:
# /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
  • SERNET Samba con Bind come DNS:
# /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

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.
L'opzione --dns-backend=BIND9_DLZ indica a Samba che intendiamo utilizzare come server DNS il demone Bind e non il DNS interno presente in Samba 4.
L'opzione --dns-backend=SAMBA_INTERNAL (alternativa alla precedente) indica a Samba che intendiamo utilizzare come server DNS il DNS interno presente in Samba 4.
L'opzione --function-level=2008_R2 imposta il livello di funzionalità di Active Directory a quello di Windows Server 2008 R2 (Per una descrizione dei livelli di funzionalità si veda ad esempio la Technet di Microsoft).
L'opzione --use-xattr=yes ci consente di interagire con gli attributi di un file (man xattr).

Terminate le operazioni di provisioning occorre aprire il nuovo file di configurazione di Samba:

# nano /etc/samba/smb.conf

e aggiungere le direttive:

# Se uso DNS interno
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = -s3fs +dns
allow dns updates = secure
dns recursive queries = yes
dns forwarders = 8.8.8.8

# Se uso DNS Bind
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = -s3fs -dns

In mancanza di questa direttiva ogni tentativo di connessione al nostro server terminerebbe con un laconico messaggio di errore:

Connection to localhost failed (Error NT_STATUS_CONNECTION_REFUSED)

Aggiungiamo una direttiva per correggere un baco nell'avvio di Samba:

        dcerpc endpoint servers = +winreg +srvsvc
	interfaces = 10.0.0.254
	#bind interfaces only = yes

Possiamo aggiungere anche le direttive:

# Imposto una shell per gli utenti di dominio
template shell = /usr/sbin/nologin
# Scrivo un file di log dedicato al dominio
log file = /var/log/samba/dominio.log
syslog = 0
log level = 3 passdb:0 auth:0 winbind:0 vfs:0
vfs objects = full_audit

e

# Imposto la root dove verranno create le
# Home directory degli utenti di dominio
template homedir = /home/%ACCOUNTNAME%


In caso vogliate ripetere l'operazione di provisioning, occorrerà prima rimuovere il vecchio file di configurazione di Samba:

mv /etc/samba/smb.conf /etc/samba/smb.conf.original2

In caso avessimo una configurazione di Samba 4 che utilizza il DNS interno e volessimo switchare su Bind è sufficiente dare il comando:

# samba_upgradedns --dns-backend=BIND9_DLZ

e ricordarsi di verificare che in smb.conf sia presente la direttiva:

server services = ........ -dns

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 lo stesso nome di un dominio DNS.
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.
E’ necessario in un'organizzazione, far coincidere il nome del realm con il dominio DNS (in maiuscolo). E’ importante seguire questi consigli nel momento in cui si deve scegliere il nome del proprio realm, per semplificare la configurazione dei client Kerberos.

OPZIONALE - Configurazione del DNS Server BIND

Samba4, così come Microsoft Active Directory, dipende fortemente da un servizio DNS correttamente configurato e funzionante all'interno della rete LAN.
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.
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:

# apt-get install bind9 dnsutils

Abbiamo Bind funzionante, ma la sua configurazione va modificata secondo le indicazioni del file /var/lib/samba/private/named.txt. Quindi apriamo il file di configurazione:

# nano /etc/bind/named.conf.local

e aggiungiamo alla fine del file la seguente sezione:

include "/var/lib/samba/private/named.conf";

Occorre modificare il file /var/lib/samba/private/named.conf 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:

nano /var/lib/samba/private/named.conf
# 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";

Poi aggiungiamo le seguenti righe al file /etc/bind/named.conf.options appena sotto alla definizione dei forwarders:

# nano /etc/bind/named.conf.options
        // Abilito l'autenticazione Samba
        tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";

e, sempre nello stesso file, modifichiamo la voce:

#auth-nxdomain no
auth-nxdomain yes

e la sezione

        # allow-query { 127.0.0.1; 10.0.0.0/24; } ;
        # allow-transfer { none; } ;
        # allow-recursion { 127.0.0.1; 10.0.0.0/24; } ;

        allow-query { 127.0.0.1; 10.0.0.0/24; } ;
        allow-transfer { none; } ;
        notify no;
        empty-zones-enable no;
        allow-recursion { 127.0.0.1; 10.0.0.0/24; } ;

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:

forwarders {
208.67.222.222;
208.67.220.220;
};

Quindi impostiamo i permessi corretti per la chiave di autenticazione Samba:

# chown -R root:bind /var/lib/samba/private/
# chmod -R 774 /var/lib/samba/private/
# chmod -R 700 /var/lib/samba/private/smbd.tmp/msg

Di default, Bind registra i suoi log tramite Syslog, e quindi nel file /var/log/syslog. Potrebbe però essere conveniente spostare i log del nostro DNS in un file separato.
Per raggiungere lo scopo, è sufficiente modificare il file:

# nano /etc/bind/named.conf.options

aggiungendo la sezione:

logging {
  channel simple_log {
    file "/var/log/bind.log" versions 3 size 5m;
    severity warning;
    print-time yes;
    print-severity yes;
    print-category yes;
  };
  category default{
    simple_log;
  };
};

Creiamo il file di log e impostiamo i permessi corretti:

# touch /var/log/bind.log
# chown bind:adm /var/log/bind.log

Per consentire all’accoppiata Samba/Kerberos di effettuare gli aggiornamenti automatici del nostro DNS, occorre aggiungere le seguenti direttive al file di default:

# nano /etc/default/bind9
KEYTAB_FILE="/var/lib/samba/private/dns.keytab" 
KRB5_KTNAME="/var/lib/samba/private/dns.keytab" 
export KEYTAB_FILE 
export KRB5_KTNAME 

Infine riavviamo Bind:

# /etc/init.d/bind9 restart

Per effettuare una verifica del funzionamento dell’update dinamico possiamo utilizzare il comando:

# samba_dnsupdate --verbose

SELinux

Se per caso abbiamo configurato anche SELinux, occorre informarlo dei cambiamenti:

# chcon -t named_conf_t /var/lib/samba/private/dns.keytab

AppArmour

Se per caso abbiamo configurato AppArmour, occorre informarlo dei cambiamenti:

# nano /etc/apparmor.d/usr.sbin.named

aggiungendo le direttive:

/var/lib/samba/private/** rkw,
/var/lib/samba/private/dns/** rkw,
/usr/lib/x86_64-linux-gnu/samba/bind9/** rm,
/usr/lib/x86_64-linux-gnu/samba/gensec/** rm,
/usr/lib/x86_64-linux-gnu/ldb/modules/ldb/** rm,
/usr/lib/x86_64-linux-gnu/samba/ldb/** rm,

Quindi riavviamo AppArmour:

/etc/init.d/apparmor reload

Riavvio

Infine riavviamo Samba4 con:

  • Debian Samba:
/etc/init.d/samba restart
  • SERNET Samba:
# /etc/init.d/sernet-samba-ad restart

Test della configurazione DNS

Prima di procedere effettuiamo un veloce test della nostra configurazione DNS:

# host -t SRV _ldap._tcp.dominio.local.
_ldap._tcp.dominio.local has SRV record 0 100 389 server01.dominio.local.

# host -t SRV _kerberos._tcp.dominio.local.
_kerberos._tcp.dominio.local has SRV record 0 100 88 server01.dominio.local.

# host -t A server01.dominio.local.
server01.dominio.local has address 10.0.0.254

Kerberos

L'installazione di un client Kerberos è di per se semplice:

# aptitude install krb5-user

Quando ci viene richiesto, inseriamo il nostro REALM e il nome HOST.
Quindi backuppiamo il file di configurazione:

# cp /etc/krb5.conf /etc/krb5.conf.original

e utilizziamo quello già creato automaticamente da Samba:

# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

modificandolo così:

# nano /etc/krb5.conf
[libdefaults]
        default_realm = DOMINIO.LOCAL
        dns_lookup_realm = true
        dns_lookup_kdc = true

Testiamo il funzionamento di Kerberos:

# kinit administrator@DOMINIO.LOCAL

Se il comando precedente ha avuto esito positivo, con il comando:

# klist -e

possiamo vedere il ticket Kerberos che ci è stato assegnato.

Riavvio

Infine riavviamo Samba4 con:

  • Debian Samba:
/etc/init.d/samba restart
  • SERNET Samba:
# /etc/init.d/sernet-samba-ad restart

Test di configurazione

Testiamo la configurazione:

# smbclient --version
# smbclient -L localhost -U%

Il risultato dovrebbe essere:

Domain=[DOMINIO] OS=[Unix] Server=[Samba 4.0.0beta2]
     Sharename       Type       Comment
     ---------       ----       -------
     netlogon        Disk
     sysvol          Disk
     IPC$            IPC        IPC Service
# samba-tool ntacl sysvolreset
# samba-tool ntacl sysvolcheck
# smbclient //localhost/netlogon -UAdministrator%"your_password" -c 'ls'

Il risultato dovrebbe essere:

Domain=[DOMINIO] OS=[Unix] Server=[Samba 4.0.5]  
.                                   D        0  Fri May 17 21:40:08 2013   
..                                  D        0  Fri May 17 21:42:36 2013

Samba 4 e xattr

Per utilizzare le funzioni avanzate di Samba4 è necessario che il filesystem supporti le estensioni di xattr. Queste estensioni permettono la gestione delle funzioni e delle opzioni avanzate del nostro filesystem. La direttiva va caricata nel file fstab come opzione della partizione che vogliamo gestire con samba o per tutto il filesystem a seconda della nostra configurazione:

# nano /etc/fstab
# / was on /dev/sda1 during installation 
UUID=a416ec5c-baff-48fb-9ab7-e6ddfd06f520 / ext4 user_xattr,errors=remount-ro 0 1 

Per verificare l’effettivo supporto del nostro sistema e del nostro filesystem possiamo utilizzare il pacchetto attr ed i seguenti comandi:

# apt-get install attr 
# touch test.txt 
# setfattr -n user.test -v test test.txt 
# setfattr -n security.test -v test2 test.txt 

Per verificare la corretta risposta del filesystem:

# getfattr -d test.txt 
# file: test.txt 
user.test="test" 
# getfattr -n security.test -d test.txt 
# file: test.txt 
security.test="test2" 

Amministrazione di Samba

Strumenti di amministrazione di Windows

Per amministrare Samba e i suoi servizi possiamo utilizzare gli strumenti di amministrazione che Microsoft ci mette a disposizione.
Scarichiamo la versione adatta al nostro sistema operativo client:

Dopo l'installazione ricordiamoci di abilitare la funzionalità da: Pannello di Controllo - Installazione Programmi - Abilità funzionalità.
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 amministrazione da shell

Gestione DNS

Aggiungere un record # samba-tool dns add server zone name A|AAAA|PTR|CNAME|NS|MX|SRV|TXT data
Cancellare un record # samba-tool dns delete server zone name A|AAAA|PTR|CNAME|NS|MX|SRV|TXT data
Interrogare un record # samba-tool dns query server zone name A|AAAA|PTR|CNAME|NS|MX|SRV|TXT|ALL [options] data
Chiedere informazioni sul server # samba-tool dns serverinfo server
Aggiornare un record # samba-tool dns update server zone name A|AAAA|PTR|CNAME|NS|MX|SRV|TXT olddata newdata
Creare una zona # samba-tool dns zonecreate server zone
Eliminare una zona # samba-tool dns zonedelete server zone
Informazioni su una zona # samba-tool dns zoneinfo server zone
Elencare le zone # samba-tool dns zonelist server

Gestione utenti

Aggiungere un utente # samba-tool user create USERNAME
Cancellare un utente # samba-tool user delete username
Disabilitare un utente # samba-tool user disable username
Abilitare un utente # samba-tool user enable username
Elencare gli utenti # samba-tool user list
Modificare la password di un utente # samba-tool user setpassword username
Impostare la scadenza di un utente # samba-tool user setexpiry username

Gestione Gruppi

Aggiungere un gruppo # samba-tool group add groupname
Aggiungere utenti a un gruppo # samba-tool group addmembers groupname members
Cancellare un gruppo # samba-tool group delete groupname
Elencare i gruppi # samba-tool group list
Elencare i membri di un gruppo # samba-tool group listmembers groupname
Cancellare utenti da un gruppo # samba-tool group removemembers groupname members

Gestione Password

Abbassare la complessità delle password # samba-tool domain passwordsettings set --complexity=off
Modificare la lunghezza minima consentita per le password # samba-tool domain passwordsettings set --min-pwd-length=1


Per un elenco completo dei comandi disponibili si consultino le Man pages di Samba4.

ATTENZIONE

  • Samba4 è case sensitive: l'utente amministratore è administrator, con la "A" minuscola
  • Il dominio va sempre specificato per esteso: DOMINIO.LOCAL

Creare delle condivisioni di rete

Per creare delle condivisioni di rete basta semplicemente aggiungere al file /etc/samba/smb.conf delle sezioni come la seguente:

# mkdir /dati/condivisione
# chmod 770 /dati/condivisione
[condivisione]
     comment = Condivisione cani e porci
     path = /dati/condivisione
     read only = No
     directory mask = 0770
     create mask = 0770

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

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.
A tal fine il primo accesso può essere fatto dal server stesso con il comando:

# smbclient -L localhost -U Administrator

Dovrebbe essere richiesta la password impostata precedentemente per l'utente Administrator e, di seguito, dovrebbero venire elencate le condivisioni samba impostate sul server.

La procedura di connessione dei client al dominio varia a seconda del sistema operativo utilizzato sulle macchine client:

  • Windows 95/98/ME
  1. Non più supportato
  • Windows NT
  1. Non più supportato
  • Windows 2000
  1. 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
  1. 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
  1. Non ancora testato.
  • Windows 7
  1. 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

Arrivati a questo possiamo:

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.
E' sufficiente seguire questa guida: Installare un ambiente Groupware integrato in Samba4

Bibliografia




Guida scritta da: Ferdybassi Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
Turcs 14:54, 02 feb 2016 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized