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/
144 lines
3.5 KiB
Markdown
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.
|