Points clés à retenir (TL;DR)
Synthèse exécutive- Le NAC 802.1X filaire authentifie chaque appareil au niveau du port du commutateur avant d'accorder tout acces reseau : seul le trafic EAPOL circule tant que l'authentification n'a pas reussi.
- L'identite de l'appareil repose sur un certificat machine EAP-TLS auto-enrole par GPO depuis votre PKI (ADCS), sans intervention de l'utilisateur.
- Le serveur RADIUS (NPS) valide le certificat puis retourne le VLAN cible via les attributs
Tunnel-Type,Tunnel-Medium-TypeetTunnel-Private-Group-Id: c'est l'affectation dynamique de VLAN. - Les appareils sans certificat (poste en provisionnement, visiteur, IoT) tombent sur un VLAN d'isolation via une politique de repli, ce qui bloque le balayage et l'espionnage du LAN de production.
- Toute la chaine (ports UDP 1812/1813, decisions RADIUS, chaine de confiance PKI) est supervisee dans un SIEM pour la conformite et la detection.

Le probleme qu’on resout
Dans la plupart des PME, un port de commutateur en mode access est cable en dur sur le VLAN de production. Consequence : quiconque branche un cable obtient immediatement une adresse DHCP sur le reseau interne, sans aucune authentification. Meme si un portail captif bloque l’acces Internet, il ne protege pas le LAN interne. Un appareil non autorise peut alors balayer le sous-reseau, ecouter le trafic de diffusion, tenter de l’empoisonnement de resolution de noms (LLMNR/NBT-NS) ou du relais SMB. En termes MITRE ATT&CK, on parle de decouverte reseau (T1046), de capture de trafic (T1040) et d’adversaire au milieu (T1557).
Les contournements evidents echouent : le filtrage par adresse MAC seul (MAB) se contourne par usurpation de MAC ; basculer manuellement un port d’un VLAN de provisionnement vers un VLAN de production ne passe pas a l’echelle sur plusieurs centaines de postes et introduit des erreurs humaines. La reponse industrielle est le controle d’acces reseau (NAC) par 802.1X, qui transforme chaque port en mini pare-feu base sur l’identite de l’appareil.
Comment ca marche
802.1X definit trois roles : le supplicant (le poste Windows via le service Wired AutoConfig, dot3svc), l’authenticator (le commutateur) et le serveur d’authentification (RADIUS/NPS adosse a Active Directory). Au branchement, le port reste unauthorized : seul le protocole EAPOL est autorise, aucun DHCP. Le commutateur emet un defi EAP-TLS ; le poste presente son certificat machine ; le commutateur relaie la demande au serveur RADIUS en paquet Access-Request.
Le serveur valide la signature du certificat contre l’autorite de certification racine de l’organisation, verifie son objet (FQDN de l’appareil) et l’appartenance au groupe AD attendu. S’il accepte, il renvoie un Access-Accept accompagne des attributs VLAN. Le port n’est jamais recable physiquement : c’est le VLAN runtime du port qui change selon le resultat.
- Appareil avec certificat valide (poste joint au domaine) : accepte, VLAN de production.
- Appareil sans certificat (poste en provisionnement) : politique de repli, VLAN d’onboarding isole.
- Appareil inconnu (visiteur, IoT) : VLAN visiteur restreint, eventuellement via MAB avec liste d’autorisation.
L’atout majeur : la PKI, le serveur RADIUS et les GPO sont souvent deja en place pour le 802.1X sans fil. On ajoute simplement la brique filaire par-dessus une infrastructure eprouvee.
Flux réseau et ports — rien n’est laissé au hasard
Vue d’ensemble des communications à autoriser entre les composants. C’est la carte à valider avec l’équipe réseau avant toute mise en production.
| Flux | Source → Destination | Protocole / Port | Rôle |
|---|---|---|---|
| Authentification 802.1X | Poste → Commutateur | EAPOL (L2, EtherType 0x888E) | Démarre la négociation ; seul EAPOL passe avant authentification |
| RADIUS — authentification | Commutateur (NAS) → Serveur NPS | UDP 1812 | Access-Request / Challenge / Accept ou Reject |
| RADIUS — comptabilité | Commutateur → Serveur NPS | UDP 1813 | Suivi des sessions (début/fin), traçabilité |
| Validation annuaire | NPS → Contrôleur de domaine (AD) | LDAP 389 / LDAPS 636, Kerberos 88 | Vérifie le compte, l’appartenance aux groupes et la chaîne NTAuth |
| Auto-enrôlement du certificat | Poste → Autorité de certification (ADCS) | RPC/DCOM (135 + plage dynamique) ou HTTPS 443 (NDES/SCEP) | Délivre le certificat machine utilisé pour l’authentification |
| Vérification de révocation | NPS et postes → Point de distribution CRL / OCSP | HTTP 80 (CRL) · HTTP 80 (OCSP) | Rejette un certificat révoqué |
| Affectation dynamique de VLAN | NPS → Commutateur | Attributs RADIUS : Tunnel-Type=13, Tunnel-Medium-Type=6, Tunnel-Private-Group-ID | Place l’appareil dans le bon VLAN (production, quarantaine…) |
| Supervision SIEM | Commutateurs, NPS, AD, ADCS → Collecteur SIEM | Syslog UDP 514, agents, Windows Event Forwarding | Centralise auth, échecs, changements de configuration |
Prerequis
- Une autorite de certification d’entreprise (ADCS) operationnelle et une racine de confiance distribuee aux postes.
- Un serveur NPS (role RADIUS) enregistre dans AD, avec droits d’administrateur local et d’administrateur de domaine delegues.
- Des commutateurs supportant 802.1X et l’affectation dynamique de VLAN (RFC 3580), avec acces SSH/console administrateur.
- Droits de creation/liaison de GPO sur l’unite d’organisation des ordinateurs.
- Un VLAN de production, un VLAN d’isolation/onboarding et, optionnellement, un VLAN visiteur deja definis cote reseau.
- Un commutateur pilote et 1 a 2 ports de test non critiques, plus 3 a 5 postes pilotes joints au domaine.
- Un collecteur SIEM capable de recevoir le syslog des commutateurs et les journaux d’evenements NPS.
Procedure
- Phase 0 — Preparation. Sauvegardez les GPO existantes et les configurations des commutateurs (
copy running-config). Selectionnez le materiel pilote. - Phase 1 — Modele de certificat (ADCS). Dupliquez le modele
Computer, nommez-le de maniere generique (ex. Org Computer Auth), fixez la crypto (RSA 2048/4096, SHA256, Key Storage Provider), le sujet construit depuis AD (CN = nom DNS, inclure DNS + SPN), la strategie d’application Client Authentication, et accordez Read + Enroll + Autoenroll au groupeDomain Computers. Publiez le modele viacertsrv.msc. - Phase 2 — GPO d’auto-enrolement. Creez une GPO liee a l’OU des ordinateurs activant Certificate Services Client – Auto-Enrollment (renouveler et mettre a jour les certificats).
- Phase 3 — GPO reseau filaire 802.1X. Configurez une politique Wired Network (IEEE 802.3) : authentification 802.1X, methode Smart Card or other certificate (EAP-TLS), mode Computer authentication, validation du certificat serveur avec votre racine, et demarrage automatique du service
dot3svc. - Phase 4 — Politiques NPS. Declarez les commutateurs comme clients RADIUS, creez une politique « filaire machine » (condition NAS Port Type = Ethernet + groupe
Domain Computers, EAP-TLS, attributs VLAN de production) et une politique de repli vers le VLAN d’isolation. Placez la politique specifique avant le repli. - Phase 5 — Commutateurs. Activez 802.1X globalement puis sur les ports pilotes, avec VLAN de repli si echec.
- Phase 6 — Tests de bout en bout. Poste avec certificat → VLAN prod ; poste sans certificat → VLAN isolation ; appareil etranger → isole.
- Phase 7 — Deploiement progressif. Elargissez port par port, etage par etage, site par site. Supervisez les journaux NPS et le syslog a chaque palier.
Le script
Le bloc suivant automatise cote Windows : modele de certificat, GPO d’auto-enrolement, declaration des clients RADIUS et verifications. Adaptez les valeurs generiques a votre environnement.
# ============================================================
# NAC 802.1X filaire - Automatisation cote Windows (ADCS/GPO/NPS)
# Valeurs GENERIQUES a adapter. A executer en administrateur.
# ============================================================
# --- Variables generiques ---
$DomainDN = "DC=exemple,DC=test"
$ComputersOU = "OU=Ordinateurs,$DomainDN"
$RootCAName = "Exemple Enterprise Root CA" # CN de votre racine
$NpsServerFQDN = "nps01.exemple.test" # FQDN du serveur RADIUS
$ProdVlanId = "20" # VLAN production
$FallbackVlanId = "990" # VLAN isolation/onboarding
# --- 1. Verifier la presence d'un certificat machine (sur un poste pilote) ---
# certutil -pulse declenche l'auto-enrolement immediat
certutil -pulse
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.Issuer -match [regex]::Escape($RootCAName) } |
Select-Object Subject, Issuer, NotAfter
# --- 2. Creer et lier la GPO d'auto-enrolement (sur un controleur de domaine) ---
Import-Module GroupPolicy
$gpoEnroll = New-GPO -Name "[SYS] Machine-Cert-AutoEnroll" -Comment "Auto-enrolement cert machine"
# L'activation des cles Public Key Policies se fait dans l'editeur GPO
# (Computer Config > Windows Settings > Security Settings > Public Key Policies).
# On lie la GPO a l'OU des ordinateurs :
New-GPLink -Name $gpoEnroll.DisplayName -Target $ComputersOU -LinkEnabled Yes
# --- 3. Creer la GPO reseau filaire 802.1X (coquille, reglages dans l'editeur) ---
$gpoWired = New-GPO -Name "[SYS] Wired-802.1X-EAP-TLS" -Comment "802.1X filaire EAP-TLS"
New-GPLink -Name $gpoWired.DisplayName -Target $ComputersOU -LinkEnabled Yes
# Dans l'editeur : Wired Network (IEEE 802.3) Policies > nouvelle politique
# - Enable IEEE 802.1X ; methode = Smart Card or other certificate (EAP-TLS)
# - Authentication Mode = Computer authentication
# - Validate server certificate ; Trusted Root CA = $RootCAName
# - Connect to these servers = $NpsServerFQDN
# Services : dot3svc (Wired AutoConfig) -> Startup = Automatic
# --- 4. Declarer les commutateurs comme clients RADIUS (sur le serveur NPS) ---
# Utiliser un secret RADIUS unique PAR equipement (coffre a secrets).
$switches = @(
@{ Name="sw-pilote-01"; Ip="192.0.2.10" },
@{ Name="sw-pilote-02"; Ip="192.0.2.11" }
)
foreach ($sw in $switches) {
$secret = Read-Host "Secret RADIUS pour $($sw.Name)" -AsSecureString
$plain = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret))
netsh nps add client name="$($sw.Name)" address="$($sw.Ip)" `
state=ENABLE sharedsecret="$plain" requireauthattr=NO
}
# --- 5. Enregistrer le NPS dans AD (si pas deja fait) ---
netsh nps add registeredserver
Write-Host "Rappel : creer dans nps.msc la politique 'Wired machine' (EAP-TLS," `
"NAS Port Type=Ethernet, groupe Domain Computers) renvoyant" `
"Tunnel-Type=13, Tunnel-Medium-Type=6, Tunnel-Private-Group-Id=$ProdVlanId" `
"puis la politique de repli vers VLAN $FallbackVlanId."
Cote commutateur (exemple generique type HP/Aruba, port pilote). Les attributs VLAN sont pousses par RADIUS ; le VLAN de repli s’applique en cas d’echec.
# --- Commutateur : activation 802.1X sur un port pilote (valeurs generiques) ---
config
radius-server host 192.0.2.50 key # IP du serveur NPS
aaa authentication port-access eap-radius
aaa port-access authenticator 24
aaa port-access authenticator 24 client-limit 3
aaa port-access authenticator 24 quiet-period 30
aaa port-access authenticator 24 tx-period 10
aaa port-access authenticator 24 unauth-vid 990 # VLAN isolation si echec
aaa port-access authenticator active
write mem
# Envoi du syslog vers le SIEM (supervision)
logging 192.0.2.60 # collecteur SIEM/syslog
logging severity info
Validation
Sur un poste pilote, verifiez le certificat, le service et l’etat 802.1X :
# Certificat machine present ?
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.Issuer -match 'Exemple Enterprise Root CA' }
# Service Wired AutoConfig actif ?
Get-Service dot3svc | Select-Object Name, Status, StartType
# Etat des interfaces et profils 802.1X
netsh lan show interfaces
netsh lan show profiles
Sur le commutateur, la session doit etre Authorized avec le bon VLAN :
show port-access authenticator 24
show authentication sessions interface 24
# Attendu : Auth Method = dot1x, Result = Authorized, VLAN = 20
Cote serveur, controlez les evenements NPS (observateur d’evenements > Custom Views > Server Roles > Network Policy and Access Services). Trois scenarios doivent se verifier : poste avec certificat → VLAN production ; poste sans certificat → VLAN isolation ; appareil etranger → isole (un balayage nmap du sous-reseau de production depuis cet appareil doit remonter zero hote joignable).
Plan de retour (rollback)
Le retour arriere est rapide et granulaire. Deliez d’abord la GPO filaire, puis desactivez 802.1X sur le ou les ports concernes, enfin desactivez la politique NPS.
# 1. Delier la GPO filaire (sur un controleur de domaine)
Set-GPLink -Name "[SYS] Wired-802.1X-EAP-TLS" `
-Target "OU=Ordinateurs,DC=exemple,DC=test" -LinkEnabled No
# 2. Desactiver 802.1X sur le port du commutateur
config
no aaa port-access authenticator 24
# En cas d'urgence generale :
# no aaa port-access authenticator active
write mem
# 3. Desactiver la politique reseau (nps.msc)
# Network Policies > politique filaire > clic droit > Disable
Conservez toujours un compte local break-glass et un VLAN de repli : un poste qui perd son certificat ou une panne RADIUS ne doit jamais isoler tout le site sans recours.
Depannage
| Symptome | Cause probable | Solution |
|---|---|---|
Le port reste unauthorized, pas de DHCP |
Pas de certificat machine ou dot3svc arrete | Lancer certutil -pulse, verifier Get-Service dot3svc et l’auto-enrolement GPO |
| Access-Reject cote NPS | Certificat hors chaine de confiance ou groupe AD manquant | Verifier la racine de confiance et l’appartenance a Domain Computers dans la condition de politique |
| Authentifie mais VLAN non applique | Attributs VLAN absents ou vendor incompatible | Confirmer Tunnel-Type=13, Tunnel-Medium-Type=6, Tunnel-Private-Group-Id et le support RFC 3580 du modele |
| Tous les ports basculent en VLAN de repli | Serveur RADIUS injoignable (UDP 1812) | Verifier connectivite/pare-feu, prevoir un NPS secondaire (HA) |
| Imprimante/IoT bloques | Appareil sans supplicant 802.1X | Activer MAB avec liste d’adresses MAC autorisees vers un VLAN dedie |
| Rien dans le SIEM | Syslog non configure ou port UDP 514 filtre | Verifier la cible logging, le pare-feu et l’ingestion du collecteur |
Securite, changement et bonnes pratiques
Utilisez un secret RADIUS unique par equipement, stocke dans un coffre a secrets, jamais en clair dans un depot. Appliquez le moindre privilege : les politiques NPS filtrent par groupe et par type de port (Ethernet) ; evitez les regles trop larges. Preferez une cle RSA 4096 et SHA256 pour les certificats, et validez systematiquement le certificat serveur cote supplicant pour contrer un faux RADIUS. Prevoyez la haute disponibilite du RADIUS (serveur secondaire) et une strategie claire en cas de panne (repli isolant plutot que fail-open, sauf exigence operationnelle contraire documentee).
Cote supervision, envoyez vers le SIEM : le syslog des commutateurs (sessions 802.1X, changements de VLAN), les evenements NPS (Access-Accept/Reject, methode EAP, identite), et les evenements PKI (emission/revocation de certificats). Ces flux permettent de detecter des tentatives d’acces non autorise (T1200, materiel ajoute) et des anomalies dans la chaine de confiance.
Cadrage ITIL. Ce deploiement est un changement normal a passer en CAB : il modifie le comportement d’authentification du reseau et touche potentiellement tous les postes. Documentez le plan de deploiement progressif, l’analyse de risque, le plan de retour et la fenetre de maintenance pour chaque palier (idealement hors heures de production pour l’activation sur un etage). Le test sur un commutateur pilote releve d’un changement a faible risque ; l’extension a un site complet exige l’approbation du comite. Rattachez tout incident d’acces consecutif a la gestion des incidents, et toute recurrence (par exemple des pannes d’auto-enrolement) a la gestion des problemes.
A retenir
Le NAC 802.1X filaire transforme chaque port de commutateur en point de controle base sur l’identite de l’appareil, sans action utilisateur grace au certificat machine auto-enrole. En reutilisant votre PKI, votre RADIUS et vos GPO, vous obtenez une affectation dynamique de VLAN, une isolation automatique des appareils non autorises et une tracabilite complete dans le SIEM. Commencez petit : un commutateur pilote, quelques ports, trois scenarios de test valides, un plan de retour eprouve. Etendez ensuite palier par palier sous controle du CAB. Preparez votre modele de certificat et votre premiere GPO des aujourd’hui, puis planifiez le pilote a votre prochaine fenetre de maintenance.