Sommaire
Présentation

Dans ce tutoriel, nous allons créer un Contrôleur de Domaine Active Directory sous Linux.
Pour cela, nous installerons Samba AD DC dans un container Docker.
Nous verrons également comment intégrer des machines à ce domaine.
Ce tutoriel a été prévu pour Debian 13 et Ubuntu Server 26.04.
Dans ce tutoriel, Samba 4 est installé sur un serveur virtuel dédié en utilisant une image Docker.
1) Préparation de l’environnement
Avant d’installer Samba AD DC, il faut s’assurer que le système est correctement configuré.
1.1) Configuration de l’heure
|
1 2 |
sudo timedatectl set-timezone Europe/Paris timedatectl status |
1.2) Mise à jour des paquets
|
1 |
sudo apt update -y && sudo apt upgrade -y |
2) Prérequis
2.1) Docker
Avoir Docker d’installé.
Vous pourrez suivre ce tutoriel : Installer Docker
2.2) Définir le nom d’hôte
|
1 |
sudo hostnamectl set-hostname dc01 |
Remplacer dc01 par le nom de votre contrôleur de domaine.
Remarque : Il peut être nécessaire de se reconnecter.
2.3) Modifier le fichier /etc/hosts
|
1 |
sudo nano /etc/hosts |

Ajouter le nom complet de votre contrôleur de domaine.
2.4) Désactiver le listener systemd-resolve
Si votre système dispose du service systemd-resolve, il est préférable de désactiver son listener qui écoute sur le port 53 pour éviter les conflits avec votre nouveau contrôleur de domaine Samba AD.
|
1 2 |
sudo mkdir -p /etc/systemd/resolved.conf.d echo -e "[Resolve]\nDNSStubListener=no" | sudo tee /etc/systemd/resolved.conf.d/01-nostub.conf |
|
1 |
sudo systemctl restart systemd-resolved |
|
1 |
ss -tunlp | grep ":53" |
Vous ne devriez plus voir de lignes avec le port 53.
3) Installation de Samba Active Directory
3.1) Installer git
|
1 |
sudo apt install -y git |
3.2) Récupérer le projet
|
1 |
git clone https://github.com/jjlabs75/samba-ad-dc.git |
3.3) Se déplacer dans le répertoire du projet
|
1 |
cd samba-ad-dc |
3.4) Construire l’image
|
1 |
sudo docker build -t samba-ad-dc:4.22 ./build |
3.5) Créer le fichier .env à partir du modèle
|
1 |
cp .env.example .env |
3.6) Modifier le fichier .env
|
1 |
nano .env |

Remplir le fichier avec les informations de votre domaine.
3.7) Démarrer le container
|
1 |
sudo docker compose up -d |
3.8) Afficher les logs
|
1 |
sudo docker compose logs |

4) Création d’un nouveau domaine
Remarque : Pour ajouter un nouveau contrôleur de domaine à un domaine existant, passer à l’étape suivante.
4.1) Créer le nouveau domaine
Uniquement pour la création d’un nouveau domaine. Si le domaine existe déjà, passer à l’étape suivante.
|
1 |
sudo docker compose exec -it dc samba-provision |

4.2) Afficher les logs
|
1 |
sudo docker compose logs |

4.3) Modifier le serveur de résolution DNS de l’hôte
Configurer l’hôte pour qu’il utilise le serveur DNS exécuté dans le container Samba AD.
|
1 |
sudo nano /etc/resolv.conf |

4.4) Définir le mot de passe de l’utilisateur administrator
|
1 |
sudo docker compose exec -it dc samba-tool user setpassword administrator |

4.5) Désactiver l’expiration de mot de passe pour administrator
|
1 |
sudo docker compose exec -it dc samba-tool user setexpiry administrator --noexpiry |
4.6) Créer une zone DNS de recherche inversée
|
1 2 |
sudo docker compose exec -it dc \ samba-tool dns zonecreate dc01 0.168.192.in-addr.arpa --username=administrator |
4.7) Créer un utilisateur
|
1 2 |
sudo docker compose exec -it dc \ samba-tool user create jean |

4.8) Ajouter l’utilisateur au groupe « Domain Admins »
|
1 2 |
sudo docker compose exec -it dc \ samba-tool group addmembers "Domain Admins" jean |
4.9) Lister les utilisateurs du groupe « Domain Admins »
|
1 2 |
sudo docker compose exec -it dc \ samba-tool group listmembers "Domain Admins" |
5) Ajout d’un nouveau contrôleur de domaine
5.1) Ajouter un contrôleur de domaine à un domaine existant
Uniquement pour ajouter un contrôleur de domaine à un domaine existant.
|
1 2 |
sudo docker compose exec -it dc samba-join \ --server=dc01 -U"JJLABS\administrator" |
--server : DC existant sur lequel s’authentifier pour la jonction.-U : Utilisateur ayant le droit d’ajouter un DC au domaine.
Le mot de passe sera demandé.
5.2) Afficher les logs
|
1 |
sudo docker compose logs |
5.3) Modifier le serveur de résolution DNS de l’hôte
Configurer l’hôte pour qu’il utilise le serveur DNS exécuté dans le container Samba AD.
|
1 |
sudo nano /etc/resolv.conf |

6) Joindre une machine au domaine (Windows)
6.1) Configurer le DNS
Modifier la configuration réseau du client pour qu’il utilise un de vos contrôleurs de domaine pour la résolution DNS.

Renseigner l’IP de l’un de vos contrôleurs de domaine.
6.2) Joindre le domaine
Se rendre dans les paramètres, système, informations système puis domaine et groupe de travail.



Un redémarrage sera demandé.
6.3) Ouvrir une session avec un utilisateur du domaine

6.4) Vérifier la synchronisation du temps avec le contrôleur de domaine
Le service chrony doit être démarré sur le contrôleur de domaine.
|
1 |
sudo docker compose exec dc service --status-all |
Lancer la synchronisation depuis le membre du domaine.
|
1 2 |
Start-Service -Name W32Time w32tm /resync |
Remarque : Nécessite les droits administrateur.
Vérifier la source de synchronisation.
|
1 |
w32tm /query /source |

7) Administrer le domaine (Windows)
7.1) Installer les outils RSAT Windows
Ouvrir une invite de commande Powershell en tant qu’administrateur.
|
1 2 3 |
Get-WindowsCapability -Online | where { ($_.Name -like "Rsat.ActiveDirectory.DS-LDS.Tools*") -OR ($_.Name -like "Rsat.Dns.Tools*") -OR ($_.Name -like "Rsat.GroupPolicy*") } | foreach { Add-WindowsCapability -Online -Name $_.Name } |

Remarque : Un redémarrage peut être nécessaire comme dans l’exemple précédent.
7.2) Gestionnaire DNS

7.3) Gestion des utilisateurs et groupes

7.4) Gestion des stratégies de groupes

8) Sauvegarde
8.1) Vérifier l’état de la base de données
|
1 2 |
sudo docker compose exec dc \ samba-tool dbcheck --cross-ncs |

8.2) Sauvegarde du contrôleur de domaine
Sauvegarde de la base de données et des fichiers essentiels.
|
1 2 3 |
sudo docker compose exec dc \ samba-tool domain backup online \ --server dc01 --username administrator --targetdir=/backups |

8.3) Vérifier la présence de la sauvegarde
|
1 |
ls -lah ./data/samba/backups |

Voilà ! C’est terminé !
Vous avez enfin créé votre Contrôleur de domaine avec Samba AD.
Il ne reste plus qu’à :
- Créer vos propres utilisateurs et groupes
- Intégrer d’autres machines au domaine
- Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
- Visiter le dépôt Samba AD Docker image.
- Visiter la page de la documentation officielle pour aller encore plus loin.
- Faire un don pour soutenir notre travail
En savoir plus sur Jj World
Subscribe to get the latest posts sent to your email.
Laisser un commentaire