Réseau & VLANs¶
Segmentation réseau¶
L'infrastructure est segmentée en 12 VLANs avec un firewall nftables deny-all par défaut. Chaque flux inter-VLAN est autorisé explicitement.
| VLAN | Nom | Usage |
|---|---|---|
| 10 | Management | PBS, Bastion, VMs NEBULA-CORE |
| 15 | Ops | Jenkins (isolé — surface d'attaque réduite) |
| 20 | Infrastructure | Pi-hole DNS, FreeRADIUS, Omada WiFi |
| 30 | Gateway/DMZ | Traefik, Authentik, CrowdSec, Cloudflared, Tailscale |
| 40 | Applications | Nextcloud, Gitea, Matrix, Firefly III, WikiJS |
| 50 | Media/IA | Ollama, Immich, RustDesk |
| 60 | SOC | Wazuh, Velociraptor, IRIS, MISP, Shuffle |
| 70 | IoT | Home Assistant |
| 71 | WiFi IoT | Devices IoT WiFi |
| 80 | Monitoring | Prometheus, Grafana |
| 90 | WiFi Trusted | WPA3-Enterprise 802.1X |
| 99 | WiFi Guest | Internet only, zéro accès LAN |
WiFi sécurisé¶
graph LR
DEV[Device WiFi] -->|802.1X EAP-TTLS| AP[Omada EAP770]
AP -->|RADIUS| FR[FreeRADIUS]
FR -->|LDAP| AK[Authentik]
AK -->|Auth OK| VLAN[VLAN 90 Trusted]
- WPA3-Enterprise sur le SSID Trusted — authentification par identifiant Authentik
- Certificat RADIUS Let's Encrypt valide (anti-MITM evil twin)
- 3 SSIDs : Trusted (VLAN 90), IoT (VLAN 71), Guest (VLAN 99)
Principes firewall¶
Deny-all par défaut
Les chains input et forward ont une policy drop. Tout ce qui n'est pas explicitement autorisé est bloqué et loggé.
ct state invalid→ drop immédiat- ICMP rate-limité (10/s, internes uniquement)
- Logs rate-limités (30/min) pour éviter les floods
- NAT masquerade pour l'accès Internet des VMs
- Config versionnée dans Gitea avec
nft --checkavant application