Un contrôleur de domaine sur serveur Linux ?! Impossible! La réaction est valable, surtout pour ceux qui entendent le concept pour la première fois. Il s'avère que non seulement vous pouvez configurer un serveur Linux de contrôleur de domaine, mais vous pouvez également le faire gratuitement !
Que vous optiez pour Linux pour le coût, la standardisation ou une pile technologique plus écologique et allégée, apprendre à configurer un DC Linux est une bonne compétence pour chaque administrateur.
Lisez la suite pour apprendre à utiliser Samba en tant que serveur Linux de contrôleur de domaine fiable.
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir un serveur Ubuntu. Ce tutoriel utilisera un Ubuntu Server 22.04 LTS avec la configuration suivante.
- Nom d'hôte :
oddjobs-dc
- Adresse IP :
192.168.8.10
- Domaine :
OJI.COM
- FQDN :
oddjobs-dc.oji.com
Préparation du contrôleur de domaine sur le serveur Linux
Après avoir satisfait à toutes les conditions préalables, vous devez vous assurer qu'il n'y a pas de paramètres de système d'exploitation par défaut susceptibles d'entraver le fonctionnement du contrôleur de domaine. Ne vous inquiétez pas. Cette étape n'est pas aussi compliquée que cela puisse paraître. Suivez les étapes ci-dessous pour accomplir cette tâche.
Configurer l'entrée du fichier Hosts
La première tâche consiste à ajouter le nom d'hôte et les entrées FQDN de votre serveur dans les hôtes locaux. (/etc/hosts
) fichier.
1. Tout d'abord, ouvrez votre client SSH préféré et connectez-vous à votre serveur Ubuntu.
2. Ouvrez vos hôtes (/etc/hosts) dans un éditeur de texte, tel que nano.
sudo nano /etc/hosts
3. Supprimez toute entrée qui mappe votre nom d'hôte ou FQDN sur une adresse IP autre que l'adresse IP statique. Par exemple, l'adresse IP statique de ce serveur est 192.168.8.10, alors laissez cette entrée si elle existe. Reportez-vous à l'exemple ci-dessous.
4. Ensuite, ajoutez une entrée pour mapper le FQDN et l'adresse IP statique de votre hôte. Dans ce tutoriel, le FQDN du serveur est oddjobs-dc.oji.com, donc l'entrée à ajouter est :
192.168.8.10 oddjobs-dc.oji.com oddjobs-dc
5. Enregistrez les hôtes (/etc/hosts) et quittez l'éditeur.
Confirmer le nom d'hôte et la résolution FQDN
Exécutez les commandes ci-dessous pour confirmer le nom d'hôte du serveur et que le FQDN correspond à l'adresse IP correcte.
# verify server FQDN
hostname -A
# verify FQDN resolves to your server IP address
ping -c1 oddjobs-dc.oji.com
Comme vous pouvez le voir ci-dessous, les commandes ont renvoyé le FQDN et l'adresse IP attendus.
Désactiver le service de résolution de nom de réseau
Ubuntu a un service appelé systemd-resolved
, qui s'occupe des requêtes de résolution DNS. Ce service n'est pas adapté à Samba, vous devez le désactiver et configurer manuellement le résolveur DNS à la place.
1. Désactivez le service résolu par systemd en exécutant la commande ci-dessous.
sudo systemctl disable --now systemd-resolved
2. Ensuite, supprimez le lien symbolique vers le fichier /etc/resolv.conf.
sudo unlink /etc/resolv.conf
3. Créez un nouveau fichier /etc/resolv.conf dans votre éditeur de texte. Cet exemple utilise nano.
sudo nano /etc/resolv.conf
4. Remplissez le fichier /etc/resolv.conf avec les informations suivantes. Remplacez 192.168.8.10 par l'adresse IP de votre serveur et oji.com par votre domaine. Laissez le serveur de noms 1.1.1.1 comme résolveur DNS de secours, qui est le résolveur DNS public de Cloudflare.
# your Samba server IP Address
nameserver 192.168.8.10
# fallback resolver
nameserver 1.1.1.1
# your Samba domain
search oji.com
Votre /etc/resolv.conf devrait ressembler à la capture d'écran ci-dessous.
5. Enregistrez le fichier et quittez l'éditeur.
Installer Samba
Après avoir terminé la préparation du serveur, il est temps d'installer Samba et d'autres packages requis pour provisionner le contrôleur de domaine.
1. Tout d'abord, assurez-vous que le cache du référentiel est à jour en exécutant la commande ci-dessous.
sudo apt-get update
2. Exécutez la commande ci-dessous pour installer les packages requis pour un contrôleur de domaine entièrement fonctionnel.
sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
3. À l'étape Configuration de l'authentification Kerberos, saisissez le domaine DNS en majuscules. Dans cet exemple, le domaine de domaine par défaut est OJI.COM. Mettez en surbrillance OK et appuyez sur Entrée pour accepter la valeur.
4. Sur l'écran suivant demandant les serveurs Kerberos pour votre domaine, saisissez le nom d'hôte du serveur et appuyez sur Entrée.
5. Sur l'écran suivant demandant le serveur administratif pour votre domaine Kerberos, saisissez le nom d'hôte du serveur et appuyez sur Entrée.
6. Après la configuration, désactivez les services inutiles (winbind, smbd et nmbd).
sudo systemctl disable --now smbd nmbd winbind
7. Activez et activez le service samba-ad-dc. Ce service est ce dont Samba a besoin pour agir en tant que serveur Linux du contrôleur de domaine Active Directory.
# unmask the samba-ad-dc service
sudo systemctl unmask samba-ad-dc
# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc
Provisionnement du serveur Linux du contrôleur de domaine
À l'aide du binaire samba-tool, vous pouvez désormais provisionner le contrôleur de domaine lors de votre installation Samba. Samba aussi l est un outil de configuration pour interagir avec et configurer divers aspects d'un AD basé sur Samba.
1. Pour faire bonne mesure, sauvegardez les fichiers /etc/samba/smb.conf et /etc/krb5.conf existants.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
2. Exécutez la commande ci-dessous pour promouvoir Samba sur un serveur Linux de contrôleur de domaine Active Directory.
Le commutateur –use-rfc2307 active l'extension NIS (Network Information Service), qui permet au contrôleur de domaine de gérer correctement les comptes d'utilisateurs basés sur UNIX.
sudo samba-tool domain provision --use-rfc2307 --interactive
3. Répondez aux invites comme suit.
- Royaume – l'outil détecte automatiquement votre domaine Kerberos. Dans cet exemple, le domaine est
OJI.COM
. Appuyez sur Entrée pour accepter la valeur par défaut.
- Domaine – l'outil détecte automatiquement le nom de domaine NetBIOS. Dans cet exemple, le NetBIOS est
OJI
. Appuyez sur Entrée pour continuer.
- Rôle de serveur – l'outil renseigne automatiquement le rôle serveur en tant que contrôleur de domaine (
dc
). Appuyez sur Entrée pour continuer.
- Système DNS – la valeur par défaut est
SAMBA_INTERNAL
. Appuyez sur Entrée pour accepter la valeur par défaut.
- Adresse IP du redirecteur DNS – tapez l'adresse du résolveur de secours que vous avez spécifié dans
resolve.conf
plus tôt, qui est1.1.1.1
. Appuyez sur Entrée pour continuer.
- Mot de passe administrateur – définir le mot de passe de l'administrateur de domaine par défaut. Le mot de passe que vous spécifiez doit répondre aux exigences de complexité minimales de Microsoft. Appuyez sur Entrée pour continuer.
- Retaper le mot de passe :retapez le mot de passe par défaut de l'administrateur de domaine et appuyez sur Entrée.
À la fin de la configuration, vous verrez les informations suivantes.
4. La commande samba-tool a généré le fichier de configuration Samba AD Kerberos dans /var/lib/samba/private/krb5.conf. Vous devez copier ce fichier dans /etc/krb5.conf. Pour ce faire, exécutez la commande suivante.
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
5. Enfin, démarrez le service samba-ad-dc.
sudo systemctl start samba-ad-dc
sudo systemctl status samba-ad-dc
Comme vous pouvez le voir ci-dessous, le statut du service est maintenant actif (en cours d'exécution).
Test du serveur Linux du contrôleur de domaine
Le serveur Samba AD DC est maintenant en cours d'exécution. Dans cette section, vous effectuerez quelques tests post-installation pour confirmer que les composants clés fonctionnent comme vous le souhaitez. L'un de ces tests consiste à tenter de se connecter aux partages réseau par défaut sur le DC.
Exécutez la commande smbclient pour vous connecter en tant que compte administrateur par défaut et listez (ls) le contenu du partage netlogon.
smbclient //localhost/netlogon -U Administrator -c 'ls'
Saisissez le mot de passe administrateur par défaut. Le partage doit être accessible sans erreur si le DC est en bon état. Comme vous pouvez le voir ci-dessous, la commande a répertorié le répertoire de partage netlogon.
Vérification de la résolution DNS pour les enregistrements de domaine clé
Exécutez les commandes ci-dessous pour rechercher les enregistrements DNS suivants.
- Enregistrement SRV LDAP basé sur TCP pour le domaine.
- Enregistrement Kerberos SRV basé sur UDP pour le domaine.
- Un enregistrement du contrôleur de domaine.
host -t SRV _ldap._tcp.oji.com
host -t SRV _kerberos._udp.oji.com
host -t A oddjobs-dc.oji.com
Chaque commande doit renvoyer les résultats suivants, indiquant que la résolution DNS fonctionne.
Tester Kerberos
Le dernier test consiste à tenter d'émettre un ticket Kerberos avec succès.
1. Exécutez la commande kinit pour l'utilisateur administrateur. La commande ajoute automatiquement le domaine au compte d'utilisateur. Par exemple, l'administrateur deviendra [email protected], où OJI.com est le domaine.
kinit administrator
2. Tapez le mot de passe administrateur à l'invite et appuyez sur Entrée. Si le mot de passe est correct, vous verrez un message d'avertissement concernant l'expiration du mot de passe, comme indiqué ci-dessous.
3. Exécutez la commande klist ci-dessous pour répertorier tous les tickets dans le cache des tickets.
klist
La capture d'écran ci-dessous montre que le ticket Kerberos pour le compte administrateur est dans le cache des tickets. Ce résultat indique que l'authentification Kerberos fonctionne sur le serveur Linux de votre contrôleur de domaine.
Conclusion
Félicitations pour avoir atteint la fin de ce tutoriel. Vous avez maintenant appris à mettre en place rapidement un serveur Linux de contrôleur de domaine Active Directory. Approfondissez vos connaissances sur le sujet en apprenant à créer des utilisateurs et à joindre des ordinateurs clients dans le domaine.