Samba e OpenLDAP: creare un controller di dominio Active Directory con Debian Wheezy: differenze tra le versioni
Riga 186: | Riga 186: | ||
IPC$ IPC IPC Service | IPC$ IPC IPC Service | ||
</pre> | </pre> | ||
< | <pre> | ||
# smbclient //localhost/netlogon -UAdministrator%"your_password" -c 'ls' | # smbclient //localhost/netlogon -UAdministrator%"your_password" -c 'ls' | ||
</pre> | </pre> |
Versione delle 15:13, 17 ago 2013
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
|
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 7 "wheezy" |
Un attimo, please!
La guida è in stato di stub. Non avete visto che manca ancora un casino di roba? Prima di segnalare errori vi prego di aspettare che sia terminata. --Ferdybassi 22:37, 5 set 2012 (CEST)
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:
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ù:
- una scheda di rete collegata alla LAN e configurata con un indirizzamento IP fisso, come descritto ad esempio in questa guida: Come impostare indirizzi IP fissi su Debian
- un sistema LAMP come descritto ad esempio in questa guida: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
- un server DNS, come descritto ad esempio in questa guida: Un server DNS e DHCP su Debian
- un server NTP, come descritto ad esempio nel secondo metodo di questa guida: Impostare e modificare data e ora
Non proseguite senza avere questi servizi già attivi e funzionanti.
Si suppone per comodità che tutti i servizi (LDAP, LAMP, DNS) 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
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.
# apt-get install samba4 samba4-clients samba4-common-bin samba4-testsuite resolvconf cifs-utils winbind4
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.
Durante l'installazione di Samba4 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.
Verificate l'output dell'installer; ci troverete:
See /var/lib/samba/private/named.conf for an example configuration include file for BIND and /var/lib/samba/private/named.txt for further documentation required for secure DNS updates Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use
segno che dobbiamo fare ancora qualcosa...
Poco più sotto troverete anche un riassunto della configurazione effettuata automaticamente:
Admin password: 5JLd_,7tvwP;z&)d5<$+ Server Role: active directory domain controller Hostname: server01 NetBIOS Domain: WORKGROUP DNS Domain: dominio.local DOMAIN SID: S-1-5-21-2167877427-1748325126-3135181334
Come potete vedere, ci sono delle cose da correggere.
Questi errori sono però irrilevanti, quindi dobbiamo informare dpkg e aptitude che l'installazione si è conclusa regolarmente:
# nano /var/lib/dpkg/status
Cerchiamo la riga:
“Package: samba4″
e sostituiamo half-configured con 'installed.
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
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:
# /usr/share/samba/setup/provision --realm=dominio.local --domain=DOMINIO --adminpass='mia_password' --server-role=dc
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.
Terminate le operazioni di provisioning occorre aprire il nuovo file di configurazione di Samba:
# nano /etc/samba/smb.conf
e aggiungere la direttiva:
server services = +smb -s3fs
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)
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.
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.
Riavvio e test
Infine riavviamo Samba4 con:
/etc/init.d/samba4 restart
e testiamo la configurazione:
# 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
# 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
Configurazione del DNS Server BIND
Samba4, così come Microsoft Active Directory, dipende fortemente daun servizio DNS correttamente configurato e funzionante all'interno della rete LAN.
Incominciamo modificando la configurazione di Bind, secondo le indicazioni del file /var/lib/samba/private/named.txt
:
# nano /etc/bind/named.conf.local
e aggiungendo alla fine del file la seguente sezione:
include "/var/lib/samba/private/named.conf";
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";
Quindi impostiamo i permessi corretti per la chiave di autenticazione Samba:
# chgrp bind /var/lib/samba/private/dns.keytab # chmod g+r /var/lib/samba/private/dns.keytab # chmod 664 /etc/bind/rndc.key
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 named:adm /var/log/bind.log
Infine riavviamo Bind:
# /etc/init.d/bind9 restart
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
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.10
Guida scritta da: Ferdybassi | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |