network-experience
Goto Top

Client-Zertfikat bei WPA2-Enterprise (802.1x)

Hey Leute,

ich teste gerade eine WPA2-Enterprise (802.1x) - Verschlüsselung für mein WLAN aus.

Der RADIUS-Server und eine CA (für das RADIUS-Server-Zertifikat) laufen auf einer pfSense.

Wenn ich auf einem Windows-Client das WLAN-Profile mit Benutzerauthentifizierung einrichte, funktioniert das Login ins WLAN mit Benutzername/Passwort problemlos. Auch das übeprüfen des Server-Zertifikats klappt.

Mein nächsts Ziel ist es, den Windows-Rechner per Zertifikat (also ohne Benutzername/Passwort) am WLAN anzumelden.

- Dazu wähle ich im WLAN-Profil die Computerauthentifizierung (statt der Benutzerauthentifizierung) aus.
- Außerdem erstelle ich mir mit der CA noch ein Client-Zertifikat.

Nun habe ich aber keine Ahnung, was ich mit dem Client-Zertifikat auf meinem Windows-Rechner machen soll. Ich kann zwar in dem WLAN-Profil eine zertifikatsbasierte Authentifizierung auswählen. Allerdings kann ich in dem Sub-Menü dann nirgends das Client-Zertifikat auswählen/hochladen. Ich kann nur aus diversen Stammstellenzertifkaten eine CA anhaken.

Daher die Frage: Wo gebe ich das Client-Zertifikat auf meinem Windows-Rechner an, um eine Computerauthentifizierung hinzubekommen?

Grüße
NE

Content-ID: 1671399795

Url: https://administrator.de/contentid/1671399795

Printed on: October 11, 2024 at 02:10 o'clock

149569
149569 Dec 30, 2021 updated at 07:14:00 (UTC)
Goto Top
Für die Computer Authentifizierung muss das Zertifikat in den Computer-Store des Client's importiert werden damit es für eine benutzerlose Anmeldung zur Verfügung steht.
https://www.sonicwall.com/support/knowledge-base/how-can-i-import-certif ...
Dem CA Zertifikat muss ebenfalls vertraut werden, das kommt dann in die Vertrauenswürdigen Zertifizierungsstellen.

Bitte auch die Zertifikatsvoraussetzungen für Computer-Zertifikate beachten
https://docs.microsoft.com/de-de/troubleshoot/windows-server/networking/ ...

Dann noch per GPO die passende Wireless Richtlinie via PEAP-TLS Methode deployen
https://docs.microsoft.com/de-de/windows-server/networking/core-network- ...

Feddisch ist die Soße.
aqui
aqui Dec 30, 2021 at 10:10:21 (UTC)
Goto Top
Steht im Groben auch hier.
colinardo
Solution colinardo Dec 30, 2021 updated at 10:39:04 (UTC)
Goto Top
Servus,

auf der pfSense (Radius-Client etc. lasse ich hier mal weg die sollten bei dir ja schon korrekt angelegt sein), ich beschränke ich mich auf die nötigen EAP-Einstellungen für die Computer-Auth:

30-12-_2021_11-04-44

Das CA Zertfikat der pfSense muss von der pFSense exportiert werden, und dann auf den Client und den Server in die Vertrauenswürdigen Zertifizierungsstellen des Computers nicht des Users importiert werden.

Das Client-Zertifikat sollte optimalerweise im Common-Name als auch in einem SAN den FQDN des Clients enthalten, und muss dann am Client ebenfalls in den Computer-Store importiert werden!

screenshot

screenshot

Der Wifi Access-Point sollte auf EAP-Passthrough Authentifizierung gestellt werden

Auf dem Server der die GPOs an die Clients verteilt erstellt man nun eine neue GPO mit einer neuen Wireless-Richtlinie die man den Computern der Organisation zuweist:

screenshot

screenshot

screenshot

Danach die Gruppenrichtlinien über Kabel auf dem Client aktualisieren und abmelden oder neu starten. Das Wifi sollte sich nun schon vor der Anmeldung erfolgreich verbinden.

Wenn nicht, das System LOG der pfSense studieren und der verbose logging am am Wifi AP aktivieren.

Klappt hier in meinem Testaufbau mit pfSense als Radius Server einwandfrei.

screenshot

Nun viel Erfolg beim nachmachen face-wink

Grüße Uwe
aqui
aqui Dec 30, 2021 at 10:33:30 (UTC)
Goto Top
Fundierter hätte man es nicht beschreiben können ! 👍
Hab den Permanent Link (dein Einverständnis vorausgesetzt) mal in alle WPA2 Enterprise und .1x Tutorials mit übernommen.
colinardo
colinardo Dec 30, 2021 updated at 10:39:54 (UTC)
Goto Top
Zitat von @aqui:

Fundierter hätte man es nicht beschreiben können ! 👍
Hab den Permanent Link (dein Einverständnis vorausgesetzt) mal in alle WPA2 Enterprise und .1x Tutorials mit übernommen.
👍

Grüße und guten Rutsch @aqui
Uwe
Network-Experience
Network-Experience Dec 30, 2021 at 16:57:19 (UTC)
Goto Top
Vielen Dank @colinardo für diese sehr gute Erläuterung! Und an @149569 für deine Anmerkungen.

Damit hat die Einrichtung sehr gut geklappt.

Folgende "Anfänger-Dinge" sind mir noch aufgefallen:

  • Um den Computer-Store aufzurufen geht man START>Ausführen>"mmc" und startet dann die APP "Als Administrator". Ansonsten sieht man nur die Zertifikate für den lokalen Benutzer.

  • Ich habe zunächst nur das Client-Zertifikat in die "Eigenen Zertifikate" gelegt. Das hat noch nicht gereicht. Anschließend habe ich die Client pm12-Datei abgelegt. Nun sind Client-Zertifikat samt privatem Schlüssel und CA-Zertifikat im Store abgelegt. Also entweder hat der private Schlüssel gefehlt oder das CA-Zertifikat oder beides.

  • Im WLAN-Profil hab ich noch 2x "Identität des Servers mittels Zertfikatprüfung überprüfen" aktiviert und das Zertifikat der RADIUS-CA ausgewählt. Damit sich der Client mit dem richtigen AP verbindet.


Was mir noch unklar ist:

  • Derzeit macht es mir den Eindruck, dass alleine der Client bestimmt, wie er sich authentifiziert. Hier also per PEAP-TSL, sprich mit Zertifikat. Anhand welcher Kriterien (die wo einstellbar sind?) prüft denn aber der Radius-Server, ob ein anfragender Benutzer auch tatsächlich berechtigt ist? Und zwar vor allem für die zertifikatsbasierte Anmeldung.

  • In dem Zusammenhang habe ich in pfSense/FreeRADIUS unter "EAP-TLS" noch die Option
    Check Cert Issuer - "Validate the certificate against the CA"  
    gefunden und aktiviert. Das macht für mich Sinn. Akzeptiert denn der FreeRADIUS ansonsten jedes X-beliebige Benutzer-Zertifikat? (Was kein Schutz darstellen würde....)

  • Wenn in pfSense/FreeRADIUS unter "EAP-TLS"
     Check Client Certificate CN- "Validate the Client Certificate Common Name"   
    aktiviert ist, klappt die Verbindung nicht mehr. Und zwar selbst dann nicht, wenn ein gleichnamiger User wie im CN-Feld des Client-Zertifikats unter 'FreeRADIUS>Users' angelegt wird. Wie wird denn diese Option genutzt?

  • Am liebsten wäre es mir, wenn einzig die Anmeldung per Zertifikat möglich wäre. Lassen sich denn die anderen Optionen abstellen? In der pfSense kann man nur den "bevorzugten" Weg auswählen, aber nicht einen bestimmten vorschreiben.

Nochmals Danke an alle für die Hilfe!

Grüße
NE
colinardo
colinardo Dec 30, 2021 updated at 17:32:23 (UTC)
Goto Top
Zitat von @Network-Experience:
  • Um den Computer-Store aufzurufen geht man START>Ausführen>"mmc" und startet dann die APP "Als Administrator". Ansonsten sieht man nur die Zertifikate für den lokalen Benutzer.

  • Ich habe zunächst nur das Client-Zertifikat in die "Eigenen Zertifikate" gelegt. Das hat noch nicht gereicht. Anschließend habe ich die Client pm12-Datei abgelegt. Nun sind Client-Zertifikat samt privatem Schlüssel und CA-Zertifikat im Store abgelegt. Also entweder hat der private Schlüssel gefehlt oder das CA-Zertifikat oder beides.
Es reicht auch der Doppelklick auf die den pfx/p12 Container, dort wirst du abgefragt ob für Computer oder User importiert werden soll (sofern dein Account entsprechende Rechte besitzt). Computer-Zertifikate müssen natürlich zwingend in den Computer-Store damit sie auch vor der Anmeldung von Windows genutzt werden können.

* Im WLAN-Profil hab ich noch 2x "Identität des Servers mittels Zertfikatprüfung überprüfen" aktiviert und das Zertifikat der RADIUS-CA ausgewählt. Damit sich der Client mit dem richtigen AP verbindet.
Jepp, oben waren wirklich nur die Bare-Metal Optionen ausgewählt damit du auf diese Basis aufbauen kannst.

* Derzeit macht es mir den Eindruck, dass alleine der Client bestimmt, wie er sich authentifiziert. Hier also per PEAP-TSL, sprich mit Zertifikat.
Nein, das gibt einerseits der Authenticator (AP) bzw. wenn EAP-Passthrough dann der Radius-Server vor, denn der sendet nur ein Access-Accept an den Authenticator wenn der User auch korrekte Zugangsdaten (Zertifikat/Username+Passwort sofern vorhanden) präsentiert.

Anhand welcher Kriterien (die wo einstellbar sind?) prüft denn aber der Radius-Server, ob ein anfragender Benutzer auch tatsächlich berechtigt ist? Und zwar vor allem für die zertifikatsbasierte Anmeldung.
Erstens anhand der Methode EAP-TLS schreibt zwingend eine zertifikatsbasierte Authentifizierung vor, zweitens: wenn du keine Userdaten oder Passwörter im Radius für den User hinterlegst kann er sich auch nicht mit Kennwort anmelden, nur solange er ein Zertfikat deiner Zertifizierungstelle besitzt.

* In dem Zusammenhang habe ich in pfSense/FreeRADIUS unter "EAP-TLS" noch die Option
Check Cert Issuer - "Validate the certificate against the CA"  
gefunden und aktiviert. Das macht für mich Sinn. Akzeptiert denn der FreeRADIUS ansonsten jedes X-beliebige Benutzer-Zertifikat? (Was kein Schutz darstellen würde....)
Nein, nur die der die pfSense auch vertraut, das sind nur die CAs die im System hinterlegt sind. Diese Option ist zum Einschränken auf Zertifikate bestimmter CAs wenn es mehre CAs auf der pfSense gibt.

* Wenn in pfSense/FreeRADIUS unter "EAP-TLS"
 Check Client Certificate CN- "Validate the Client Certificate Common Name"   
aktiviert ist, klappt die Verbindung nicht mehr. Und zwar selbst dann nicht, wenn ein gleichnamiger User wie im CN-Feld des Client-Zertifikats unter 'FreeRADIUS>Users' angelegt wird. Wie wird denn diese Option genutzt?
Habe das gerade nicht vor mir aber ich meine das geht nur bei einer anderen Methode als PEAP-TLS, bzw. bei der Computer-Auth müssen die Usernamen teilweise Prefixe (host/) bzw. Suffixe mit Dollarzeichen hinzugefügt werden . Müsste ich nochmal nachsehen.
* Am liebsten wäre es mir, wenn einzig die Anmeldung per Zertifikat möglich wäre. Lassen sich denn die anderen Optionen abstellen?
So lange du keinen User in den freeradius Optionen anlegst dessen Credentials der User kennt hat er nur die Möglichkeit die ihm zur Verfügung stehen, also das Zertifikat. Wenn du keine User mit Kennwörtern anlegst oder MAC Auth aktivierst bleibt ihm nur diese eine Möglichkeit face-smile.

Der Ablauf bei WPA2-Enterprise ist immer ähnlich -> Client stellt sein Gerät auf WPA2-Enterprise ein -> Authenticator (AP) ist auf 802.1x konfiguriert leitet die Anfrage an seinen Radius-Server weiter -> Radius Server entscheidet anhand der übermittelten Credentials, seien es Zertifikat oder User+Pass ob der User Zugang erhält -> ist die Authentifizierung für den Radius Server korrekt sendet er ein Access-Accept an den Authenticator (AP) und dieser lässt den Client ins Netz, ansonsten ein Access-Reject und der Client erhält ein Deauth-Wifi-Paket und fliegt raus.
Über das sogenannte Accounting kann ein Radius Server einem Authenticator (AP) auch während der bestehenden Sitzung mitteilen das der User wieder rausfliegen soll, z.B. wenn man ein Captive-Portal nutzt und eine Sitzung bspw. nur 30 Minuten dauern darf.

Ich kann dir diesbezüglich auch die offizielle freeradius Doku ans Herz legen, die gilt auch für die pfSense.
https://freeradius.org/documentation/
FreeRadius lässt sich extrem fein konfigurieren, aber das ist dann ein Thema für sich. Da hat @aqui hier auch einges an Lesefutter parat. Geh einfach mal seine Wissenbeiträge diesbezüglich durch.
https://administrator.de/user/aqui/

Grüße Uwe
Network-Experience
Network-Experience Dec 30, 2021 at 20:02:09 (UTC)
Goto Top
Zitat von @colinardo:

Anhand welcher Kriterien (die wo einstellbar sind?) prüft denn aber der Radius-Server, ob ein anfragender Benutzer auch tatsächlich berechtigt ist? Und zwar vor allem für die zertifikatsbasierte Anmeldung.
Erstens anhand der Methode EAP-TLS schreibt zwingend eine zertifikatsbasierte Authentifizierung vor, zweitens: wenn du keine Userdaten oder Passwörter im Radius für den User hinterlegst kann er sich auch nicht mit Kennwort anmelden, nur solange er ein Zertfikat deiner Zertifizierungstelle besitzt.

Okay, das macht Sinn.

Das bedeutet aber auch, wenn einmal ein User-Zertifikat der RADIUS-CA in der Welt ist, ist damit auch ein Login ins WLAN möglich. Und lediglich Löschen des User-Zertifikats verhindert ein Login nicht. Um ein Login mit einem bestimmten User-Zertifikat zukünftig zu verhindern muss es auf eine Revocation-List. Ist das richtig?

Nochmals Danke und guten Rutsch an alle!

NE
colinardo
colinardo Dec 30, 2021 updated at 20:14:16 (UTC)
Goto Top
Zitat von @Network-Experience:
Das bedeutet aber auch, wenn einmal ein User-Zertifikat der RADIUS-CA in der Welt ist, ist damit auch ein Login ins WLAN möglich.
Solange du es nicht zurück ziehst (Revoke), oder die CA in den Jordan beförderst, ja.
Und lediglich Löschen des User-Zertifikats verhindert ein Login nicht. Um ein Login mit einem bestimmten User-Zertifikat zukünftig zu verhindern muss es auf eine Revocation-List. Ist das richtig?
Korrekt.
Nochmals Danke und guten Rutsch an alle!
Gerne, wünsche ich ebenso.