Lab_AD_Complet/docs/etudiant/fr/07-jonction-poste-linux.md
Corentin 8e1b06e090 Initial lab release: Docker-based Active Directory lab
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/
2026-04-17 11:29:49 +02:00

144 lines
3.5 KiB
Markdown

# 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 domaine
- `sssd` : démon qui gère l'intégration (cache, Kerberos, NSS, PAM)
- `adcli` : client de bas niveau pour AD
- `krb5` : 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` :
1. Crée un compte ordinateur `LINUX01` dans `CN=Computers`
2. Génère un keytab Kerberos dans `/etc/krb5.keytab`
3. Configure `/etc/sssd/sssd.conf`
4. Active `sssd` pour 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.
- `sssd` cache les utilisateurs pendant 6h par défaut. Si tu modifies un
groupe côté AD et que l'effet ne se voit pas, lance `sss_cache -E` ou
redémarre `sssd`.
## 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.