Nel nostro precedente tutorial, abbiamo visto come configurare un server Samba autonomo. Questo tutorial descrive come configurare Samba come Primary Domain Controller in CentOS 7. Questa configurazione è stata testata in CentOS 7 Server minimal, gli stessi passi dovrebbero funzionare su RHEL 7.
Scenario
Userò due sistemi come indicato di seguito per lo scopo di questo articolo.
Samba PDC:
- OS: CentOS 7 Minimal server
- Hostname: server.gidalo.local
- IP Address: 192.168.1.250/24
- Samba Domain: GIDALO
Client:
- OS: Windows 10 Pro 64 bit
- Hostname: DESKTOP-DDSEBJL
- IP Address: 192.168.1.10/24
Bene, ora cerchiamo di immergerci nella configurazione di Samba PDC.
Installazione
Eseguire il seguente comando per installare i pacchetti samba.
yum install samba* -y
Per verificare la versione di Samba, digitare i seguenti comandi:
smbd -V
smbclient -V
L’ output sarà come di seguito:
Version 4.1.1
Configurazione Samba
Modificare il file di configurazione di default di samba;
vi /etc/samba/smb.conf
Trova le seguenti righe, e apportare le modifiche come mostrato di seguito. Sostituire GIDALO con il proprio nome di dominio.
[Global] workgroup = GIDALO security = user domain master = yes domain logons = yes local master = yes preferred master = yes passdb backend = tdbsam logon path = \\%L\Profiles\%U logon script = logon.bat add machine script = /usr/sbin/useradd -d /dev/null -g 200 -s /sbin/nologin -M %u server max protocol = NT1 [homes] comment = Home Directories browseable = yes writable = yes [printers] comment = All Printers path = /var/spool/samba printable = Yes print ok = Yes browseable = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon browseable = No writable = No [Profiles] path = /var/lib/samba/profiles create mask = 0755 directory mask = 0755 writable = Yes
Per fare questo molto semplice, spostare il file smb.conf vecchio in una posizione sicura.
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Creare un nuovo file smb.conf sotto la directory /etc/samba/ ;
vi /etc/samba/smb.conf
e copia/incolla le righe precedenti. Non dimenticare di cambiare il nome di dominio con il proprio.
Salvare e chiudere il file.
Siamo in grado di testare gli errori di sintassi di configurazione del server Samba utilizzando il comando ‘testparm’.
testparm
L’output potrebbe essere simile di seguito.
Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[netlogon]" Processing section "[Profiles]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions [global] workgroup = GIDALO security = USER server max protocol = NT1 add machine script = /usr/sbin/useradd -d /dev/null -g 200 -s /sbin/nologin -M %u logon script = logon.bat logon path = \\%L\Profiles\%U domain logons = Yes preferred master = Yes domain master = Yes idmap config * : backend = tdb [homes] comment = Home Directories read only = No [printers] comment = All Printers path = /var/spool/samba printable = Yes print ok = Yes browseable = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon browseable = No [Profiles] path = /var/lib/samba/profiles read only = No create mask = 0755
Creare le condivisioni con autorizzazioni appropriate che abbiamo citato nel file smb.conf
mkdir -m 1777 /var/lib/samba/netlogon mkdir -m 1777 /var/lib/samba/profiles
useradd bianchi useradd rossi
Create Machine accounts:
È necessario creare account computer per ogni macchina in modo da consentire l’accesso al dominio da macchine Windows. L’account del computer sono account speciali con $ alla fine, vale a dire la macchina$. Gli account di sistema per le macchine non hanno bisogno di shell di login né directory home.
Aggiungere un nuovo nome di gruppo “macchina” con il gruppo id “200”.
groupadd -g 200 macchina
Per aggiungere un account di computer Samba, eseguire il seguente comando:
smbpasswd -m -a macchina1$
Qui, smbpasswd -m …. – Dice a tale account verrà utilizzato come controller di dominio primario NT (account macchina).
Creare gli account utente in Samba:
smbpasswd -a root smbpasswd -a bianchi smbpasswd -a rossi
Qui, ‘root’ è l’utente amministratore che può essere utilizzato per unire sistemi Windows NT/2000/XP/7/8.1/10 a far parte del dominio. In questo caso, non diamo a smbpasswd la stessa password dell’account root reale del server. Creare una password diversa da utilizzare esclusivamente per la creazione di account computer. Questo riduce la possibilità di compromettere la password di root di accesso al server.
Avviamo i servizi di Samba:
Avviare i servizi di samba, e permettere loro di avviarsi automaticamente ad ogni riavvio.
systemctl start smb systemctl start nmb systemctl enable smb systemctl enable nmb
Configurazione del Firewall:
Samba utilizza le seguenti porte quando viene eseguito come controller di dominio Active Directory:
Service | Port | protocol |
---|---|---|
DNS | 53 | tcp/udp |
Kerberos | 88 | tcp/udp |
End Point Mapper (DCE/RPC Locator Service) | 135 | tcp |
NetBIOS Name Service | 137 | udp |
NetBIOS Datagram | 138 | udp |
NetBIOS Session | 139 | tcp |
LDAP | 389 | tcp/udp |
SMB over TCP | 445 | tcp |
Kerberos kpasswd | 464 | tcp/udp |
LDAPS (only if “tls enabled = yes”) | 636 | tcp |
Dynamic RPC Ports* | 1024-5000 | tcp |
Global Cataloge | 3268 | tcp |
Global Cataloge SSL (only if “tls enabled = yes”) | 3269 | tcp |
Multicast DNS | 5353 | tcp/udp |
Eseguire i seguenti comandi uno per uno per permettere al firewall di far passare i dati alle porte utilizzate in Samba (Vedi come installare e attivare il firewall)
firewall-cmd --permanent --add-port=53/tcp firewall-cmd --permanent --add-port=53/udp firewall-cmd --permanent --add-port=88/tcp firewall-cmd --permanent --add-port=88/udp firewall-cmd --permanent --add-port=135/tcp firewall-cmd --permanent --add-port=137/tcp firewall-cmd --permanent --add-port=137/udp firewall-cmd --permanent --add-port=138/udp firewall-cmd --permanent --add-port=139/tcp firewall-cmd --permanent --add-port=389/tcp firewall-cmd --permanent --add-port=389/udp firewall-cmd --permanent --add-port=445/tcp firewall-cmd --permanent --add-port=464/tcp firewall-cmd --permanent --add-port=464/udp firewall-cmd --permanent --add-port=636/tcp firewall-cmd --permanent --add-port=1024-5000/tcp firewall-cmd --permanent --add-port=1024-5000/udp firewall-cmd --permanent --add-port=3268/tcp firewall-cmd --permanent --add-port=3269/tcp firewall-cmd --permanent --add-port=5353/tcp firewall-cmd --permanent --add-port=5353/udp
Infine riavviare il servizio firewall.
firewall-cmd --reload
Configurazione SELinux:
Applicare le appropriate politiche di SELinux al controller di dominio Samba.
setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on
Anche per le condivisioni Samba che abbiamo definito nel file smb.conf.
chcon -t samba_share_t /var/lib/samba/netlogon chcon -t samba_share_t /var/lib/samba/profiles
Se non si vuole utilizzare SELinux, possiamo semplicemente disabilitarlo. Riavviare il server una volta aver completato tutti i passaggi.
Collegare i Clients Windows a Samba PDC
Ora provate a collegare un client Windows OS al dominio Samba utilizzando l’utente appena creato.
Aprire ‘Esplora File (File Explorer)’ fare clic destro su ‘Questo PC (This PC)’, andare a Proprietà -> Impostazioni di sistema avanzate (Properties ->Advanced system settings).
Nella scheda Nome computer (Computer Name), fare clic sul pulsante Cambia (Change).
Nel campo Dominio(Domain), immettere il nome di dominio. Nel mio caso, è gidalo.
Inserire l’amministratore di Samba, che nel nostro caso è ‘root’, ed la password. Non la password dell’utente root vero e proprio. Inserire la password di root che abbiamo creato in precedenza con il comando smbpasswd.
È possibile ottenere un errore del tipo come illustrato di seguito.
"The specified domain either does not exist or could not be contacted"
Possiamo facilmente correggere questo errore aggiungendo 2 key nel registro di sistema ( come descritto nel seguente link microsoft).
Per sbarazzarsi di questo errore, aprire il registro di Windows. Andare su HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> LanmanWorkstation -> Parameters.
Creare due nuovi valori DWORD32 denominato
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters DWORD DomainCompatibilityMode 1 DWORD DNSNameResolutionRequired 0
Ora, sarete in grado di unire il vostro client di Windows a dominio.
Fare clic su OK per continuare.
Oops! Anche in questo caso errore !!
Changing the Primary Domain DNS name of this computer to "" failed. The name will remain "GIDALO". The error was: specified domain either does not exist or could not be contacted
È sufficiente fare clic su OK per ignorare questo messaggio. Non riavviare.
Per eliminare questo errore è sufficiente apportare la modifica alla scheda di rete e abilitare
Protocollo Internet Versione 4 (TCP/IPv4) -> Generale -> Avanzate -> WINS -> e Abilita NetBIOS su TCP/IP e confermare su OK.
(Internet Protocol Version 4 (TCP/IPv4) ) -> General -> Advanced -> WINS -> and Enable NetBios over TCP/IP and confirm OK.
Dopo aver applicato la modifica, riavviare la macchina con Windows 10 Pro a 64 Bit e ora sarà in grado di accedere al dominio Samba.
Selezionare in basso a sinistra, Altro utente (Other user).
Inserire il nome utente e la password. Ricordo che già abbiamo creato due utenti cioè Bianchi e Rossi nei nostri passaggi precedenti.
Questo è tutto. Il nuovo utente sarà in grado ora di accedere al dominio.
Da notare che, un’unità di rete (Z:) verrà creata automaticamente per l’ogni utente. Gli utenti, se vogliono, possono memorizzare i propri file personali/cartelle nella cartella di rete.
È possibile accedere ai profili utente nella seguente posizione nel server Samba.
ls /var/lib/samba/profiles
Esempio di output:
bianchi.V2 rossi.V2
Visualizzare il contenuto del singolo profilo utente:
ls /var/lib/samba/profiles/bianchi.V2/
Esempio di output:
AppData Desktop Downloads Links NTUSER.DAT Pictures Searches Contacts Documents Favorites Music ntuser.ini Saved Games Videos
A questo punto si dispone di un Controller di Dominio Samba pienamente operativo su CentOS 7. Samba PDC.
Per ulteriori informazioni, consultare la documentazione ufficiale Samba.
Grazie del Vostro tempo dedicatomi ?