Opnsense FreeRADIUS - Fehler über EAP

Moin,

wir haben in unsere v6 Umgebung eine RADIUS Authentifizierung eingebaut, welche unseren APs je nach Gruppenmitgliedschaft VLAN-Tags mitgeteilt hat.
Dies möchten wir auch in der v7 Umgebung erreichen.

Wir haben FreeRADIUS nach Doku auf dem opnsense eingerichtet und erreichen die Weitergabe der VLAN-Attribute über AD-Attribute für welche ich das Schema erweitert habe.
Wenn ich die Authentifizierung vom server per radclient teste, funktioniert auch alles wunderbar:

root@firewall:/usr/local/etc/raddb # echo "User-Name=abc,User-Password=xxxxxxx" | radclient -x -P udp 10.0.0.254:1812 auth <SECRET>
Sent Access-Request Id 143 from 0.0.0.0:27531 to 10.0.0.254:1812 length 42
        User-Name = "abc"
        User-Password = "xxxxxxx"
        Cleartext-Password = "xxxxxxx"
Received Access-Accept Id 143 from 10.0.0.254:1812 to 10.0.0.254:27531 length 37
        Tunnel-Type:0 = VLAN
        Tunnel-Medium-Type:0 = 6
        Tunnel-Private-Group-Id:0 = "xyz"

Nun spricht unser WLAN allerdings WPA2 Enterprise (802.1x).
Wir haben Root-CA und RADIUS-Cert identisch zum alten RADIUS eingerichtet und dieser Teil funktioniert ebenfalls problemlos.

Nun zum Problem:
Egal ob ich mich per TTLS mit MSCHAPv2 oder PEAP mit MSCHAPv2 authenzifizieren möchte, erhalte ich zum Authentikationsfehler folgende Logzeilen:

2020-08-30T15:56:14	Auth: (242) Login incorrect (eap: Failed continuing EAP TTLS (21) session. EAP sub-module failed): [abc/<via Auth-Type = eap>] (from client APs port 0 cli XX-XX-XX-XX-XX-XX)
2020-08-30T15:56:14	Auth: (242) Login incorrect (mschap: FAILED: No NT-Password. Cannot perform authentication): [abc/<via Auth-Type = mschap>] (from client APs port 0 via TLS tunnel)

Ich scheitere leider bisher daran, den radiusd auf dem opnsense im debug modus zu starten, daher kann ich dort erstmal keine weiteren Logs liefern.

Hat jemand eine Idee, wie ich die Authenzifizierung durch EAP zum laufen bekomme?

Die VLAN Tags sind eine Vorraussetzung für die Migration auf v7, daher benötigen wir eintweder die oben beschriebene Variante, oder altbekannt über Einträge à la

DEFAULT Ldap-Group == "cn=teachers,ou=groups,dc=lm6,dc=example,dc=org"
   Tunnel-Type="VLAN",
   Tunnel-Medium-Type=6,
   Tunnel-Private-Group-Id=xyz

in der users Datei.

Hallo ops_ole!
Kennst du diesen Thread?

VG,
Michael

Hi,

installiere den RADIUS Server nicht auf der OPNSense. Ich habe noch von keinem gehört, der das erfolgreich am Laufen hat (auch wenn es in der Doku steht). Der RADIUS Server muss per ntlm_auth gegen den AD authentifizieren und das gibt es soweit ich weiß nicht für die OPNSense (oder doch?).

vG Stephan

Moin,

vielen Dank für die Antworten, wir sind leider erst nun zum weitertesten gekommen.

Ich habe die Authentifizierung nun nach Doku mit ntlm_auth gebaut, allerdings direkt auf dem server, was mit dem Fehler jedocht nichts zu tun haben sollte.

Aktuell haben wir aber ein ähnliches Problem wie mit der Variante LDAP:

Wenn ich die Authentifikation mit folgendem Command teste:
echo "User-Name=oh,User-Password=xyz" | radclient -x -P udp 127.0.0.1 auth testing123

Dann bekomme ich folgende, positive, Rückmeldung:

Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth: Executing: /usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --domain=LM --require-membership-of=LM\teachers --username=%{mschap:User-Name} --password=%{User-Password}:
Sat Sep 12 20:19:56 2020 : Debug: --username=%{mschap:User-Name}
[...]
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth: EXPAND --username=%{mschap:User-Name}
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth:    --> --username=oh
Sat Sep 12 20:19:56 2020 : Debug: --password=%{User-Password}
[...]
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth: EXPAND --password=%{User-Password}
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth:    --> --password=xyz
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth: Program returned code (0) and output 'NT_STATUS_OK: The operation completed successfully. (0x0)'
Sat Sep 12 20:19:56 2020 : Debug: (1) ntlm_auth: Program executed successfully

Wenn ich nun allerdings die Anmeldung am WLAN teste, oder auch via eapol, oder aber folgendem Command:
radtest -t mschap oh xyz localhost 0 testing123

Dann sieht das ganze gleich viel anders aus:

Sat Sep 12 20:27:10 2020 : Debug: (2) ntlm_auth: Executing: /usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --domain=LM --require-membership-of=LM\teachers --username=%{mschap:User-Name} --password=%{User-Password}:
Sat Sep 12 20:27:10 2020 : Debug: --username=%{mschap:User-Name}
[...]
Sat Sep 12 20:27:10 2020 : Debug: (2) ntlm_auth: EXPAND --username=%{mschap:User-Name}
Sat Sep 12 20:27:10 2020 : Debug: (2) ntlm_auth:    --> --username=oh
Sat Sep 12 20:27:10 2020 : Debug: --password=%{User-Password}
[...]
Sat Sep 12 20:27:10 2020 : Debug: (2) ntlm_auth: EXPAND --password=%{User-Password}
Sat Sep 12 20:27:10 2020 : Debug: (2) ntlm_auth:    --> --password=
Sat Sep 12 20:27:10 2020 : ERROR: (2) ntlm_auth: Program returned code (1) and output 'NT_STATUS_WRONG_PASSWORD: When trying to update a password, this return status indicates that the value provided as the current password is not correct. (0xc000006a)'

Für mich sieht es danach aus, als würde mschap das passwort verschlucken und ntlm_auth nicht zur verfügung stellen: ntlm_auth: --> --password=_____?

Nun habe ich in mods-enabled/ntlm ebenfalls %{MS-CHAP-Password} und %{Cleartext-Password} ausprobiert, diese Felder hat mir das log von radtest zurückgemeldet;
Das Ergebnis im radius Debug log ändert sich dabei allerdings nicht.

Übersehe ich hier etwas offensichtliches?

Der EAP Tunnel mit Zertifikaten funktioniert einwandfrei, das Problem kann eigentlich nur noch bei MSCHAP liegen.

Hallo,

das Problem ist, dass das Programm ntlm_auth nicht auf der OpnSense vorhanden ist und auch nicht als Plugin installierbar ist…zumindest war das letztes Jahr so. Das war dann auch der Grund warum ich aufgegeben habe und den Radius auf den Server gepackt habe.

Gruß
Dominik

Hallo,

geh noch mal die Doku Schritt für Schritt durch, evtl. auch http://deployingradius.com/documents/configuration/active_directory.html

Dann sollte es klappen.

vG Stephan

Hi,

…habe gerade nochmal nachgesehen…es wird mit ntlm_auth auf der Opnsense nicht gehen weil der Programmaufruf ins Leere geht…auf dem lmn Server gibt es das Programm, auf der Opnsense nicht…es geht wenn überhaupt nur ein Ldap Auth ohne ntlm_auth und das hat bis jetzt niemand hinbekommen…

Genau, ich meinte auch eher die Doku für den Server :slight_smile: