Complete Active Directory teaching environment based on dockurr/windows: - Windows Server domain controller, Windows 11 client, Debian 12 client - docker-compose orchestration, env-driven configuration - Bilingual documentation (FR + EN) for students - Dual approach (GUI + PowerShell) in every procedure - Instructor course plan and reference scripts - RDP launcher scripts for Linux, macOS and Windows Made by AcadéNice - https://acadenice.fr/
3.5 KiB
Joindre le poste Linux au domaine
Objectif : configurer le client Debian linux01 pour qu'il s'authentifie
auprès de l'AD, et valider la résolution des utilisateurs et groupes AD.
La stack utilisée est la stack standard sur Debian/Ubuntu/RHEL :
realmd: outil de découverte et d'adhésion à un domainesssd: démon qui gère l'intégration (cache, Kerberos, NSS, PAM)adcli: client de bas niveau pour ADkrb5: couche Kerberos
Tous ces paquets sont déjà présents dans l'image (voir
linux-client/Dockerfile).
Démarrer le conteneur
docker compose up -d linux01
docker exec -it lab-linux01 bash
Le point d'entrée configure automatiquement /etc/resolv.conf pour pointer
vers l'IP du conteneur DC01 et ajoute des entrées hosts pour les noms AD.
Vérifie :
cat /etc/resolv.conf
cat /etc/hosts | tail
ping -c 2 corp.lab
Découverte du domaine
Cmdlet clé : realm discover.
realm discover corp.lab
Tu dois voir une réponse structurée indiquant type: kerberos et
server-software: active-directory.
Si tu n'as rien, vérifie la résolution DNS : le DC doit répondre au port 53 sur l'IP utilisée.
Jonction au domaine
Cmdlet clé : realm join.
realm join -U Administrator corp.lab
# Saisir le mot de passe de CORP\Administrator quand demandé
Sous le capot, realmd :
- Crée un compte ordinateur
LINUX01dansCN=Computers - Génère un keytab Kerberos dans
/etc/krb5.keytab - Configure
/etc/sssd/sssd.conf - Active
sssdpour les bases NSS (passwd, group) et PAM
Démarrer sssd
Dans un conteneur, systemd n'est pas toujours disponible. On lance sssd directement :
sssd --daemon
Validation
Résolution NSS :
id pmartin@corp.lab
getent passwd pmartin@corp.lab
getent group 'GG_Pedagogie@corp.lab'
Tu dois voir :
- un UID attribué par sssd (grosse valeur, dérivée du SID)
- la liste des groupes AD de l'utilisateur, incluant l'imbrication AGDLP
Authentification Kerberos :
kinit pmartin@CORP.LAB
klist
klist doit afficher un TGT (Ticket Granting Ticket) valide.
Se connecter en SSH avec un compte AD
Si tu as activé SSH dans le conteneur (c'est le cas par défaut avec le Dockerfile fourni), depuis l'hôte :
ssh pmartin@lab-linux01
# ou l'IP du conteneur
Le home directory est créé automatiquement au premier login grâce au module
pam_mkhomedir configuré dans l'entrypoint.
Limiter l'accès à certains groupes AD
Par défaut, tous les utilisateurs AD peuvent se connecter. Pour restreindre :
realm permit -g "GG_Pedagogie@corp.lab"
ou l'inverse (tout interdire sauf exception) via le fichier
/etc/sssd/sssd.conf.
Points d'attention
realm joinéchoue si la résolution DNS est mauvaise ou si l'heure du client dérive de plus de 5 minutes par rapport au DC. Sur un conteneur fraîchement démarré, l'heure est celle de l'hôte, ça suffit.- Dans ce lab, la résolution DNS est rusée : le DC annonce une IP interne
non routable. On contourne via
/etc/hosts. En production, tu aurais le DC directement joignable sur le réseau. sssdcache les utilisateurs pendant 6h par défaut. Si tu modifies un groupe côté AD et que l'effet ne se voit pas, lancesss_cache -Eou redémarresssd.
Quitter le domaine
realm leave corp.lab
Le compte ordinateur est supprimé côté DC, le keytab retiré, sssd désactivé.
Étape suivante
Le lab est complètement opérationnel. Consulte troubleshooting.md en cas de
souci.