Cette documentation décrit comment Intégrer un ordinateur Linux Mint dans un domaine Active Directory géré par un seul contrôleur de domaine : un serveur Windows 2008 Standard.
Les rôles Serveur DHCP, Serveur DNS et Services de domaine Active Directory doivent être installés sur le serveur. Le serveur doit être synchronisé avec un serveur de temps (serveur NTP) et être un DNS primaire :
Notez bien l’adresse IP du serveur Windows (par exemple 192.168.0.29), son nom (par exemple 2008-STD) et le nom de domaine (par exemple 2008-standard.numopen).
Il faut paramétrer Linux Mint pour qu’il utilise le DNS du serveur Windows.
Dans le menu Linux, cliquez sur Administration – Terminal :
La résolution des noms de machines est gérée par le service systemd-resolved.
Éditez le fichier /etc/systemd/resolved.conf en tant qu’administrateur, avec l’éditeur de texte mcedit (ou avec un autre éditeur de texte), en écrivant cette commande dans le terminal :
sudo mcedit /etc/systemd/resolved.conf
Écrivez le mot de passe de l’utilisateur créé lors de l’installation de Linux Mint.
Enlevez le # au début des lignes suivantes et complétez-les, en remplaçant l’adresse IP du serveur Windows et le nom de domaine par les valeurs correspondant à votre cas :
DNS=192.168.0.29
Domains=2008-standard.numopen
Enregistrez (touche F2) puis quittez mcedit (touche F10 ou 2x touche ESC/Echap).
Dans le terminal, écrivez cette commande pour redémarrer le service systemd-resolved :
sudo systemctl restart systemd-resolved
Testez la conversion « nom de machine » en « adresse IP » par le DNS du serveur Windows, en écrivant cette commande :
host 2008-STD
L’ordinateur Linux Mint reçoit bien en réponse l’adresse IP du serveur Windows : 192.168.0.29.
Installez les paquets adcli, krb5-user, libnss-sss, libpam-sss, ntp, realmd, samba, sssd et sssd-tools, en écrivant cette commande :
sudo apt install adcli krb5-user libnss-sss libpam-sss ntp realmd samba sssd sssd-tools
Lors de l’installation du paquet krb5-user, écrivez le nom du royaume Kerberos (dans notre cas, c’est le nom de domaine), en majuscules :
2008-STANDARD.NUMOPEN
Si nécessaire, vous pourrez modifier le nom du royaume Kerberos dans le fichier de configuration /etc/krb5.conf en écrivant cette commande :
sudo mcedit /etc/krb5.conf
Enregistrez (touche F2) puis quittez mcedit (touche F10).
Vous pourrez aussi modifier le nom du royaume Kerberos en écrivant cette commande :
sudo dpkg-reconfigure krb5-config
Choisissez <Non> pour utiliser les serveurs Kerberos définis dans le DNS du serveur Windows et non ceux définis dans le fichier /etc/krb5.conf :
Les serveurs Kerberos définis dans le DNS du serveur Windows :
La commande realm
simplifie l’ajout d’un ordinateur Linux dans un domaine. Elle installe les paquets manquants et écrit les paramètres nécessaires dans les fichiers de configuration.
Pour trouver le contrôleur de domaine et afficher ses caractéristiques, écrivez cette commande :
realm discover 2008-standard.numopen
Si le nom de domaine se termine par .local, l’ajout de l’ordinateur Linux Mint dans le domaine ne se fera pas, vous obtiendrez l’erreur realm: No such realm found. Les noms de domaine qui se terminent par .local sont en effet utilisés par le protocole de résolution de nom mDNS (avahi dans Linux, Bonjour dans macOS). Avant d’utiliser la commande realm join
, Il faudra donc arrêter temporairement le service avahi-daemon, en écrivant cette commande :
sudo systemctl stop avahi-daemon
Pour rejoindre le domaine, écrivez cette commande en remplaçant <user> par le nom d’un administrateur du domaine (Administrateur dans cet exemple) :
realm join -v --user=<user> --client-software=sssd 2008-standard.numopen
Écrivez le mot de passe de l’administrateur du domaine.
Attention : les caractères affichés dans Linux Mint s’affichent parfois différemment dans Windows. Si l’authentification échoue, vérifiez le mot de passe en l’écrivant dans un éditeur de texte de Linux Mint puis de Windows. Modifiez le mot de passe de l’administrateur du domaine en le copiant depuis l’éditeur de texte.
Puis écrivez le mot de passe de l’utilisateur créé lors de l’installation de Linux Mint :
Remarque : pour s’identifier et s’authentifier auprès de l’annuaire Active Directory, on utilise SSSD plutôt que Winbind.
L’ordinateur Linux Mint apparaît maintenant dans l’annuaire Active Directory :
Dans le menu Affichage, cliquez sur Fonctionnalités avancées :
Faites un clic droit sur l’ordinateur Linux Mint et cliquez sur Propriétés :
Certaines propriétés ont des valeurs récupérées sur l’ordinateur Linux Mint :
Remarque : du fait de l’erreur rencontrée lors de l’ajout de l’ordinateur Linux Mint dans le royaume Kerberos, la propriété servicePrincipalName n’a pas de valeur. Est-ce sans conséquence ?
Vous pouvez maintenant ouvrir une session sur Linux Mint avec un compte d’utilisateur du domaine. Choisissez un utilisateur du domaine ou créez-en un sur le serveur Windows :
Attention : par défaut, Linux transforme en minuscule le nom de l’utilisateur du domaine. Pour qu’il conserve les majuscules (Jean et non pas jean), modifiez le fichier /etc/sssd/sssd.conf en écrivant cette commande :
sudo mcedit /etc/sssd/sssd.conf
Ajoutez dans ce fichier cette ligne :
case_sensitive = preserving
Enregistrez (touche F2) puis quittez mcedit (touche F10).
Redémarrez le service sssd en écrivant cette commande :
sudo systemctl restart sssd
Vérifiez que le nom, le numéro d’utilisateur (UID), le numéro de groupe (GID) et le dossier personnel de cet utilisateur du domaine sont bien transmis à Linux Mint par l’annuaire Active Directory, en écrivant les commandes :
getent passwd Jean@2008-standard.numopen
id Jean@2008-standard.numopen
Lors de la première ouverture de session par l’utilisateur du domaine, son dossier personnel n’existe pas encore. Pour qu’il soit créé automatiquement, il faut activer le module pam_mkhomedir.
Modifiez le fichier /etc/pam.d/common-session en écrivant cette commande :
sudo mcedit /etc/pam.d/common-session
Ajoutez dans ce fichier cette ligne :
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
Enregistrez (touche F2) puis quittez mcedit (touche F10).
Le dossier /etc/skel/ contient des fichiers de configuration qui sont dupliqués dans le dossier personnel de chaque nouvel utilisateur lorsqu’il ouvre une session pour la première fois. On peut y ajouter d’autres fichiers de configuration et modifier ou supprimer ceux qui existent déjà.
Le dossier personnel de l’utilisateur du domaine sera créé avec le nom /home/<nom de l’utilisateur>@2008-standard.numopen. Cette syntaxe est définie avec la variable fallback_homedir = /home/%u@% dans le fichier de configuration /etc/sssd/sssd.conf. Vous pouvez la voir en écrivant cette commande :
sudo cat /etc/sssd/sssd.conf
:
Ouvrez une session avec le nom de l’utilisateur du domaine :
su - 2008-standard.numopen\\Jean
ou su - 2008-standard\\Jean
ou su - Jean@2008-standard.numopen
ou su - Jean@2008-standard
Le dossier personnel de l’utilisateur du domaine est créé.
Quittez la session en appuyant simultanément sur les touches CTRL et D.
Vous devez maintenant paramétrer le gestionnaire d’affichage LightDM pour pouvoir ouvrir une session avec le nom de l’utilisateur du domaine lors du démarrage de l’ordinateur.
Modifiez la configuration de LightDM en écrivant cette commande :
sudo mcedit /etc/lightdm/lightdm.conf.d/70-linuxmint.conf
Ajoutez dans ce fichier les lignes qui permettent de s’identifier avec l’utilisateur de son choix, de démarrer l’interface graphique et d’activer le verrouillage numérique sur le pavé numérique :
greeter-show-manual-login=true
user-session=mate
greeter-setup-script=/usr/bin/numlockx on
Enregistrez (touche F2) puis quittez mcedit (touche F10).
Écrivez ensuite cette commande :
sudo mcedit /etc/lightdm/lightdm.conf
Si les lignes contenant autologin-user et autologin-user-timeout sont présentes dans ce fichier, ajoutez # devant pour désactiver la connexion automatique d’un utilisateur :
Enregistrez (touche F2) puis quittez mcedit (touche F10).
Redémarrez le service LightDM en écrivant cette commande :
sudo systemctl restart lightdm
Votre session se ferme, vous pouvez maintenant ouvrir une nouvelle session avec le nom de l’utilisateur du domaine. Cliquez sur Ouvrir la session, écrivez le nom de l’utilisateur du domaine et le nom de domaine puis appuyez sur la touche Entrée :
Écrivez le mot de passe de l’utilisateur du domaine puis appuyez sur la touche Entrée :
La session de l’utilisateur du domaine s’ouvre :
Sur le serveur Windows, créez un dossier partagé, avec Jean BON comme Copropriétaire (Contrôle total) :
Notez le nom et le chemin d’accès du dossier partagé.
Sur le serveur Windows, désactivez le protocole de partage de ressources SMBv1 (déprécié et retiré de Linux) et activez le protocole SMBv3, sinon SMBv2 :
Redémarrez le serveur Windows.
Sur l’ordinateur Linux Mint, ouvrez une session en tant qu’utilisateur du domaine Jean BON.
Vous pouvez tester l’accès au dossier partagé Windows avec le gestionnaire de fichiers Nemo. Démarrez Nemo et dans le menu Fichier, cliquez sur Se connecter à un serveur… :
Écrivez le nom du serveur Windows dans Serveur. Dans Répertoire, écrivez le chemin d’accès au dossier partagé sur le serveur Windows. Par exemple, Users/Administrateur/Desktop/Dossier partagé pour test :
Donnez le nom que vous voulez au signet, ce sera le nom du dossier qui apparaîtra dans Nemo. Cliquez sur le bouton Se connecter, ce nouveau dossier apparaît :
L’inconvénient de cette méthode est que l’accès au dossier partagé depuis Nemo ne fonctionne plus si le mot de passe de l’utilisateur du domaine est changé dans l’annuaire Active Directory. Pour activer le montage automatique d’un dossier partagé à chaque fois que vous démarrez Linux Mint, il vaut mieux utiliser une authentification Kerberos via le module pam_mount.
Fermez la session puis connectez-vous avec votre compte d’utilisateur Linux Mint.
Installez les paquets libpam-krb5 et libpam-mount en écrivant cette commande :
apt install libpam-krb5 libpam-mount
Choisissez <Non> :
Dans le fichier /etc/pam.d/common-session, ajoutez cette ligne :
session optional pam_mount.so
Dans le fichier /etc/security/pam_mount.conf.xml, ajoutez cette ligne :
<volume fstype="cifs" server="2008-STD" path="Users/Administrateur/Desktop/Dossier partagé pour test" mountpoint="/home/%(USER)/Bureau/Dossier test" options="sec=krb5,cruid=%(USERUID),uid=%(USERUID),vers=2.0" user="Jean@2008-standard.numopen" />
Par défaut, le dossier partagé est monté par l’utilisateur qui ouvre une session. Pour que le dossier partagé ne puisse être monté que par l’utilisateur Jean@2008-standard.numopen et ainsi éviter un message d’erreur lorsque d’autres utilisateurs ouvrent une session, on utilise l’option user="Jean@2008-standard.numopen". Attention, il faut bien écrire ici Jean@… et non jean@… ou cela ne fonctionnera pas. Si vous voulez que le dossier partagé puisse être monté par tous les utilisateurs (si le partage sur le serveur Windows l’autorise), utilisez l’option user="*".
Attention, le paramètre vers=2.0 est obligatoire avec les anciennes versions de Windows qui utilisent le protocole de partage de ressources SMBv2 et non SMBv3.
Redémarrez Linux Mint puis connectez-vous en tant qu’utilisateur du domaine Jean BON. Vous verrez un nouveau dossier Dossier test sur votre bureau, qui permet d’accéder au dossier partagé sur le serveur Windows.
Vous pouvez afficher la liste des tickets Kerberos actuellement mis en cache, en écrivant la commande klist
dans un terminal :
Auteurs : sacrediou, membre du Graoulug et David VANTYGHEM. Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International.