======Joindre un domaine en tant que Contrôleur de domaine======
====Prérequis====
Comme pour tout contrôleur de domaine, il faut :
* Une IP FIXE (ici 172.16.4.2)
* Un contrôleur de domaine a joindre (ici 192.168.4.2)
* Un nom de domaine unique (ici SAMBA)
* un domaine définit (ici domain.tld)
====Configuration DNS====
Pour pouvoir joindre un contrôleur de domaine, il faut configurer le serveur de DNS de la machine.\\
Par exemple, avec /etc/resolv.conf
search domain.tld
nameserver 192.168.4.2
====Initialisation====
Pour commencer, on va installer les packets nécessaires (ignorez les configurations demandées):
# apt install acl attr samba krb5-user krb5-config winbind
(Vous pouvez aussi [[kb:linux:samba:Installation de SAMBA par les sources|compiler depuis les sources]])
Il vous faudra commencer par arrêter et désactiver samba :
# systemctl disable --now nmbd smbd winbind
Il vous faudra supprimer la configuration de samba :
# rm /etc/samba/smb.conf
Il vous faudra configurer Kerberos ((default_realm doit être en majuscule)):
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = true
default_realm = DOMAIN.TLD
Pour vérifier que la configuration est bonne,vous pouvez lancer :
# kinit administrateur
Puis lancez //klist//, vous devriez obtenir quelque chose ressemblant a ça:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrateur@DOMAIN.TLD
Valid starting Expires Service principal
24.09.2015 19:56:55 25.09.2015 05:56:55 krbtgt/DOMAIN.TLD@DOMAIN.TLD
renew until 25.09.2015 19:56:53
====Joindre l'Active Directory en tant que Contrôleur de Domaine====
Pour joindre un AD, il faut lancer la commande :
# samba-tool domain join domain.tld DC --option='idmap_ldb:use rfc2307 = yes' -U"administrateur@domain.tld" --dns-backend=SAMBA_INTERNAL
Finding a writeable DC for domain 'domain.tld'
Found DC ad.domain.tld
Password for [DOMAIN\administrateur]:
workgroup is DOMAIN
realm is domain.tld
Adding CN=SAMBA,OU=Domain Controllers,DC=domain,DC=tld
Adding CN=SAMBA,CN=Servers,CN=SITE,CN=Sites,CN=Configuration,DC=domain,DC=tld
Adding CN=NTDS Settings,CN=SAMBA,CN=Servers,CN=SITE,CN=Sites,CN=Configuration,DC=domain,DC=tld
Adding SPNs to CN=SAMBA,OU=Domain Controllers,DC=domain,DC=tld
Setting account password for SAMBA$
Enabling account
Calling bare provision
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Provision OK for domain DN,DC=domain,DC=tld
Starting replication
Schema-DN[CN=Schema,CN=Configuration,DC=domain,DC=tld] objects[402/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=domain,DC=tld] objects[804/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=domain,DC=tld] objects[1206/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=domain,DC=tld] objects[1550/1550] linked_values[0/0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=domain,DC=tld] objects[402/1618] linked_values[0/0]
Partition[CN=Configuration,DC=domain,DC=tld] objects[804/1618] linked_values[0/0]
Partition[CN=Configuration,DC=domain,DC=tld] objects[1206/1618] linked_values[0/0]
Partition[CN=Configuration,DC=domain,DC=tld] objects[1608/1618] linked_values[0/0]
Partition[CN=Configuration,DC=domain,DC=tld] objects[1618/1618] linked_values[42/0]
Replicating critical objects from the base DN of the domain
Partition[DC=domain,DC=tld] objects[100/100] linked_values[23/0]
Partition[DC=domain,DC=tld] objects[386/286] linked_values[23/0]
Done with always replicated NC (base, config, schema)
Replicating DC=DomainDnsZones,DC=domain,DC=tld
Partition[DC=DomainDnsZones,DC=domain,DC=tld] objects[44/44] linked_values[0/0]
Replicating DC=ForestDnsZones,DC=domain,DC=tld
Partition[DC=ForestDnsZones,DC=domain,DC=tld] objects[19/19] linked_values[0/0]
Committing SAM database
Sending DsReplicaUpdateRefs for all the replicated partitions
Setting isSynchronized and dsServiceName
Setting up secrets database
Joined domain DOMAIN (SID S-1-5-21-469703510-2364959079-1506205053) as a DC
Il vous faudra ensuite démarrer SAMBA :
# systemctl unmask samba-ad-dc
puis
# systemctl enable --now samba-ad-dc
Puis vérifier que la réplication du contrôleur du domaine est faite (cela peux prendre plusieurs minutes)
# samba-tool drs showrepl
SITE\DC2
DSA Options: 0x00000001
DSA object GUID: c14a774f-9732-4ec2-b9fa-2156c95c4e48
DSA invocationId: 7bdb135c-6868-4dd9-9460-33dea4b6b87b
==== INBOUND NEIGHBORS ====
CN=Schema,CN=Configuration,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Thu Sep 24 20:08:46 2015 CEST was successful
0 consecutive failure(s).
Last success @ Thu Sep 24 20:08:46 2015 CEST
DC=DomainDnsZones,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Thu Sep 24 20:08:45 2015 CEST was successful
0 consecutive failure(s).
Last success @ Thu Sep 24 20:08:45 2015 CEST
CN=Configuration,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Thu Sep 24 20:08:46 2015 CEST was successful
0 consecutive failure(s).
Last success @ Thu Sep 24 20:08:46 2015 CEST
DC=ForestDnsZones,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Thu Sep 24 20:08:45 2015 CEST was successful
0 consecutive failure(s).
Last success @ Thu Sep 24 20:08:45 2015 CEST
DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Thu Sep 24 20:08:45 2015 CEST was successful
0 consecutive failure(s).
Last success @ Thu Sep 24 20:08:45 2015 CEST
==== OUTBOUND NEIGHBORS ====
CN=Schema,CN=Configuration,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=DomainDnsZones,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
CN=Configuration,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=ForestDnsZones,DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=domain,DC=tld
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
==== KCC CONNECTION OBJECTS ====
Connection --
Connection name: fb03f58b-1654-4a02-8e11-f0ea120b60cc
Enabled : TRUE
Server DNS name : DC1.samdom.example.com
Server DN name : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=tld
TransportType: RPC
options: 0x00000001
Warning: No NC replicated for Connection!
==Modification DNS==
Il faut modifier le DNS de la machine dans /etc/resolv.conf
search projet2.local
nameserver 172.16.4.2
nameserver 192.168.4.2 # IP de l'AD joint
et aussi dans le fichier /etc/samba/smb.conf dans la section global
dns forwarder = 8.8.8.8 # Évitez de mettre l'IP de L'AD joint
==Test du Contrôleur de Domaine==
Il faut d’abord vérifier si la réplication entre les deux contrôleur de domaine ce fait, en créant un utilisateur, et en vérifiant que l'utilisateur a été créer. Voir commande //samba-tool user//
Attention, il y a un certain délai entre les réplications :
SAMBA ----> SAMBA = 15 secondes
SAMBA ----> AD = 15 minutes
AD ----> SAMBA = 30 secondes
AD ----> AD = 30 secondes
La difference s’explique dans le mode de fonctionnement de la réplication qui est différent dans SAMBA. En gros, SAMBA ne sait pas communiquer les modifications aux Windows Server, donc c'est celui-ci qui periodiquement (maximum 4 fois par heure) va chercher les information sur le Contrôleur de domaine SAMBA. Cela devrait ce régler sous peu.\\
A noté qu'il existe une commande pour lancer la réplication de force.
Il faut ensuite connecter un Poste Windows au domaine, comme pour joindre un Domaine Active Directory. \\
Un fois connecter on vérifier sur quel contrôleur de domaine il est connecter avec la commande Powershell :
PS C:\> echo $env:LOGONSERVER
\\DC1