Enterprise-WLAN mit 802.1X und RADIUS: WPA2/WPA3-Enterprise und dynamische VLAN-Zuweisung
Schritt-für-Schritt-Anleitung für echtes Enterprise-WLAN: Windows NPS oder FreeRADIUS als RADIUS-Backend, PEAP vs. EAP-TLS, AD-Anbindung und die dynamische VLAN-Zuweisung per RADIUS-Attributen – inklusive Troubleshooting für NPS Reason Codes, Zertifikatsketten und MAB für Drucker.

Ein echtes Enterprise-WLAN verbindet drei Welten miteinander: das IEEE-802.1X-Portauthentifizierungsframework, ein RADIUS-Backend (Windows NPS oder FreeRADIUS) und dein bestehendes VLAN-Konzept auf dem Managed Switch. Das Ergebnis: Jeder Nutzer landet automatisch im richtigen VLAN – Mitarbeiter in VLAN 10, Gäste in VLAN 20, Drucker in VLAN 99 – ohne manuelle Konfiguration am Access Point. Diese Anleitung zeigt dir den vollständigen Aufbau vom RADIUS-Server bis zur GPO-gesteuerten Supplicant-Konfiguration, benennt die häufigsten Fallstricke und erklärt, warum dynamische VLAN-Zuweisung bei vielen Admins scheitert.
Voraussetzungen
- Windows Server 2019/2022/2025 (für NPS) oder Linux-Server mit FreeRADIUS 3.x
- Active Directory Domain Services mit Benutzer- und Computerkonten
- 802.1X-fähiger WLAN-Access-Point mit WPA2/WPA3-Enterprise und RADIUS-VLAN-Override
- Managed Switch mit konfigurierten VLANs und Trunk-Port zum AP (siehe VLANs verstehen und am Managed Switch einrichten)
- Active Directory Certificate Services (AD CS) für interne PKI, besonders bei EAP-TLS
- Server-Zertifikat für NPS (EKU: Server Authentication OID 1.3.6.1.5.5.7.3.1, FQDN im SAN)
- Shared Secret für RADIUS-Kommunikation (AP/Switch ↔ RADIUS, mindestens 22 Zeichen empfohlen)
- DHCP-Server mit separaten Scopes pro VLAN
Schritt 1: Architektur verstehen – Rollen und EAP-Methoden
Im 802.1X-Modell spielen drei Akteure zusammen: Der Supplicant (Windows-Client, Smartphone) initiiert die Authentifizierung. Der Authenticator (Access Point oder Switch) agiert als RADIUS-Client (NAS) und leitet EAP-Pakete zwischen Supplicant und Authentication Server weiter. Der Authentication Server – NPS oder FreeRADIUS – trifft die eigentliche Entscheidung und sendet Access-Accept oder Access-Reject zurück.
Die Wahl der EAP-Methode bestimmt den PKI-Aufwand erheblich:
| Merkmal | PEAP-MS-CHAPv2 | EAP-TLS |
|---|---|---|
| Authentifizierung | Benutzername + Passwort | Client- und Serverzertifikat |
| Serverzertifikat nötig | Ja (NPS) | Ja (NPS) |
| Client-Zertifikat nötig | Nein | Ja (per AD CS + GPO) |
| Sicherheitsniveau | Mittel | Hoch |
| Deployaufwand | Gering | Mittel–Hoch |
| WPA3-Enterprise 192-bit | Nicht unterstützt | Pflicht (EAP-TLS + TLS 1.2+) |
| Passwort-Diebstahl möglich | Ja (bei schwachem Zertifikat) | Nein |
Empfehlung für KMU: Starte mit PEAP-MS-CHAPv2 für schnellen Rollout, migriere zu EAP-TLS sobald AD CS produktionsreif ist. WPA3-Enterprise 192-bit (Suite B) erfordert zwingend EAP-TLS, ECDHE+ECDSA P-384 und eine durchgehend P-384-basierte Zertifikatskette – Mischung mit P-256 im Pfad führt zu Authentifizierungsfehlern.
Schritt 2: Windows NPS installieren und konfigurieren
NPS ist eine Windows-Server-Rolle und der empfohlene RADIUS-Server für AD-integrierte Umgebungen. Installiere sie per PowerShell:
# NPS-Rolle installieren (Windows Server 2019/2022/2025)
Install-WindowsFeature NPAS -IncludeManagementTools
# NPS-Konsole öffnen
nps.msc
# NPS-Auditing aktivieren (PFLICHT für Diagnose!)
auditpol /set /subcategory:"Network Policy Server" /success:enable /failure:enable
# NPS-Dienst neu starten
Restart-Service IAS
Registriere den NPS-Server anschließend in Active Directory (NPS-Konsole → Rechtsklick auf „NPS (Lokal)" → „Server in Active Directory registrieren"). Das ist notwendig, damit NPS Benutzerkonten lesen und Authentifizierungsergebnisse schreiben darf.
RADIUS-Client (Access Point) hinzufügen
# AP als RADIUS-Client registrieren (netsh)
netsh nps add client friendlyname="AP-Eingang" ipaddress=192.168.1.10 sharedsecret="S3cur3Secr3t!"
# Alle konfigurierten RADIUS-Clients anzeigen
netsh nps show client
Alternativ über die NPS-MMC: RADIUS-Clients und -Server → RADIUS-Clients → Neu. Trage IP-Adresse des AP, Anzeigename und das Shared Secret ein. Achte auf exaktes Shared Secret – Case-sensitive, Sonderzeichen je nach AP-Firmware kritisch.
Netzwerkrichtlinien für WPA2/WPA3-Enterprise anlegen
Erstelle zwei separate Netzwerkrichtlinien: eine für 802.1X (höhere Priorität) und eine für MAB (niedrigere Priorität). In der 802.1X-Richtlinie:
- Bedingungen: Windows-Gruppe = „Domänen-Benutzer" oder spezifische AD-Gruppe
- EAP-Typen: PEAP (mit MS-CHAPv2) oder EAP-TLS
- RADIUS-Attribute (Einstellungen): Tunnel-Type, Tunnel-Medium-Type, Tunnel-Private-Group-Id (siehe Schritt 4)
Schritt 3: FreeRADIUS 3.x als Alternative installieren
FreeRADIUS läuft auf Linux und unterstützt TLS 1.3 – ein entscheidender Vorteil gegenüber NPS bei Windows-11-Clients (dazu mehr im Troubleshooting). Installiere FreeRADIUS auf Debian/Ubuntu:
# FreeRADIUS mit LDAP- und Utility-Paketen installieren
apt-get install freeradius freeradius-ldap freeradius-utils
# Dienst aktivieren und starten
systemctl enable freeradius
systemctl start freeradius
# WICHTIG: Debug-Modus für erste Tests nutzen
systemctl stop freeradius
freeradius -X
Der Debug-Modus (freeradius -X) gibt jede Authentifizierungsanfrage im Klartext aus – unverzichtbar beim Einrichten. Im Produktionsbetrieb wieder als Dienst starten.
AP als RADIUS-Client in FreeRADIUS eintragen
# /etc/freeradius/3.0/clients.conf
client ap-buero {
ipaddr = 192.168.1.10
secret = S3cur3Secr3t!
shortname = ap-buero
nas_type = other
}
LDAP-Anbindung an Active Directory
# /etc/freeradius/3.0/mods-enabled/ldap
ldap {
server = 'dc01.firma.local'
identity = 'CN=freeradius-svc,OU=Service,DC=firma,DC=local'
password = ServicePasswort
base_dn = 'DC=firma,DC=local'
filter = '(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})'
group {
base_dn = ${..base_dn}
filter = '(objectClass=group)'
membership_attribute = 'memberOf'
}
tls {
start_tls = yes
}
}
Wichtig: Der Filter verwendet %{Stripped-User-Name} – das entfernt den Domänenanteil aus DOMAIN\User oder user@domain.com automatisch. Mit %{User-Name} schlägt die AD-Suche bei Domänen-Präfix fehl.
EAP-Konfiguration (PEAP + TLS)
# /etc/freeradius/3.0/mods-enabled/eap
eap {
default_eap_type = tls
timer_expire = 60
tls-config tls-common {
private_key_password = changeme
private_key_file = ${certdir}/server.key
certificate_file = ${certdir}/server.crt
ca_file = ${cadir}/ca.crt
ca_path = ${cadir}
dh_file = ${certdir}/dh
fragment_size = 1024
include_length = yes
check_crl = yes
cipher_list = "DEFAULT@SECLEVEL=2"
tls_min_version = "1.2"
}
tls {
tls = tls-common
}
peap {
tls = tls-common
default_eap_type = mschapv2
copy_request_to_tunnel = yes
use_tunneled_reply = yes
}
}
Schritt 4: Dynamische VLAN-Zuweisung konfigurieren – der kritische Teil
Hier scheitern die meisten Admins. Die dynamische VLAN-Zuweisung erfordert exakt drei RADIUS-Attribute im Access-Accept-Paket, definiert in RFC 2868:
| Attribut | Nr. | Wert | Bedeutung |
|---|---|---|---|
| Tunnel-Type | 64 | 13 | VLAN |
| Tunnel-Medium-Type | 65 | 6 | IEEE 802 (Ethernet) |
| Tunnel-Private-Group-Id | 81 | „10" (String!) | VLAN-ID |
Kritischer Fallstrick: Das Attribut Tunnel-Private-Group-Id muss als String übergeben werden – nicht als Integer. Viele Admins tragen die VLAN-ID als Zahl ein; der AP/Switch ignoriert das Attribut dann stillschweigend und nutzt das Standard-VLAN. Das Tag-Feld muss auf 0 oder ungesetzt bleiben.
NPS: VLAN-Attribute in der Netzwerkrichtlinie
# NPS-Richtlinie per XML sichern/wiederherstellen
netsh nps export filename="C:\nps-backup.xml" exportPSK=YES
netsh nps import filename="C:\nps-backup.xml"
# In der NPS-Konsole (nps.msc) unter der Netzwerkrichtlinie:
# Registerkarte "Einstellungen" > RADIUS-Attribute > Standard
# Folgende Attribute hinzufügen:
# Tunnel-Type = 13 (Virtual LANs / VLAN)
# Tunnel-Medium-Type = 6 (802 includes all 802 media plus Ethernet canonical format)
# Tunnel-Private-Group-Id = 10 (als String eingeben!)
FreeRADIUS: VLAN-Zuweisung in der users-Datei
# /etc/freeradius/3.0/users
# Einzelner Benutzer mit VLAN 10
mustermann Cleartext-Password := "Passw0rt!"
Service-Type := Framed-User,
Tunnel-Type := VLAN,
Tunnel-Medium-Type := IEEE-802,
Tunnel-Private-Group-Id := "10"
# DEFAULT-Fallback: Alle AD-authentifizierten User -> VLAN 20
DEFAULT Auth-Type := MS-CHAP
Tunnel-Type := VLAN,
Tunnel-Medium-Type := IEEE-802,
Tunnel-Private-Group-Id := "20"
authorize-Block-Reihenfolge in FreeRADIUS
# /etc/freeradius/3.0/sites-enabled/default
# KRITISCH: files-Modul MUSS vor eap stehen!
authorize {
filter_username
preprocess
files # <-- VOR eap! Sonst keine VLAN-Attribute im Access-Accept
eap {
ok = return
}
mschap
pap
}
Wenn eap zuerst ausgeführt wird, werden die statischen VLAN-Attribute aus der users-Datei nicht in den Access-Accept übernommen. Authentifizierung klappt, VLAN-Zuweisung nicht – ein schwer zu findender Fehler.
Schritt 5: GPO-WLAN-Profil deployen
Damit Windows-Clients automatisch das korrekte 802.1X-Profil erhalten, deployst du es per Gruppenrichtlinie. Details zum GPO-Einsatz findest du in der Anleitung Gruppenrichtlinien (GPO): Grundlagen und Praxis.
# WLAN-Profil als XML exportieren (auf einem bereits konfigurierten Client)
netsh wlan export profile name="Firmen-WLAN" folder=C:\WLAN-Profile
GPO-Pfad: Computerkonfiguration → Richtlinien → Windows-Einstellungen → Sicherheitseinstellungen → WLAN-Richtlinien (IEEE 802.11)
Beim Anlegen des Profils in der GPO unbedingt beachten:
- SSID exakt eintragen (Groß-/Kleinschreibung)
- WPA2-Enterprise oder WPA3-Enterprise wählen
- EAP-Typ: PEAP oder EAP-TLS
- Unter „Erweiterte Einstellungen": Interne Root-CA als vertrauenswürdig markieren und NPS-FQDN für Server-Name-Validation eintragen
- Bei EAP-TLS: Root-CA-Thumbprint explizit angeben (Windows 11 Pflicht ab 22H2)
Die GPO greift auf alle Computerobjekte in der verknüpften OU automatisch nach dem nächsten GP-Refresh. Für EAP-TLS-Rollout zusätzlich das Auto-Enrollment für Computerzertifikate aktivieren: Computerkonfiguration → Richtlinien → Windows-Einstellungen → Sicherheitseinstellungen → Richtlinien für öffentliche Schlüssel → Automatische Zertifikatanforderungseinstellungen.
Schritt 6: MAB für Drucker und IoT-Geräte
Drucker, Kameras und andere IoT-Geräte ohne 802.1X-Supplicant authentifizierst du per MAC Authentication Bypass (MAB). Der Switch wartet kurz auf eine EAP-Antwort; bleibt sie aus, sendet er die MAC-Adresse des Geräts als RADIUS-Anfrage (Username = MAC, Password = MAC per PAP).
# /etc/freeradius/3.0/users
# Drucker mit MAC aa:bb:cc:dd:ee:ff -> VLAN 99 (Drucker-VLAN)
aabbccddeeff Cleartext-Password := "aabbccddeeff"
Service-Type := Call-Check,
Tunnel-Type := VLAN,
Tunnel-Medium-Type := IEEE-802,
Tunnel-Private-Group-Id := "99"
In NPS musst du für die MAB-Netzwerkrichtlinie PAP als Authentifizierungsmethode explizit erlauben – sonst lehnt NPS MAB-Anfragen ab. Die 802.1X-Richtlinie muss in der Reihenfolge eine höhere Priorität haben als die MAB-Richtlinie.
Troubleshooting / Typische Fehler
- NPS Reason Code 22 (EAP-Aushandlung gescheitert): Häufigste Ursache bei Windows-11-Clients. Prüfe: (1) Root-CA-Thumbprint im WLAN-Profil eingetragen? (2) Serverzertifikat abgelaufen? (3) TLS-1.3-Problem (Windows 11 ab 22H2 nutzt standardmäßig TLS 1.3, NPS unterstützt kein TLS 1.3). Diagnose: CAPI2-Log aktivieren mit
wevtutil sl Microsoft-Windows-CAPI2/Operational /e:true, danach erneut verbinden und CAPI2-Events auf Event-ID 11 prüfen. - TLS 1.3 vs. NPS: Windows 11 ab 22H2 verwendet TLS 1.3 standardmäßig für PEAP/EAP-TTLS. NPS (alle Versionen inkl. Windows Server 2025) unterstützt TLS 1.3 nicht. Symptom: Sporadische Authentifizierungsfehler. Lösung: TLS 1.3 für EAP auf dem NPS-Server per Registry deaktivieren oder auf FreeRADIUS migrieren.
- VLAN-Zuweisung trotz erfolgreicher Authentifizierung ignoriert: Prüfe mit Wireshark, ob alle drei Tunnel-Attribute im Access-Accept vorhanden sind und
Tunnel-Private-Group-Idals String übertragen wird. Außerdem: Ist der AP/Switch für RADIUS-VLAN-Override konfiguriert? Existiert das VLAN auf dem Switch/AP-Trunk-Port? - files-Modul nach eap in FreeRADIUS: Authentifizierung erfolgreich, aber kein VLAN. Lösung:
filesimauthorize-Block voreapplatzieren. - EAP-TLS: Unvollständige Zertifikatskette: NPS muss das komplette Serverzertifikat inklusive aller Intermediate-CAs senden. Fehlt ein Intermediate, schlägt die Client-Validierung fehl (CAPI2-Event 11 „Certificate chain could not be built"). Lösung: Intermediate-CA-Zertifikate im Windows-Zertifikatsspeicher unter „Zwischenzertifizierungsstellen" hinterlegen.
- Reason Code 16 (Falsche Anmeldedaten): Bei EAP-TLS oft: Client-Zertifikat fehlt oder ungültig. Prüfen mit
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, EnhancedKeyUsageList, NotAfter. - RADIUS Shared Secret Mismatch: Keine NPS-Events im Eventlog, AP meldet „RADIUS Timeout". Prüfen:
netsh nps show clientund AP-Konfiguration vergleichen. Case-sensitive! - FreeRADIUS AD-Suche schlägt fehl: „User not found" bei Benutzernamen im Format
DOMAIN\User. Lösung:%{Stripped-User-Name}statt%{User-Name}im LDAP-Filter verwenden. - NPS-Audit nicht aktiviert: Ohne Auditpol-Befehl erscheinen keine Events 6272/6273 im Security-Log.
- WPA3-Enterprise 192-bit Zertifikatskette: Root-CA, Intermediate-CA und Leaf-Zertifikat müssen durchgehend P-384 verwenden. Mischung mit P-256 führt zu Authentifizierungsfehlern.
Häufige Fragen
Was ist der Unterschied zwischen PEAP-MS-CHAPv2 und EAP-TLS?
PEAP-MS-CHAPv2 authentifiziert per Benutzername und Passwort (AD-Credentials) und benötigt nur ein Serverzertifikat auf dem NPS. Das ist einfacher zu deployen, aber anfällig für Passwort-Angriffe. EAP-TLS nutzt gegenseitige Zertifikatsauthentifizierung – Client- und Serverzertifikat – und ist deutlich sicherer, da kein Passwort über das Netz geht. EAP-TLS erfordert eine PKI (AD CS) und Zertifikatsverteilung per GPO. Für WPA3-Enterprise 192-bit-Modus ist EAP-TLS verpflichtend.
Warum funktioniert die dynamische VLAN-Zuweisung nach erfolgreicher Authentifizierung nicht?
Die häufigsten Ursachen: (1) Tunnel-Private-Group-Id als Integer statt String konfiguriert. (2) files-Modul steht in FreeRADIUS nach eap im authorize-Block. (3) Der AP/Switch ist nicht für RADIUS-VLAN-Override konfiguriert – das ist eine separate Einstellung im AP, nicht automatisch aktiv. (4) Das VLAN existiert nicht auf dem Switch/AP-Trunk-Port. Wireshark-Mitschnitt am RADIUS-Port zeigt, ob alle drei Tunnel-Attribute im Access-Accept vorhanden sind.
NPS-Eventlog zeigt Reason Code 22 – was tun?
Reason Code 22 bedeutet „EAP-Typ konnte nicht ausgehandelt werden". Vorgehen: CAPI2-Log aktivieren (wevtutil sl Microsoft-Windows-CAPI2/Operational /e:true), erneut verbinden und CAPI2-Events auf Zertifikatsfehler prüfen. Außerdem: Serverzertifikat gültig (certlm.msc)? Root-CA-Thumbprint im WLAN-GPO-Profil eingetragen? TLS-1.3-Kompatibilitätsproblem (Windows 11 22H2+ vs. NPS)?
Wie authentifiziere ich Drucker und IoT-Geräte ohne 802.1X-Unterstützung?
Per MAC Authentication Bypass (MAB): Der Switch wartet kurz auf EAP-Antwort; bleibt sie aus, sendet er die MAC-Adresse als RADIUS Access-Request (Username = MAC, Passwort = MAC per PAP). In FreeRADIUS trägst du die MAC in /etc/freeradius/3.0/users mit zugehörigem VLAN ein (Format ohne Trennzeichen: aabbccddeeff). Verwende ein separates Drucker-VLAN mit strikter Firewall-Regel – MAB bietet keine echte Authentifizierung, nur MAC-Whitelisting.
Kann ich NPS und FreeRADIUS parallel betreiben?
Ja. Trage im AP/Switch zwei RADIUS-Server ein (Primary = NPS, Secondary = FreeRADIUS). Switchover erfolgt automatisch bei Timeout. NPS kann auch als RADIUS-Proxy konfiguriert werden und Anfragen an FreeRADIUS weiterleiten. Für Hochverfügbarkeit empfiehlt sich ein zweiter NPS-Server als Secondary-RADIUS – beide in der Domäne registriert.
Wie deploye ich das WLAN-Supplicant-Profil per GPO?
In der Gruppenrichtlinienverwaltung (gpmc.msc): Computerkonfiguration → Richtlinien → Windows-Einstellungen → Sicherheitseinstellungen → WLAN-Richtlinien (IEEE 802.11) → Neue Richtlinie. SSID eingeben, WPA2- oder WPA3-Enterprise wählen, EAP-Typ konfigurieren, unter „Erweiterte Einstellungen" die interne Root-CA als vertrauenswürdig markieren und den NPS-FQDN für Server-Name-Validation eintragen. GPO auf OU mit Computerobjekten anwenden.
Fazit
Enterprise-WLAN mit 802.1X ist kein Hexenwerk, wenn man die Fallstricke kennt. NPS eignet sich ideal für reine Windows/AD-Umgebungen – der Deployaufwand ist gering, die AD-Integration nativ. FreeRADIUS ist die flexiblere Wahl, vor allem wegen TLS-1.3-Unterstützung und besserer Erweiterbarkeit. Die dynamische VLAN-Zuweisung scheitert in der Praxis fast immer an einem der drei Punkte: falscher Attributtyp, falsche Modulreihenfolge in FreeRADIUS oder fehlender VLAN-Override-Konfiguration am AP. Für Windows-11-Clients ist das Root-CA-Thumbprint im GPO-Profil seit 22H2 Pflicht. Wer EAP-TLS anstrebt, sollte AD CS und Auto-Enrollment von Anfang an planen – das Nachmigrieren ist aufwändig. Die Kombination aus VLAN-Segmentierung am Managed Switch und 802.1X-basierter RADIUS-Authentifizierung bildet das Fundament für ein Zero-Trust-nahes Netzwerkdesign.
Weiterführende Anleitungen und Quellen
- VLANs verstehen und am Managed Switch einrichten – Grundlage für VLAN-Segmentierung und Trunk-Konfiguration
- Active Directory Domäne einrichten: Benutzer und OUs – AD-Grundkonfiguration als Voraussetzung für NPS-Integration
- Gruppenrichtlinien (GPO): Grundlagen und Praxis – GPO-Deployment für WLAN-Profile und Zertifikats-Auto-Enrollment
- pfSense/OPNsense Firewall: Erstkonfiguration – Inter-VLAN-Routing und Firewall-Regeln zwischen WLAN-VLANs
Quellen: Microsoft Learn: Deploy Password-Based 802.1X Authenticated Wireless Access; Microsoft Learn: EAP – What's changed in Windows 11; Microsoft Learn: 802.1X Authentication Issues Troubleshooting; Informatec Digital: 802.1X FreeRADIUS and Dynamic VLANs; NetworkGuy.de: 802.1X/MAC-Auth and dynamic VLAN assignment; Bovenkamp.us: NPS 802.1X Reason Codes (2025); SecureW2: EAP Method Requirements for WPA3-Enterprise.