Joindre une machine Debian/Ubuntu à un domaine Active Directory

Publié par Geoffrey Sauvageot-Berland le

Bonjour à tous ! Aujourd’hui un nouveau tutoriel sur l’ajout d’une machine Ubuntu dans un domaine Active Directory. Je pars du principe que votre domaine AD, est correctement configuré et fonctionnel. Et que vos machines peuvent se joindre mutuellement par le biais de la fameuse commande ping. Toutes les commandes ci-dessous seront exécutées par l’intermédiaire de l’utilisateur root.

Préambule

Voilà comment mon réseau est configuré pour cette démonstration.

  • Domain controller : 192.168.145.128/24 domaine : coud.local, netbios : dc
  • Machine linux : 192.168.145.141/24 hostname ubuntu-info

Afin d’éviter de rencontrer des erreurs bêtes, je vous invite à exécuter toutes les commandes préfixées avec sudo, ou si vous êtes flemmard, sous le pseudonyme root.

Sur votre machine Linux, il va falloir ajouter l’ip de votre domain controller en tant que serveur dns principal.

Ensuite, vous pouvez changer le nom de votre machine si vous le souhaité, mais cela n’est pas obligatoire. N’oubliez pas de redémarrer votre machine avant de poursuivre, pour que les modifications soient prises en compte.

sudo hostnamectl set-hostname ubuntu-info
# Optionelle 

Installation des paquets requis et configuration

Nous allons commencer par exécuter quelques actions « Routinière »

Pinguez le contrôleur de domaine (étape bloquante)

ping dc.coud.local

Puis, mettez à jour les paquets de votre machine.

sudo apt update

Installez les différents paquets requis, pour l’ajout de la machine au domaine coud.local

sudo apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
sudo realm discover coud.local
sudo realm join -U administrator coud.local
sudo realm list 

Ensuite copier coller, ce bloc de commande dans votre terminal. Il va nous permettre de créer automatiquement le dossier de l’utilisateur /home/ »user », lors de sa première connexion.

sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
        required                        pam_mkhomedir.so umask=0022 skel=/etc/skel
EOF

Appuyez sur la touche « entrer » après que le copier/coller de ce bloc dans votre terminal

sudo pam-auth-update

Cochez toutes les options

sudo systemctl restart sssd
sudo systemctl status sssd

Nous allons prendre un exemple avec trois utilisateurs de mon AD. hello, nestor et world. le premier et le dernier feront partie du groupe hw. Ce groupe disposera de privilège administrateur. (voir partie optionnelle)

Avant de continuer, nous allons vérifier que les utilisateurs sont bien reconnus par Ubuntu comme étant des utilisateurs du domaine coud.local

id [email protected] 
id [email protected]
id [email protected]

Je vais autoriser seulement Nestor à se connecter à notre machine ubuntu.

sudo realm permit [email protected]
# Vérifier que son mdp n'est pas obsolète au cas ou.

Certaines fois, si vous êtes sur une VM, vous pouvez rencontrer un problème de rafraîchissement de l’IHM, dans ce cas la avant de vous connecter, veuillez redémarrer votre machine Ubuntu, avant de tester la connexion.

reboot # optionelle 

Connectez-vous avec l’utilisateur que vous avez autorisé.

Puis entrer le mot de passe de cette utilisateur.

Vous voilà connectés à votre machine Ubuntu avec un compte présent dans votre domaine AD. 🙂

Pour les plus déterminés (Partie avancé)

Autoriser l’accès à un groupe d’utilisateurs du domaine

sudo realm permit -g groupName

Ajouter plusieurs groupes d’utilisateurs

sudo realm permit 'Domain Users' 'admin users'

Autoriser la connexion de tous les utilisateurs du domaine (non recommandé) :

sudo realm permit --all

Desactiver la connexion de tous les utilisateurs :

sudo realm  deny --all

Configurer l’authentification avancé pour octroyer des droits sudo à un utilisateur membre du domaine

Nous devons créer le fichier suivant :

sudo nano /etc/sudoers.d/domain_admins
[email protected]        ALL=(ALL)       ALL

Rappel : Pour promouvoir un simple utilisateur. (Autoriser d’abord la connexion « Normal » avec : realm permit [email protected])

Promouvoir un groupe entier d’utilisateur.

%[email protected]     ALL=(ALL)   ALL

Rappel : pour promouvoir (Autoriser d’abord la connexion « Normal » avec : sudo realm permit -g groupName)

Connexion SSH

ssh COUD\\world@localhost
# connexion ssh depuis le serveur ubuntu vers le serveur ubuntu en guise de test:) 
# Coud = Netbios du domaine 
# world = un utilisateur AD qui a été autorisé à se connecter en amont 

Attention, si vous utilisez putty, depuis un ordinateur distant, mettez simplement un seul antislash \

Enfin, pour terminer, nous pouvons constater que dans la console Active directory users and computers votre objet ordinateur est bel est bien présent.

J’espère que vous êtes arrivé au bout du tutoriel sans trop de mal ^^

++

Geoffrey pour Le guide du sysops


En savoir plus sur Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

En savoir plus sur Le Guide Du SecOps

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading