Windows: Wireless LAN, 802.1x und NPS

Volker schrieb mich im Rahmen meiner rent-an-admin-Seite an, da er Probleme damit hatte, ein WLAN mit 802.1x-Authentifizerung zum Laufen zu bringen.

Ich muss gestehen, das war bislang nicht mein Lieblingsthema, hatte ich doch vor Jahren mit Windows Server 2003 diesbezüglich mal anständig ins Klo gegriffen. Soviel Ehrlichkeit muss sein.

Aber es hilft ja nichts, da muss man durch. Also mit Windows Server 2008 R2 einen neuen Versuch gestartet.

So einfach und überschaubar so manche Anleitung im Netz zu diesem Thema ist, so trivial ist das Thema leider nicht. Es gibt ein paar Stolpersteine und auch ein paar Merkwürdigkeiten.

Ich bin nicht der Erste, der exakt die gleichen Konfigurationsschritte mehrfach durchführte und plötzlich lief es.

Auch zeigte sich, das nicht jedes Gerät einwandfrei arbeitet. Bei Volker handelte es sich um einen Netgear WG602 mit DD-WRT Firmware und auf meiner Seite kamen sowohl ein Netgear DGN2000B als auch ein LevelOne WBR-3600 zum Einsatz.

Soviel zur Einleitung. Anbei meine gesammelten Erfahrungen und Informationen zum Thema.

Voraussetzungen

  • Einen Domänencontroller (min. Windows Server 2003) mit Domänenfunktionsebene „Windows Server 2003“.
  • DNS- und DHCP-Server.
  • Eine (Unternehmens-)Zertifizierungsstelle (eigenständig soll wohl auch gehen, aber dann ist mehr Handarbeit angesagt).
  • Einen IAS-Server (Windows Server 2003) oder NPS (Network Policy Server, Windows Server 2008/R2).
  • Einen 802.1x-kompatiblen Wireless LAN Access Point/Router.

Ob nun die Standard oder Enterprise-Version des Windows-Servers für die CA oder NPS zum Einsatz kommen soll oder muss, hängt von den eigenen Anforderungen ab. Welche Einschränkungen es beim NPS zwischen den Versionen gibt, findet man z.B. hier. Die Unterschiede der Zertifizierungsstelle bei den einzelnen Windows-Versionen sind hier aufgelistet.

Eines Vorweg, bei der Standard-Edition sind „nur“ maximal 50 RADIUS-Clients, d.h. in diesem Beispiel Wireless LAN Access Points möglich. Eine Nutzer-Beschränkung gibt es soweit ich weiss nicht.

Für meine Testumgebung habe ich zunächst alles (AD, DNS, DHCP, CA, NPS) auf einen Windows Server 2008 R2 Enterprise installiert. Später kam noch ein Memberserver für einen weiteren NPS dazu.

Zur Sicherheit das alle hier aufgezeigten Konfigurationsschritte funktionieren, habe ich zusätzlich eine komplette Neuinstallation mit Windows Server 2008 R2 Standard durchgeführt.

Prinzipiell funktioniert diese Vorgehensweise. Microsoft empfiehlt im TechNet aus Performancegründen die Installation des NPS auf einem Domänencontroller.

Selbstverständlich kann man auch alle Rollen sauber trennen und auf einzelnen Servern installieren.

Die Installation der einzelnen Rollen ist zunächst kein Problem. Tricky wird es dann erst bei der Konfiguration bzw. den Überraschungen die dabei auftauchen.

Konfiguration der Active Directory Zertifikatdienste

Nach erfolgter Installation der Active Directory-Zertifikatdienste, existiert zunächst nur das CA-Zertifikat. Für die Authentifizierung via 802.1x im Wireless LAN soll PEAP zum Einsatz kommen. Das bedeutet, der NPS muss der Zertifizierungsstelle vertrauen und benötigt ein eigenes Zertifikat und der Client (Windows 7 Professional) muss ebenfalls der CA vertrauen.

Zunächst muss die Zertifizierungsstelle vorbereitet werden. An dieser Stelle gibt es mehrere Möglichkeiten. Welche Möglichkeit gewählt wird, hängt unter anderem davon ab, ob der NPS auf einem DC oder auf einem Memberserver installiert ist und ob die Zertifikate automatisch verteilt werden oder manuell.

Folgender Schritt ist relevant für die automatische Zertifikatverteilung:

Bevor die Zertifikatvorlage „zugeteilt“ wird, muss die Berechtigung „Automatisch Registrieren“ gesetzt werden.

  • Den „Server-Manager“ öffnen.
  • Zu „Rollen – Active Directory-Zertifikatdienste – Unternehmens-PKI – Zertifikatvorlagen“ wechseln.
  • Nun die „RAS- und IAS-Server“-Vorlage doppelt anklicken und auf der Registerkarte „Sicherheit“ für „RAS- und IAS-Server“ die Berechtigung „Automatisch registrieren“ setzen.

oder

  • Alternativ kann man die „RAS- und IAS-Server“-Vorlage mit der rechten Maustaste anklicken und „Doppelte Vorlage“ auswählen. Auf diese Weise kann man eine Kopie der Vorlage der Anforderung entsprechend konfigurieren. Dies entspricht dem offiziellen Weg der im TechNet dokumentiert ist.

Damit die automatische Zertifikatverteilung klappt, muss der NPS in der Gruppe „RAS- und IAS-Server“ sein.

Auszustellende Zertifikatvorlage hinzufügen

  • Mit der rechten Maustaste auf „Server-Manager – Rollen – Active Directory Zertifikatdienste – NAME DER CA – Zertifikatvorlagen“ klicken und „Neu – Auszustellende Zertifikatvorlage“ auswählen.
  • Nun die Vorlage „RAS- und IAS-Server“ oder im Falle einer „Doppelten Vorlage“ die entsprechende Vorlage auswählen und hinzufügen.

Manuelle Zertifikatanforderung

Nutzt man keine automatische Zertifikatverteilung, muss das Zertifikat für den NPS manuell über das „Zertifikate – Lokaler Computer“-Snap-In in einer MMC angefordert werden.

Vorsicht Falle „Certificate Autoenrollment“: Nutzt man die automatische Zertifikatverteilung, dann werden manuell erstellte Zertifikate aus dem Zertifikatspeicher entfernt, sofern die GPO-Einstellung

„Computer- bzw. Benutzerkonfiguration – Richtlinien – Windows-Einstellungen – Richtlinien für öffentliche Schlüssel – Zertifikatdienstclient – Automatische Registrierung“ – „Zertifikate, die Zertifikatvorlagen verwenden, aktualisieren“

aktiviert ist. Das Entfernen geschieht immer dann, wenn keine passende Vorlage vorhanden ist.

Vorsicht Falle „Domänencontrollerauthentifizierung“: Verwendet man statt des „RAS- und IAS-Server“-Zertifikats bzw. die entsprechende Vorlage, dann greift das Computerzertifikat. Bei einem Memberserver ist das kein Problem. Bei einem Domänencontroller kann das Zertifikat aber nicht im NPS verwendet werden. Es wird noch nicht einmal angezeigt. Abhilfe schafft das ändern der Zertifikatvorlage „Domänencontrollerauthentifizierung“.

Da man die Original-Vorlage nicht direkt ändern kann, muss man Diese zunächst aus der Zertifizierungsstelle löschen.

Nun wählt man die Original-Vorlage aus, klickt Sie mit der rechten Maustaste an und wählt „Doppelte Vorlage“.

Nun stellt man die erweiterten Eigenschaften ein („Windows Server 2003 Enterprise“ oder „Windows Server 2008 Enterprise“), vergibt einen Namen für die Vorlage und konfiguriert auf der Registerkarte „Antragstellername“ das „Format des Antragstellernamens“. Im Original steht dort „Keine“. Damit das auf Basis dieser Vorlage ausgestellte Zertifikat im NPS verwendet werden kann, muss an dieser Stelle „Allgemeiner Name“ konfiguriert werden. Dies entspricht im übrigen der Einstellung der „RAS- und IAS-Server“-Vorlage.

Damit die Zertifizierungsstelle die neue Vorlage verwendet, muss man mit der rechten Maustaste „Zertifikatvorlagen“ anklicken. Anschließend auf „Neu“ und „Auszustellende Zertifikatvorlage“ anklicken.

Nun wählt man die entsprechende Vorlage aus.

Ab jetzt klappt es auch mit dem Domänencontrollerzertifikat.

Netzwerkrichtlinienserver (NPS) konfigurieren

Der NPS muss im Active Directory registriert sein (Rechte Maustaste auf „NPS (Lokal)“ und „Server in Active Directory registrieren“ anklicken).

Dank eines Assistenten ist die Konfiguration schnell und einfach erledigt. Um die Konfiguration durchzuführen wie folgt vorgehen:

  • „Server-Manager – Rollen – Netzwerkrichtlinen- und Zugriffsdienste – NPS (Lokal)“ anklicken.
  • Bei „Standardkonfiguration“ „RADIUS-Server für drahtlose oder verkabelte 802.1X-Verbindungen“ auswählen und auf „802.1X konfigurieren“ anklicken.

Im ersten Schritt konfiguriert man, das man „Sichere Drahtloseverbindungen“ einrichten möchte und vergibt einen Namen für die Richtlinien.

Nun muss der RADIUS-Client, damit ist der Access Point gemeint, hinzugefügt werden.

Wichtig ist der gemeinsame geheime Schlüssel. Dieser kann manuell oder automatisch generiert werden. Dieser Schlüssel muss auch in der Konfiguration des Access Points eingetragen werden.

Achtung: Je nach Access Point kann es Probleme mit der Länge des Schlüssels geben.

An dieser Stelle wird die Authentifizierung konfiguriert. In diesem Fall wird „Microsoft: Geschütztes EAP (PEAP)“ mit „Gesichtertes Kennwort (EAP-MSCHAP v2)“ verwendet. Die Konfiguration für EAP-TLS und PEAP-TLS wird weiter unten gezeigt.

Klickt man auf den Button „Konfigurieren…“ sollte man das zuvor erstellte Zertifikat sehen.

Im nächsten Schritt gibt man die Computer- und Benutzergruppen an, die Zugriffsberechtigt sein sollen.

Ggf. kann man im nächsten Dialog noch weitere Parameter für RADIUS konfigurieren. Nach einer Zusammenfassung ist der Assistent abgeschlossen.

Kurioses: Gelegentlich kommt es vor, das der Assistent den RADIUS-Client doppelt mit identischer Konfiguration anlegt oder es sogar nur ein Anzeigefehler ist. Ferner ist es bei mir mehrfach aufgetreten, das beim Hinzufügen der Benutzergruppen zuerst eine Fehlermeldung erschien mit der Meldung, das keine Domäne zur Verfügung stände. Wenn man diese Meldung bestätigt, wird die Benutzergruppe dennoch hinzugefügt. Es scheint als laufe der Assistent manchmal gegen die Wand.

NPS-Konfiguration für EAP-TLS und PEAP-TLS

Beide Varianten setzen Computer- und Benutzerzertifikate voraus. Empfohlen ist die Nutzung der automatischen Zertifikatverteilung (Certificate Autoenrollment).

Im Grunde muss man beim NPS nur die Netzwerkrichtlinie ändern und die Client-Konfiguration anpassen.

EAP-TLS

PEAP-TLS

Welche Authentifizerungsmethode verwendet wird hängt vom jeweils geforderten Sicherheitslevel als auch der Geräte und Clients ab.

Access Point konfigurieren

Die Konfiguration ist je nach Hersteller und Gerät unterschiedlich.

Es müssen mindestens folgende Einstellungen vorgenommen werden:

  • SSID.
  • WPA2-Enterprise oder WPA-802.1X.
  • RADIUS-Server-IP/Name (hier muss die IP-Adresse oder der Name des NPS angegeben werden).
  • Ggf. muss auch der RADIUS-Server-Port (Standard 1812) konfiguriert werden.
  • Gemeinsamer geheimer Schlüssel (Muss mit dem Schlüssel auf dem NPS übereinstimmen. Wird auch shared key oder shared secret genannt).

WLAN-Client konfigurieren

Je nach verwendeter Authentifizierung, muss entsprechend der WLAN-Client konfiguriert werden.

Man kann die WLAN-Konfiguration mittels Gruppenrichtlinien oder Skript verteilen. In diesem Fall wird sie aber manuell vorgenommen.

Am Beispiel von Windows 7 kann man im „Netzwerk- und Freigabecenter“ die „Drahtlosnetzwerke verwalten“.

Dort kann man manuell ein neues Profil hinzufügen.

Nachdem man die grundlegende Konfiguration vom Netzwerknamen (SSID) und Verschlüsselung (WPA…) vorgenommen hat, kann man weitere Einstellungen vornehmen.

Für die Authentifizierung ist dann die Registerkarte „Sicherheit“ interessant, denn dort werden alle notwendigen Angaben vorgenommen.

Unter Umständen muss ein Zertifikat importiert werden. Wie bereits erwähnt, hängt das aber von der Art der Authentifizierung als auch von der Konfiguration ab.

Troubleshooting

Wie anfangs erwähnt, funktionieren nicht alle Geräte einwandfrei. Von meinen beiden Testgeräten arbeitete zwar der Netgear DGN2000B einwandfrei, aber dafür kann das Gerät nur WPA-Enterprise. Volker’s Netgear WG602 mit DD-WRT und mein LevelOne WBR-3600 können zwar beide WPA2-Enterprise, aber im Fall des LevelOne nur in der Theorie. Soll heißen: Mal funktionierte WAP2-Enterprise, mal nicht.

Gemein haben alle drei Geräte, das Sie mit WPA2-PSK einwandfrei laufen. Zugegeben, es handelt sich nur um Consumer-Geräte. Ärgerlich ist es dennoch.

Volker ist sogar noch über ein ganz anderes Problem gestossen. Ich konnte das ebenfalls mit dem LevelOne nachvollziehen.

Das Problem

Versucht man zuerst direkt das WLAN zu verbinden, scheitert dies an der Konfiguration. Legt man dann das WLAN-Profil an, funktioniert die Verbindung dennoch nicht.

Auf dem Client (Windows 7) finden sich im Ereignisprotokoll unter

"Anwendungs- und Dienstprotokolle - Microsoft - Windows - WLAN-AutoConfig - Betriebsbereit"

folgende Fehlermeldungen:

Protokollname: Microsoft-Windows-WLAN-AutoConfig/Operational
Quelle: Microsoft-Windows-WLAN-AutoConfig
Datum: 10.01.2012 17:19:33
Ereignis-ID: 12013
Aufgabenkategorie:OneX-Authentifizierung
Ebene: Fehler
Schlüsselwörter:(512)
Benutzer: SYSTEM
Computer: lenny
Beschreibung:
Fehler bei der Drahtlos-802.1X-Authentifizerung.

Netzwerkadapter: 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
Schnittstellen-GUID: {fbd379b6-4d1c-45fb-b3a8-727c46e17cd0}
Lokale MAC-Adresse: 38:59:F9:E5:AB:12
Netzwerk-SSID: wlan_ng
BSS-Typ: Infrastructure
Peer-MAC-Adresse: 00:26:F2:44:DF:E0
Identität: NULL
Benutzer: andy
Domäne: lenny
Ursache: Empfang eines expliziten Eap-Fehlers
Fehler: 0x80420014
EAP-Grund: 0x0
EAP-Fehlerursachen-Zeichenfolge: Falscher Parameter.

EAP-Fehler: 0x80420014
Fehler bei der Drahtlossicherheit.

Netzwerkadapter: 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
Schnittstellen-GUID: {fbd379b6-4d1c-45fb-b3a8-727c46e17cd0}
Lokale MAC-Adresse: 38:59:F9:E5:AB:12
Netzwerk-SSID: wlan_ng
BSS-Typ: Infrastructure
Peer-MAC-Adresse: 00:26:F2:44:DF:E0
Ursache: Empfang eines expliziten Eap-Fehlers
Fehler: 0x80420014
Der Dienst für die automatische WLAN-Konfiguration konnte keine Verbindung mit einem Drahtlosnetzwerk herstellen.

Netzwerkadapter: 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
Schnittstellen-GUID: {fbd379b6-4d1c-45fb-b3a8-727c46e17cd0}
Verbindungsmodus: Verbindung mit einem sicherem Netzwerk ohne Profil
Profilname: wlan_ng
SSID: wlan_ng
BSS-Typ: Infrastructure
Fehlerursache:Das angegebene Netzwerk ist nicht verfügbar.

Auf dem NPS wiederum gibt es gar keine Fehlermeldungen. Das brachte mich dazu, den Netzwerkverkehr mit Microsoft’s Netzwerk Monitor vom Access Point zum NPS mitzuschneiden. Dabei zeigt sich folgendes Bild:

Zum Vergleich eine erfolgreiche Verbindung:

Man kann erkennen, das im Fehlerfall keine Antwort mehr vom Access Point kommt. Nach PEAP-Start sollte eigentlich der TLS-Handshake erfolgen. Dieser bleibt aber aus.

Wir konnten in unseren Tests eingrenzen, das es an den Access Points bzw. Routern liegen muss.

Ein Neustart der Clients (drei verschiedene Notebooks) als auch des NPS-Servers brachte keine Lösung. Auch das „lange“ Warten (wg. Timeouts, Cache, etc.) nach einem fehlgeschlagenen Verbindungsversuch brachte nichts.

Erst wenn man den Access Point vom Strom nimmt und wieder verbindet, funktioniert es.

Da es nicht die Lösung sein kann, „ständig“ den Access Point neu zu starten, blieb nur der Umstieg auf ein anderes Gerät. Erfolgreich konnte Volker den EDIMAX EW-7416APn v2 testen.

Hilfreiche und interessante Links

Bents Blog – W-LAN mit IEEE 802.1X und RADIUS in einer Windows Server-Umgebung sicher umsetzen

Aaron Walrath – Install Windows 2008 R2 NPS for RADIUS Authentication for Cisco Router Logins

LANCOM Support Knowledgebase – Radius Anbindung an einen Windows IAS Server

Mats Techblog – Securing Wireless Networks with Windows Server 2008 and NPS

Microsoft TechNet – NPS Server Certificate: Configure the Template and Autoenrollment

Intel – Simple Configuration of Microsoft NPS as Radius for Navigating 802.1X Networks with Intel AMT (Wired & Wireless AMT)

ADdict – Error Selecting A Certificate When Configuring NPS

Rachfahl Technikblog – Ändern einer Zertifikats-Vorlage einer Windows Server 2008 R2 PKI

msXfaq – 802.1x – Zugang zum Netzwerk steuern

TechNet Blog – Die 802.1x Authentifizierung scheitert, wenn das Maschinenpasswort geändert wurde

Etwas off-topic, da es zwar mit Windows, aber nicht mit Active Directory und NPS zu tun hat:

Heise – WLAN sichern mit RADIUS (Linux, FreeRADIUS und Windows)

Heise – Windows Home Server sichert WLAN (WHS 2003 und IAS)