WLAN Authentifizierung über Freeradius Server (Pfsense auf ALIX-Box) mit DD-WRT als Radius-Client
Hallo zusammen,
ich habe leider ein Problem, was mich so langsam zum Verzweifeln bringt und bin für jede Hilfe sehr sehr dankbar !
So sieht der Aufbau aus:
[Pfsense-ALIXBox]<Freeradius-Server> ----- [DD-WRT]<WLAn> ---- WLAN-Clients
Auf ALIXBox ist Pfsense2.0.2 und Freeradius installiert.
DD-WRT fungiert als Radius-Client/NAS-Server und ist mit OPT-Interface von ALIX (Pfsense/Freeradius) verbunden.
Clients sind XP und Win7.
In radius.log lautet die Fehlermeldung beim Verbinden von Clients:
Error: TLS Alert read:fatal:unknown CA
Error: TLS_accept: failed in SSLv3 read client certificate A
Error: rlm_eap: SSL error error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
Error: SSL: SSL_read failed inside of TLS (-1), TLS session fails.
Auth: Login incorrect (TLS Alert read:fatal:unknown CA): [host/Beta/<via Auth-Type = EAP>] (from client DD-WRT port 48 cli 00-21-5d-62-a0-72)
Auth: Login incorrect: [00:21:5d:62:a0:72/abcdefgh] (from client DD-WRT port 1)
Pfsense / Freeradius :
Ich habe Freeradius so wie im Tutorail "Sichere WLAN-Benutzer Authentifizierung über Radius" beschrieben konfiguriert.
Die Zertifikate habe ich direkt in Freeradius erstellen lassen und "ca.der" auf Clients kopiert.
Die Passwörter in "Certificates" und "EAP" sind identisch.
Als EAP-Type habe ich "PEAP" mit "MSCHAPv2" für innere Authentifizierung gewählt.
Unter "NAS/Clients" ist das "Client Shared Secret" : abcdefgh ( dieses Passwort wurde ebenfalls in DD-WRT unter "Radius Auth Shared Secret" eingetragen).
Unter "Interfaces" habe ich 2 Interfaces eingerichtet einmal Ip-OPt mit dem Port 1812 und einmal Ip-Opt mit dem Port 1813
Auf Pfsense Firewall habe ich UDP 1812 und UDP 1813 von OPT-Netz auf die OPT-Ipadresse freigegeben.
DD-WRT :
Wireless Mode : AccessPoint
Radius : die IP-Adresse von AlixBox-OPT eingetragen und als "Shared Secret" : abcdefgh.
Der Test mit radtest war Ok.
Ich hoffe, dass mir jemand helfen kann.
Vielen Dank!
ich habe leider ein Problem, was mich so langsam zum Verzweifeln bringt und bin für jede Hilfe sehr sehr dankbar !
So sieht der Aufbau aus:
[Pfsense-ALIXBox]<Freeradius-Server> ----- [DD-WRT]<WLAn> ---- WLAN-Clients
Auf ALIXBox ist Pfsense2.0.2 und Freeradius installiert.
DD-WRT fungiert als Radius-Client/NAS-Server und ist mit OPT-Interface von ALIX (Pfsense/Freeradius) verbunden.
Clients sind XP und Win7.
In radius.log lautet die Fehlermeldung beim Verbinden von Clients:
Error: TLS Alert read:fatal:unknown CA
Error: TLS_accept: failed in SSLv3 read client certificate A
Error: rlm_eap: SSL error error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
Error: SSL: SSL_read failed inside of TLS (-1), TLS session fails.
Auth: Login incorrect (TLS Alert read:fatal:unknown CA): [host/Beta/<via Auth-Type = EAP>] (from client DD-WRT port 48 cli 00-21-5d-62-a0-72)
Auth: Login incorrect: [00:21:5d:62:a0:72/abcdefgh] (from client DD-WRT port 1)
Pfsense / Freeradius :
Ich habe Freeradius so wie im Tutorail "Sichere WLAN-Benutzer Authentifizierung über Radius" beschrieben konfiguriert.
Die Zertifikate habe ich direkt in Freeradius erstellen lassen und "ca.der" auf Clients kopiert.
Die Passwörter in "Certificates" und "EAP" sind identisch.
Als EAP-Type habe ich "PEAP" mit "MSCHAPv2" für innere Authentifizierung gewählt.
Unter "NAS/Clients" ist das "Client Shared Secret" : abcdefgh ( dieses Passwort wurde ebenfalls in DD-WRT unter "Radius Auth Shared Secret" eingetragen).
Unter "Interfaces" habe ich 2 Interfaces eingerichtet einmal Ip-OPt mit dem Port 1812 und einmal Ip-Opt mit dem Port 1813
Auf Pfsense Firewall habe ich UDP 1812 und UDP 1813 von OPT-Netz auf die OPT-Ipadresse freigegeben.
DD-WRT :
Wireless Mode : AccessPoint
Radius : die IP-Adresse von AlixBox-OPT eingetragen und als "Shared Secret" : abcdefgh.
Der Test mit radtest war Ok.
Ich hoffe, dass mir jemand helfen kann.
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197289
Url: https://administrator.de/contentid/197289
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
16 Kommentare
Neuester Kommentar
Mmmhhh, sieht so aus als ob du das CA Root Zertifikat nicht auf die Clients portiert hast, kann das sein ?
Der FreeRadius meckert ja an das die CA nicht stimmt ! Hast du also das Root Zertifikat auf die Clients kopiert ?
Ansonsten schalte im Client mal testweise die Zertifikatsprüfung ab ob es dann funktioniert.
Wenn ja fehlt das Root CA !
Der FreeRadius meckert ja an das die CA nicht stimmt ! Hast du also das Root Zertifikat auf die Clients kopiert ?
Ansonsten schalte im Client mal testweise die Zertifikatsprüfung ab ob es dann funktioniert.
Wenn ja fehlt das Root CA !
Kannst du den FreeRadius mal stoppen und im Debug Modus mit "freeradius -X" oder "radiusd -X" starten ?
Das ergibt noch einen detalierteren Output zu dem Fehler und erleichtert die weitere Suche.
Irgendwas ist an deinen Zertifikaten mau...
Wenn du Shellzugang auf dem Radiusserver hast kannst du auch mal ein
radtest user password localhost 0 radiustest
eingeben, wobei "radiustest" das Radius Passwort aus der clients.conf ist.
Das ergibt noch einen detalierteren Output zu dem Fehler und erleichtert die weitere Suche.
Irgendwas ist an deinen Zertifikaten mau...
Wenn du Shellzugang auf dem Radiusserver hast kannst du auch mal ein
radtest user password localhost 0 radiustest
eingeben, wobei "radiustest" das Radius Passwort aus der clients.conf ist.
Machst du eine MAC Adress Authentisierung ?? Dein Username ist "00:21:5d:62:a0:72" und das Passwort "abcdefgh" wofür kein passender User in der Datei users gefunden wird ! Deshalb schlägt die Authentisierung fehl !
In der users Datei sollte also minimal sowas stehen wie:
"00:21:5d:62:a0:72" Cleartext-Password := "abcdefgh"
In der users Datei sollte also minimal sowas stehen wie:
"00:21:5d:62:a0:72" Cleartext-Password := "abcdefgh"
Na ja ist ja klar das es nicht klappte. Du kannst ja im Debug ganz klar sehen das der DD-WRT als Usernamen die Mac Adresse "00:21:5d:62:a0:72" sendet and den Radius mit dem Passwort "abcdefgh".
Das der Radius den dann nicht authentisieren kann wenn der NICHT in der users Datei drinsteht ist ja logisch !
Da ist ja nun wahrlich nichts eigenartig. Der FreeRadius macht genau das was er soll !
Wenn du den User nun so mit der Mac eingetragen hast wäre da mal interessant was der -X Debug sagt ?
Ggf. solltest du also mal die Mac Authentisierung im DD-WRT ausschalten, das der mit der normalen Client ID kommt.
Auch der Satz "...die Route ist im Pfsense vom OPT auf DD-WRT-Lan/WLan-Netz gesetzt." ist irgendwie unverständlich und technisch eigentlich überflüssig ?!
Der DD-WRT rennt doch nur als normaler WLAN Accesspoint wie es HIER in der "Alternative-3" beschrieben ist in deinem OPT Segment, oder ?
Da muss man rein gar nix routen, denn ein Accesspoint arbeitet immer als simple Bridge...routen is da nich also wäre auch eine Router völlig überflüssig und kontraproduktiv !
Oder...lässt du den DD-WRT als transparenten Router laufen um das WLAN zu routen (Router Modus) ?? Das Warum wäre dann mal interessant
Dann macht eine Routein der FW natürlich wieder Sinn, keine Frage. Das das Routing dann sauber funktioniert solltest du erstmal ohne Radius Authentisierung wasserdicht testen, nicht das da noch eine 2te Baustelle lauert...!
Das der Radius den dann nicht authentisieren kann wenn der NICHT in der users Datei drinsteht ist ja logisch !
Da ist ja nun wahrlich nichts eigenartig. Der FreeRadius macht genau das was er soll !
Wenn du den User nun so mit der Mac eingetragen hast wäre da mal interessant was der -X Debug sagt ?
Ggf. solltest du also mal die Mac Authentisierung im DD-WRT ausschalten, das der mit der normalen Client ID kommt.
Auch der Satz "...die Route ist im Pfsense vom OPT auf DD-WRT-Lan/WLan-Netz gesetzt." ist irgendwie unverständlich und technisch eigentlich überflüssig ?!
Der DD-WRT rennt doch nur als normaler WLAN Accesspoint wie es HIER in der "Alternative-3" beschrieben ist in deinem OPT Segment, oder ?
Da muss man rein gar nix routen, denn ein Accesspoint arbeitet immer als simple Bridge...routen is da nich also wäre auch eine Router völlig überflüssig und kontraproduktiv !
Oder...lässt du den DD-WRT als transparenten Router laufen um das WLAN zu routen (Router Modus) ?? Das Warum wäre dann mal interessant
Dann macht eine Routein der FW natürlich wieder Sinn, keine Frage. Das das Routing dann sauber funktioniert solltest du erstmal ohne Radius Authentisierung wasserdicht testen, nicht das da noch eine 2te Baustelle lauert...!
Das mit dem Routing ist klar. Wenn du transparent routest dann braucht die pfSense diese Route…keine Frage.
..."wenn ich das rausnehme, dann scheitert die TLS Authentifizierung"
Klar das dann nichts geht, denn wenn der Username (sprich bei dir die Mac) und Passwort nicht in der Users Datei steht dann ist ja auch nix zu authentisieren.
Was vollkommen unklar und auch unsinnig ist:
"…und bei dem Win-Client stelle ich ebenfalls auf WPA-PSK"
Das ist eigentlich Unsinn, denn am WLAN Client selber ! Wird NICHTS eingestellt in Bezug auf Radius usw.
Wenn dann wird nur 802.1x aktiviert am WLAN Port.
Die entscheidende Frage hier ist noch ob du mit dem internen und bordeigenen Windows 802.1x arbeitest oder mit einem Client der vom WLAN Treiber kommt wenn du mit der WLAN Hersteller Suite arbeitest und nicht mit den Windows bordeigenen.
Das solltest du wasserdicht klären !
Was bei dir völlig unverständlich ist warum der WLAN AP immer mit der Mac Adresse kommt. eigentlich unüblich wenn man nicht eine Mac Adress Authentisierung erzwingt.
Normalerweise nimmt Windows .1x immer den Default User als User oder ,wenn man es konfiguriert , wird ein User mit einem PoPup Screen vor dem WLAN Login abgefragt.
Das ist was irgendwie komisch ist.
Zusätzlich auch wenn die Authentisierung mit Succes durchläuft also erfolgreich ist das trotzdem der Zugang geblockt ist.
Frage:
Hast du beim DD-WRT das logging aktiviert (Syslog) um mal zu sehen was da passiert ??
..."wenn ich das rausnehme, dann scheitert die TLS Authentifizierung"
Klar das dann nichts geht, denn wenn der Username (sprich bei dir die Mac) und Passwort nicht in der Users Datei steht dann ist ja auch nix zu authentisieren.
Was vollkommen unklar und auch unsinnig ist:
"…und bei dem Win-Client stelle ich ebenfalls auf WPA-PSK"
Das ist eigentlich Unsinn, denn am WLAN Client selber ! Wird NICHTS eingestellt in Bezug auf Radius usw.
Wenn dann wird nur 802.1x aktiviert am WLAN Port.
Die entscheidende Frage hier ist noch ob du mit dem internen und bordeigenen Windows 802.1x arbeitest oder mit einem Client der vom WLAN Treiber kommt wenn du mit der WLAN Hersteller Suite arbeitest und nicht mit den Windows bordeigenen.
Das solltest du wasserdicht klären !
Was bei dir völlig unverständlich ist warum der WLAN AP immer mit der Mac Adresse kommt. eigentlich unüblich wenn man nicht eine Mac Adress Authentisierung erzwingt.
Normalerweise nimmt Windows .1x immer den Default User als User oder ,wenn man es konfiguriert , wird ein User mit einem PoPup Screen vor dem WLAN Login abgefragt.
Das ist was irgendwie komisch ist.
Zusätzlich auch wenn die Authentisierung mit Succes durchläuft also erfolgreich ist das trotzdem der Zugang geblockt ist.
Frage:
Hast du beim DD-WRT das logging aktiviert (Syslog) um mal zu sehen was da passiert ??
Du kannst im Windows .1x Client einen Haken setzen das NICHT das Popup Window kommt. Dann nimmt der Client immer den Hostnamen des Rechners zur Authentisierung. Das sollte der Regelfall sein.
Du musst aber zwingen die Mac Authentisierung abstellen, denn das kommt vom AP das der das so weiterreicht. Der soll einzig nur .1x Auth des Clients durchreichen, das passiert so wie es aussieht nicht und ist das Grundproblem.
Ich check das mit dem FreeRadius parallel.
Du musst aber zwingen die Mac Authentisierung abstellen, denn das kommt vom AP das der das so weiterreicht. Der soll einzig nur .1x Auth des Clients durchreichen, das passiert so wie es aussieht nicht und ist das Grundproblem.
Ich check das mit dem FreeRadius parallel.
So, Testaufbau erledigt und das Fazit ist das es alles wunderbar funktioniert !!
Keine Ahnung also was du da falsch machst ??
Hier ist das genaue Test Setup:
Hier ist das WLAN Grundsetup des DD-WRT Accesspoints:
Hier ist das WLAN Security des DD-WRT Accesspoints:
Hier ist das Client Setup Laptop:
Hier ist der Debug Output des FreeRadius Servers:
Users Datei
client.conf Datei
Also du siehst....alles wunderbar wie es sein soll ?!
Keine Ahnung also was du da falsch machst ??
Hier ist das genaue Test Setup:
Hier ist das WLAN Grundsetup des DD-WRT Accesspoints:
Hier ist das WLAN Security des DD-WRT Accesspoints:
Hier ist das Client Setup Laptop:
Hier ist der Debug Output des FreeRadius Servers:
Cleaning up request 6 ID 0 with timestamp +152
User-Name = "test"
NAS-IP-Address = 192.168.1.221
Called-Station-Id = "687f7401fbce"
Calling-Station-Id = "0021857e8250"
NAS-Identifier = "687f7401fbce"
NAS-Port = 44
Framed-MTU = 1400
State = 0x7915228d7f1237da5bd0b7200a259503
NAS-Port-Type = Wireless-802.11
EAP-Message = 0x020700061500
Message-Authenticator = 0xb45850753bb8ed59069c175ec65390f7
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[ntdomain] No '\' in User-Name = "test", looking up realm NULL
[ntdomain] No such realm "NULL"
++[ntdomain] returns noop
[eap] EAP packet type response id 7 length 6
[eap] Continuing tunnel setup.
++[eap] returns ok
Found Auth-Type = EAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group authenticate {...}
[eap] Request found, released from the list
[eap] EAP/ttls
[eap] processing type ttls
[ttls] Authenticate
[ttls] processing EAP-TLS
[ttls] Received TLS ACK
[ttls] ACK handshake is finished
[ttls] eaptls_verify returned 3
[ttls] eaptls_process returned 3
[ttls] Using saved attributes from the original Access-Accept
[eap] Freeing handler
++[eap] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 0 to 192.168.1.221 port 2052
MS-MPPE-Recv-Key = 0xc102a8d88eb918a4d19b08b488c43a05751e8f8825c5ddcc6b01dbbe1f565bdd
MS-MPPE-Send-Key = 0xf158cf3ddbcc0be432110814750c5a360c26fed388d3ed7343111d0356863acd
EAP-Message = 0x03070004
Message-Authenticator = 0x00000000000000000000000000000000
User-Name = "test"
Finished request 7.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 7 ID 0 with timestamp +152
Ready to process requests.
Users Datei
"User" Cleartext-Password := "test123"
"test" Cleartext-Password := "test"
"Gast" Cleartext-Password := "gast", Login-Time := "Wk0700-1800"
client.conf Datei
client 192.168.1.0/24 {
secret = radiustest
shortname = private-network-1
}
#
Also du siehst....alles wunderbar wie es sein soll ?!
Nein, du liest leider die Threadantwort nicht richtig Der Test FreeRadius ist auf Debian Wheezy auf einem Raspberry Pi installiert:
Netzwerk Management Server mit Raspberry Pi
Nochmal: Das ist völliger Unsinn, das du da die Mac Adresse eingeben musst !! Wie du an den obigen Screenshots ersiehst schickt der DD-WRT niemals Mac Adressen zur Authentisierung sondern Username Passwort wie du ja unschwer oben sehen kannst. (No '\' in User-Name = "test", looking up realm NULL = Username ist "test")
Bei dir liegt also einen fehlkonfiguration des DD-WRT vor. Vermutlich (geraten) kann es sein das du fälschlicherweise unter Radius den 802.1x Client des APs selber aktiviert hast. Das wäre natürlich technischer Unsinn, denn damit authentisiert sich der AP selber als .1x Client in einem gesicherten Netzwerk.
Genau das willst du ja nicht sondern WLAN User authentisieren !!
Fazit: Folge genau dem Testaufbau und...auch den Tutorial das das Radius Customizing beschreibt, dann funktioniert das auch !
Netzwerk Management Server mit Raspberry Pi
Nochmal: Das ist völliger Unsinn, das du da die Mac Adresse eingeben musst !! Wie du an den obigen Screenshots ersiehst schickt der DD-WRT niemals Mac Adressen zur Authentisierung sondern Username Passwort wie du ja unschwer oben sehen kannst. (No '\' in User-Name = "test", looking up realm NULL = Username ist "test")
Bei dir liegt also einen fehlkonfiguration des DD-WRT vor. Vermutlich (geraten) kann es sein das du fälschlicherweise unter Radius den 802.1x Client des APs selber aktiviert hast. Das wäre natürlich technischer Unsinn, denn damit authentisiert sich der AP selber als .1x Client in einem gesicherten Netzwerk.
Genau das willst du ja nicht sondern WLAN User authentisieren !!
Fazit: Folge genau dem Testaufbau und...auch den Tutorial das das Radius Customizing beschreibt, dann funktioniert das auch !