Aller au contenu

Joindre une machine Ubuntu 22 à un domaine Active Directory

Les étapes suivantes permettent de joindre une machine disposant d'Ubuntu 22.04 LTS à un domaine Active Directory.

S'assurer que le serveur a le bon nom avant de rejoindre le domaine

hostnamectl

Au besoin, changer le nom de machine avec la commande suivante :

hostnamectl set-hostname monserveur.mondomaine.fr

Activation de la synchro de temps

La gestion du temps (de l'horloge) est primordiale à la bonne intégration d'une machine à un domaine. Effectuer les réglages suivants pour définir un contrôleur de domaine comme serveur de temps :

timedatectl set-ntp on 

Redémarrer le service

systemctl restart systemd-timesyncd.service

Synchroniser l'horloge

timedatectl --adjust-system-clock

Lister les zones de temps et repérer la bonne (Pour la France : Europe/Paris)

timedatectl list-timezones

Définir la zone. L'exemple suivant concerne la France.

timedatectl set-timezone Europe/Paris

Définir le serveur de temps sur un contrôleur de domaine

On commence par faire une copie du fichier de configuration, au cas où.

cp /etc/systemd/timesyncd.conf /etc/systemd/timesyncd.bk

Ajout des contrôleurs de domaine en tant que serveur de temps + fallback sur les serveurs mondiaux

sed -i "s/#FallbackNTP=/FallbackNTP=controlleur1.mondomaine.fr controleur2.mondomaine.fr 0.arch.pool.ntp.org 1.arch.pool.ntp.org/g" /etc/systemd/timesyncd.conf

Installer les paquets requis pour joindre un domaine

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

Découvrir le domaine

realm discover mondomaine.fr

Rejoindre le domaine

realm --verbose join -U admin_du_domaine mondomaine.fr --computer-ou=OU=MON_OU,OU=Ordinateurs,DC=mondomaine,DC=fr

Paramétrage de sssd

cp /etc/sssd/sssd.conf /etc/sssd/sssd.bkp

Puis le modifier ainsi avec sed :

sed -i "s/use_fully_qualified_names = True/use_fully_qualified_names = False/g" /etc/sssd/sssd.conf
sed -i "s/fallback_homedir = \/home\/%u\@\%d/fallback_homedir = \/home\/\%u/g" /etc/sssd/sssd.conf
sed -i '/ad_domain = mondomaine.fr/ a ad_server = monserveur1.in.ama.bzh' /etc/sssd/sssd.conf
sed -i '/monserveur1.mondomaine.fr/ a ad_backup_server = monserveur2.mondomaine.fr, monserveur3.mondomaine.fr' /etc/sssd/sssd.conf

Redémarrer le service sssd

systemctl restart sssd

Paramétrage de pam.d

Faire une copie de secours du fichier de configuration /etc/pam.d/common-session

cp /etc/pam.d/common-session /etc/pam.d/common-session.bk

Modification à faire pour permettre la création automatique du squelette /home/mesfichiers

sed -i "s/\# end of pam-auth-update config/session optional pam_mkhomedir.so skel=\/etc\/skel umask=0077\n\# end of modified pam-auth-update config/g" /etc/pam.d/common-session

Autoriser un utilisateur ou un groupe AD à se connecter

Autoriser un utilisateur :

realm permit 'utilisateur'

Autoriser un groupe :

realm permit -g 'MON_GROUPE_ADMINISTRATEUR'

Ajouter un groupe d'utilisateur en tant que sudoer

Exemple :

#Alllow IT group to sudo
echo -e "%MON_GROUPE_ADMINISTRATEUR ALL=(ALL:ALL) ALL" >> /etc/sudoers

Troubleshooting

Si toutefois il est impossible d'ouvrir une session avec un utilisateur du domaine alors que toutes les configurations précédentes ont été réalisées, vérifier l'état du fichier /etc/nsswitch.conf. Il doit correspondre à ceci :

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd sss
group:          files systemd sss
shadow:         files sss
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files sss
ethers:         db files
rpc:            db files

netgroup:       nis sss
sudoers:        files sss
automount:      sss