Configurer Samba en contrôleur de domaine (PDC)

malekalmorte

Date création :

8 janvier 2023

Dernière modification :

Samba version 4.0 (publiée en 2012) est capable de servir de contrôleur de domaine (DC) Active Directory (AD).
Samba peut fonctionner à un niveau fonctionnel de forêt de Windows Server 2008 R2, ce qui est plus que suffisant pour gérer des entreprises sophistiquées qui utilisent Windows 10/11 avec des exigences de conformité strictes.

La solution de Microsoft n’est donc pas le seul moyen d’y parvenir ; le logiciel libre Samba permet de déployer un contrôleur de domaine Active Directory (PDC).
Avec ce contrôleur, vous pouvez alors créer des utilisateurs, et même définir des politiques.

Dans ce tutoriel, nous allons déployer l’AD Samba sur une instance du serveur Ubuntu 20.04 ou Debian.

Configurer Samba en contrôleur de domaine (PDC)

Introduction

Samba en tant que DC AD supporte :

  • Le serveur LDAP intégré comme back end AD
  • Le Centre de Distribution de Clés (KDC) Kerberos de Heimdal
  • Samba fournit un support expérimental pour le MIT Kerberos KDC fourni par votre système d’exploitation si vous exécutez Samba 4.7 ou plus
  • Hébergement et administration d’objets de stratégie de groupe à utiliser pour la gestion de flotte d’entreprise

Côté DNS, Samba fournit un support pour une gestion DNS (SAMBA_INTERNAL).
Il supporte aussi l’utilisation du serveur DNS BIND comme back end DNS sur un contrôleur de domaine (DC) Samba Active Directory (AD).
Le back-end BIND9_DLZ est recommandé pour les configurations DNS complexes que le serveur DNS interne de Samba ne prend pas en charge.

Dans ce tutoriel, la configuration du PDC et domaine sera la suivante :

  • Le nom du domaine (REALM) : MAKDOMAINE.LOCAL
  • Le nom du domaine (WORKGROUP) : MAKDOMAINE
  • Le nom du PDC sera : dc1.makdomaine.local
  • L’adresse IP : 10.0.0.254
  • La résolution DNS sera interne : SAMBA_INTERNAL

Configurer Samba en contrôleur de domaine

Configurer le nom d’hôte

sudo hostnamectl set-hostname dc1
  • Facultatif, vous pouvez aussi éditer le fichier HOSTS afin d’ajouter le nom d’hôte dc1 mais bind9 doit déjà faire le boulot
sudo vim /etc/hosts
10.0.0.254	dc1 dc1.makdomaine.local

Installer Samba

Installez Samba avec APT :

sudo apt install samba smbclient winbind libpam-winbind libnss-winbind krb5-kdc libpam-krb5 -y

Au cours de l’installation, il vous sera demandé de saisir le royaume Kerberos version 5 par défaut. Ne tenez pas compte de cette demande (et des erreurs qui s’ensuivent), car nous la configurerons plus tard. Une fois le logiciel installé, vous êtes prêt à configurer votre contrôleur de domaine (DC).

Configurer Samba en contrôleur de domaine (PDC)

Comment configurer Samba comme contrôleur AD

Puis on déplace les fichiers de configuration par défaut afin de les recréer :

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
Configurer Samba en contrôleur de domaine (PDC)
sudo samba-tool domain provision --use-rfc2307 --interactive

La commande devrait reprendre le REALM et le domaine par défaut du fichier de votre hôte, alors acceptez les valeurs par défaut. Vous voudrez accepter les valeurs par défaut pour les deux questions suivantes (Rôle du serveur, DNS Backend).
Lorsque vous atteignez l’adresse IP du transitaire DNS, utilisez un service DNS auquel vous faites confiance, comme Cloudflare, FAI ou Google. Enfin, il vous sera demandé de créer un mot de passe pour l’utilisateur Administrateur. Assurez-vous que ce mot de passe est fort et unique.

Configurer Samba en contrôleur de domaine (PDC)

Si vous ne voulez pas utiliser le mode interactif, inspirez-vous de cette commande :

samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=MAKDOMAINE.LOCAL --domain=MAKDOMAINE --adminpass=Passw0rd

Cela doit créer une entrée [global] dans /etc/samba/smb.conf avec la configuration suivante :

[global]
	netbios name = DC1
	realm = MAKDOMAINE.LOCAL

        workgroup = MAKDOMAINE
        dns forwarder = 1.1.1.1
	server role = active directory domain controller
	server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
	idmap_ldb:use rfc2307 = yes

L’étape suivante consiste à copier le fichier de configuration Kerberos avec la commande :

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

Dernière configuration

Configurer les serveurs Samba pour qu’il se lance au démarrage du système via systemctl.

sudo systemctl mask smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
sudo systemctl stop smbd nmbd winbind
sudo systemctl unmask samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl enable samba-ad-dc
Configurer Samba en contrôleur de domaine (PDC)

Editez le fichier /etc/resolv.conf pour modifier le serveur DNS avec l’adresse IP du PDC et ajoutez la directive search

nameserver 10.0.0.254
search MAKDOMAINE

Eventuellement désactiver systemd-resolved :

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

Enfin redémarrez le serveur :

sudo reboot

Tester et vérifier la configuration samba

Ensuite vérifiez que la résolution DNS fonctionne.

L’enregistrement SRV _ldap basé sur tcp dans le domaine :

host -t SRV _ldap._tcp.makdomaine.local.

L’enregistrement de ressource SRV _kerberos basé sur udp dans le domaine :

host -t SRV _kerberos._udp.makdomaine.local.

L’enregistrement A du contrôleur de domaine :

host -t A dc1.makdomaine.local.
Tester et vérifier la configuration du contrôleur de domaine samba (PDC)

Lister des tickets Kerberos mis en cache :

klist
Tester et vérifier la configuration du contrôleur de domaine samba (PDC)

Créer le compte administrateur du domaine

Une fois que le domaine Windows et le contrôleur de domaine Samba sont en place, vous pouvez créer le mot de passe du compte administrator.
Pour cela, utilisez la commande suivante :

kinit Administrator

Puis testez que vous pouvez vous connecter avec le compte administrator :

smbclient //localhost/netlogon -UAdministrator -c 'ls'
Créer le compte administrateur du domaine sur Samba

Voici la procédure pour créer un nouvel utilisateur dans le domaine Windows Samba.
Passez la commande suivante pour créer l’utilisateur mak :

sudo smbpasswd -a mak

Puis pour activer l’utilisateur :

sudo smbpasswd -e mak

Enfin pour accorder à l’utilisateur le droit de se connecter au PDC :

sudo net rpc rights grant "MAKDOMAINE" SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege -U Administrator
sudo net groupmap add ntgroup="Administrator" unixgroup=root rid=512 type=d
Créer le compte administrateur du domaine sur Samba

Comment joindre le domaine Samba

Voici comment faire joindre un PC en Windows 10 ou Windows 11 le domaine Active Directory avec Samba en tant que contrôleur de domaine.

  • Configurez le DNS de Windows avec l’adresse du contrôle de domaine Samba. Au besoin, aidez vous de ce tutoriel : Comment changer les DNS de Windows
  • Puis allez dans les propriétés systèmes et Modifier
  • Dans domaine, saisissez le nom du domaine
  • Identifiez-vous avec le compte administrator ou tout autre compte qui l’est
Comment faire joindre un PC en Windows 10 ou Windows 11 le domaine Active Directory avec Samba en tant que contrôleur de domaine.
  • Au bout de quelques secondes, le PC joint le domaine
  • Puis un redémarrage est nécessaire
Comment faire joindre un PC en Windows 10 ou Windows 11 le domaine Active Directory avec Samba en tant que contrôleur de domaine.
  • Enfin identifiez vous avec un compte du domaine
Comment faire joindre un PC en Windows 10 ou Windows 11 le domaine Active Directory avec Samba en tant que contrôleur de domaine.

A propros de malekalmorte

malekal-site-logo-150

Passionné par l'informatique depuis très jeune, j'aide les internautes sur les forums depuis 2005 pour résoudre leurs tracas informatiques.
Je vous propose par la même occasion ce site avec de nombreux tutoriels pour vous aider aussi à résoudre de manière autonome les problèmes informatiques du quotidien.