Configurazione di Samba come Primary Domain Controller su CentOS 7

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
Ora, creare gli utenti a cui si desidera accedere al dominio.
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).

AdvanceSystemSettings

Nella scheda Nome computer (Computer Name), fare clic sul pulsante Cambia (Change).

ComputerName

Nel campo Dominio(Domain), immettere il nome di dominio. Nel mio caso, è gidalo.

JoinInToDomain

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.

JoinDomainAdmPwd

È possibile ottenere un errore del tipo come illustrato di seguito.

"The specified domain either does not exist or could not be contacted" 

ErrorJoinInToDomain

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

Win10Pro64_Regedit_fix_LanmanWorkstationDWord32Add

Ora, sarete in grado di unire il vostro client di Windows a dominio.

JoinInToDomain

JoinDomainAdmPwd

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

Primary_Domain_DNS_name_ErrorÈ 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.

HotFixChangingthePrimaryDomainDNS

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).

DomainLoginBianchi

 

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.

bianchi-FileExplorer

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:

centos_profiles_users

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 ?


 

Loading