Joindre un poste sous Linux à un domaine Windows Active Directory pour profiter de l’authentification centralisée n’est pas aussi simple qu’un client sous Windows. On peut même dire que c’est souvent un véritable casse-tête… Sur le net, on trouve autant de façons de faire, plus ou moins simples ou efficaces, que d’utilisateurs de Linux… (je dis ça, je dis rien !)

Aujourd’hui, voici une méthode garantie très simple que j’ai eu l’occasion d’utiliser récemment pour des postes sous Ubuntu Focal Fossa (20.04) et qui, pour moi, a fait ses preuves. good


Joindre un poste Ubuntu 20.04 à un domaine AD

Allez on ne perd pas trop de temps en blabla aujourd’hui ! bb

Pour ce tuto, je dispose d’un serveur Active Directory sous Windows 2019 qui gère le domaine neptunet.lan et d’un client Ubuntu 20.04.

Info ++ : Test réalisé uniquement sous Ubuntu 20.04 Focal Fossa, aucune garantie de fonctionnement sous une autre version…

Voici le schéma de mon infrastructure :

Les 2 machines devront être dans le même réseau et avoir accès à internet.

On commence par attribuer une adresse IP à notre poste client Ubuntu.

Info ++ : L’adresse du DNS doit être celle du serveur Active Directory pour pouvoir joindre le domaine.

Ensuite on va renommer la machine par un nom reconnaissable ou correspondant à la politique de l’entreprise (Exemples : PC-001, PC-COMPTA1…) :

nano /etc/hostname

Et on va lancer une petite mise à jour de la machine…

sudo apt update && apt upgrade –y

Une fois les mises à jour effectuées, on peut installer les paquets nécessaires à la jonction au domaine et leurs dépendances :

sudo apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit –y

C’est bon les paquets sont bien installés ? Alors on va tout de suite s’assurer que le domaine est bien joignable par le client Ubuntu avec la commande suivante :

realm discover NEPTUNET.LAN

Vous devriez obtenir les informations de ce type :

Visiblement, pas de problème ! On peut alors rejoindre directement le domaine à l’aide du compte administrateur avec la commande :

realm join --user=Administrateur NEPTUNET.LAN

Vous serez invité à saisir le mot de passe de l’administrateur du domaine :

Info ++ : Attention, lorsque vous allez saisir le mot de passe, aucun symbole ne sera affiché à l’écran, soyez vigilant.

A ce stade, mon client Ubuntu a bien rejoint mon domaine et apparaît dans la console Utilisateurs et Ordinateurs Active Directory de mon serveur Windows :

C’était rapide non ??? On va quand même vérifier qu’on a bien accès à la base de données qui contient les utilisateurs, tout simplement en testant l’existence d’un utilisateur.

Pour ce tuto, j’ai créé un utilisateur « Robin » dans la console Utilisateurs et Ordinateurs Active Directory. Testons son existence avec la commande :

id Robin@NEPTUNET.LAN

La commande me retourne bien des infos sur mon utilisateur Robin, notamment les groupes dont il est membre.

Nous allons modifier une petite configuration pour permettre la création automatique du répertoire home de l’utilisateur. Pour cela, éditez le fichier common-session :

sudo nano /etc/pam.d/common-session

A la fin du fichier, ajoutez la ligne suivante :

session optional pam_mkhomedir.so skel=/etc/skel umask=077

Ensuite on va tenter une première connexion sur la machine Ubuntu avec le compte de Robin, mais en ligne de commandes. Pour cela, saisissez la commande :

su – Robin@neptunet.lan

On constate ici deux choses :

  • Le répertoire home de robin a bien été créé
  • Nous sommes désormais bien connectés avec le compte de domaine Robin et non plus un utilisateur local de la machine Ubuntu

Pour quitter la session de Robin, tapez simplement exit :

Maintenant on va tenter de se connecter en mode graphique quand même, c’est plus sympa pour nos utilisateurs ^^

Pour cela, il faut procéder à un petit reboot de la machine.

Après redémarrage, cliquez sur « Absent de la liste ? » et saisissez le nom de connexion de l’utilisateur suivi de « @nom-domaine » pour ouvrir sa session :

Voilà, votre utilisateur de domaine dispose maintenant de sa propre session sur un poste client Ubuntu 20.04 ! Il a été authentifié directement sur l’AD se qui lui a permis de se connecter.

 

Allez un truc en plus pour la forme ! On va voir comment notre utilisateur va pouvoir accéder très simplement à des répertoires partagés qui sont hébergés sur un serveur Windows également (sur le serveur AD dans mon cas… pas top d’ailleurs, ne faites pas ça en prod !)

Info + : Il n’est absolument pas nécessaire que la machine Ubuntu soit membre d’un domaine Active Directory pour que les manipulations suivantes fonctionnent, c’est juste ici un petit + que je vous donne au passage wink 

Sur mon serveur AD, j’ai créé un dossier « Partage » (oui c’est original), que j’ai… partagé…

Dans l’onglet Sécurité, j’ai ajouté l’utilisateur Robin et attribuer les droits de modifications sur ce dossier :

Sur la machine Ubuntu, on va faire en sorte que Robin accède à ce partage. Ouvrez l’explorateur de fichiers et allez dans la partie « Autres emplacements ».

En bas, vous avez un espace « Connexion à un serveur ». Il faut renseigner à cet endroit le chemin réseau pour accéder au partage. Chez Linux, il faut utiliser le protocole smb. Pour avoir un exemple de la commande à saisir, vous pouvez cliquer sur le point d’interrogation.

Vous avez vu qu’il vous fallait donc utiliser le préfixe « smb:// » avant d’indiquer l’adresse du partage.

La ligne à saisir prendra donc la forme suivante : smb://nom-serveur/nom-partage

Dans mon cas, ce sera ceci :

Une authentification est nécessaire pour accéder au partage. Je garde le nom de mon utilisateur Robin, remplace le « Workgroup » par le nom de domaine et saisi le mot de passe de Robin. J’en profite pour cocher la case « Se souvenir pour toujours » afin que mon utilisateur n’ait pas à saisir ses identifiants à chaque fois (ouais je suis sympa…).

Mon utilisateur a désormais accès à une ressource partagée sur une machine Windows grâce à son authentification sur le domaine.

Allez dernière astuce pour la route :

Pour qu’un partage soit accessible dès le démarrage et que l’utilisateur n’ait pas à re-saisir smb://…, vous pouvez faire un clic droit sur le partage monté et cliquer sur « Ajouter le signet » (sinon il faudra vous orienter vers la solution fstab…)

Au redémarrage, il sera directement visible et accessible dans la liste de l’explorateur de fichiers.

Alors, pas mal hein ?! ça me réconcilierai presque presque avec Linux cette histoire… oh wait… rofl

A bientôt ! air_kiss


[Tuto] Joindre simplement un client Ubuntu 20.04 à un domaine Active Directory

Articles pouvant vous intéresser