Lab_AD_Complet/README_EN.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

131 lines
4.2 KiB
Markdown

# lab_AD_Complet
Reproducible Active Directory lab, based on Docker, for training and self-study.
> Version française : [README.md](README.md)
## Lab content
A complete, isolated Active Directory environment comprising:
- **DC01**: Windows Server domain controller (AD DS + DNS)
- **PC01**: Windows 11 client workstation to join the domain
- **linux01**: Debian 12 client to join the domain (realmd + SSSD)
Everything is orchestrated via a single `docker-compose.yml`, fully configurable via environment variables.
## Prerequisites
The lab requires hardware virtualization access (KVM on Linux, WSL2 + nested virt on Windows).
| System | Supported | Notes |
|---|---|---|
| Linux (kernel >= 5.x with KVM) | Yes | Simplest setup |
| Windows 10/11 Pro + Docker Desktop | Yes | Enable nested virtualization in `.wslconfig` |
| macOS Intel | Partial | Degraded performance, not recommended |
| macOS Apple Silicon (M1/M2/M3) | No | Use a Linux VM (UTM) - see `docs/etudiant/en/00-prerequisites.md` |
Minimum resources:
- 16 GB RAM recommended (12 GB minimum)
- 80 GB free disk space (Windows install + snapshots)
- CPU with VT-x / AMD-V enabled in BIOS
Check scripts provided:
```bash
./scripts/check-prereqs.sh # Linux, macOS
.\scripts\check-prereqs.ps1 # Windows
```
## Quick start
```bash
git clone <repo-url> lab_AD_Complet
cd lab_AD_Complet
cp .env.example .env # adapt variables
./scripts/check-prereqs.sh
docker compose up -d dc01
```
Windows Server installation runs automatically in the background (20 to 40 minutes depending on your connection). Monitor progress via:
- Web UI: http://localhost:8006
- Logs: `docker compose logs -f dc01`
Once Windows is installed, AD configuration (promotion, OUs, users, GPOs, shares) is left to the learner. Detailed guides are in `docs/etudiant/en/`.
## Accessing the hosts
Two methods available:
### Web UI (noVNC)
- DC: http://localhost:8006
- Windows client: http://localhost:8009
- Useful to observe boot / installation, but slow and no clipboard sync.
### RDP (recommended)
```bash
./scripts/rdp-dc.sh # opens RDP session on DC01
./scripts/rdp-client.sh # opens RDP session on PC01
```
On Windows:
```powershell
.\scripts\rdp-dc.ps1
```
RDP provides native clipboard, folder redirection (`\\tsclient\shared`) and much better performance.
## Project structure
```
lab_AD_Complet/
docker-compose.yml Defines the 3 containers
.env.example Configurable variables
linux-client/ Debian image pre-equipped (SSSD/realmd)
scripts/ Prerequisite checks + RDP launchers
shared/ Folder shared with Windows VMs via RDP
docs/
etudiant/ Learning guides (FR + EN)
formateur/ Instructor materials and solutions (not distributed)
```
## Documentation
- `docs/etudiant/en/00-prerequisites.md`: Docker install and checks
- `docs/etudiant/en/01-lab-startup.md`: first lab startup
- `docs/etudiant/en/02-dc-promotion.md`: domain controller promotion (GUI + PowerShell)
- `docs/etudiant/en/03-ou-users-groups.md`: OU tree, users, groups, AGDLP
- `docs/etudiant/en/04-gpo.md`: GPO creation and linking
- `docs/etudiant/en/05-shares-ntfs.md`: SMB shares and NTFS permissions
- `docs/etudiant/en/06-join-windows-client.md`: joining PC01 to the domain
- `docs/etudiant/en/07-join-linux-client.md`: joining linux01 to the domain
- `docs/etudiant/en/troubleshooting.md`: common issues
Each procedure is documented with a dual approach: **graphical interface** (Server Manager, ADUC, GPMC) and **PowerShell scripting**.
## Stop the lab
```bash
docker compose stop # stop without losing state
docker compose down # stop and remove containers
docker compose down -v # remove everything including VM disks
```
Windows disks are stored in `./storage-dc01/` and `./storage-pc01/` at the project root. Removing these directories resets everything to a fresh install.
## License
MIT - see [LICENSE](LICENSE).
## Contributing
Contributions are welcome (fixes, translations, new exercises). Open an issue or submit a merge request.
---
Made by [AcadéNice](https://acadenice.fr/).