Unifi: WLAN abschalten über Schulkonsole

Hallo zusammen,

https://wiki.freeradius.org/guide/FAQ#common-problems-and-their-solutions_how-can-i-disconnect-user-with-freeradius

Im Wiki von Freeradius gibt es dazu auch einen Eintrag. Habe aber noch nichts getestet.

VG Daniel

1 „Gefällt mir“

Hallo zusammen,

gibt es hierzu eigentlich Neuigkeiten? Ich habe im Forum nichts gefunden und auch bei mir surft mein Testschüler munter weiter, auch wenn ich ihn in der Schulkonsole rauswerfe und den Unterricht beende.

Die Lösung von Alois mit Netzint geht bei mir leider auch wohl nicht, da ich einen Cloudkey verwende und keine VM…

LG, Felix

Hallo Felix,

vielleicht bist Du auch nach dieser Doku gegangen? Also den Radius Server auf der OPNsense.

https://docs.linuxmuster.net/de/latest/systemadministration/network/radius/index.html?highlight=radius#ldap-einrichten

Dann könntest Du über denselben Fehler(?) in der Doku bzw. dem OPNsense Setup stolpern wie ich.

In der Doku wird folgender Benutzerfilter empfohlen, welcher bei mir nicht funktioniert:

(&(objectClass=person)(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=CN=wifi*))

Zum Test den Benutzer aus der Gruppe „wifi“ entfernen:

root@server:~# sophomorix-managementgroup --nowifi ipadwlan
...
USER: ipadwlan is in school default-school
      group is wifi
      ipadwlan --> wifi (remove)
#### Removing member from wifi:                                               ####
   * User ipadwlan exists (1 results)
   * Removing user ipadwlan from group wifi
...

Radius Test - Der Benutzer wird trotzdem akzeptiert (Accepted: 1) Das ist auch das, was Du festgestellt hast.

root@server:~# echo "User-Name=ipadwlan,User-Password=2\$JtXSZf" | radclient -x -P udp -s 10.0.0.254:1812 auth "$(cat /etc/linuxmuster/.secret/radiussecret)"
Sent Access-Request Id 172 from 0.0.0.0:32973 to 10.0.0.254:1812 length 48
	User-Name = "ipadwlan"
	User-Password = "2$JtXSZf"
	Cleartext-Password = "2$JtXSZf"
Received Access-Accept Id 172 from 10.0.0.254:1812 to 0.0.0.0:0 length 20
Packet summary:
	Accepted      : 1
	Rejected      : 0
	Lost          : 0
	Passed filter : 1
	Failed filter : 0

Jetzt den Benutzerfilter so setzen (Bitte an Deine Domain anpassen):

(&(objectClass=person)(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=CN=wifi,OU=Management,OU=default-school,OU=SCHOOLS,DC=fzi,DC=lan))

Radius Test - Jetzt wird der Benutzer nicht mehr akzeptiert (Rejected: 1)

root@server:~# echo "User-Name=ipadwlan,User-Password=2\$JtXSZf" | radclient -x -P udp -s 10.0.0.254:1812 auth "$(cat /etc/linuxmuster/.secret/radiussecret)"
Sent Access-Request Id 32 from 0.0.0.0:59610 to 10.0.0.254:1812 length 48
	User-Name = "ipadwlan"
	User-Password = "2$JtXSZf"
	Cleartext-Password = "2$JtXSZf"
Received Access-Reject Id 32 from 10.0.0.254:1812 to 0.0.0.0:0 length 20
(0) -: Expected Access-Accept got Access-Reject
Packet summary:
	Accepted      : 0
	Rejected      : 1
	Lost          : 0
	Passed filter : 0
	Failed filter : 1

Gegentest. Benutzer wieder in die Gruppe wifi:

root@server:~# sophomorix-managementgroup --wifi ipadwlan
...
USER: ipadwlan is in school default-school
      group is wifi
      ipadwlan --> wifi (add)
#### Adding member to wifi:                                                   ####
   * Group wifi exists (1 results)
   * User ipadwlan exists (1 results)
   * Adding user ipadwlan to group wifi
...

Radiustest:

root@server:~# echo "User-Name=ipadwlan,User-Password=2\$JtXSZf" | radclient -x -P udp -s 10.0.0.254:1812 auth "$(cat /etc/linuxmuster/.secret/radiussecret)"
Sent Access-Request Id 172 from 0.0.0.0:43297 to 10.0.0.254:1812 length 48
	User-Name = "ipadwlan"
	User-Password = "2$JtXSZf"
	Cleartext-Password = "2$JtXSZf"
Received Access-Accept Id 172 from 10.0.0.254:1812 to 0.0.0.0:0 length 20
Packet summary:
	Accepted      : 1
	Rejected      : 0
	Lost          : 0
	Passed filter : 1
	Failed filter : 0

Viele Grüße
Klaus

1 „Gefällt mir“

Hallo,

Vielleicht betrifft das auch nur mich, weil ich eine Klasse „wificlass“ angelegt habe.
Siehe die Kommunikation im Bugreport hier:

Viele Grüße
Klaus

Hallo Klaus,
danke, dass Du der Sache auf den Grund gegangen bist.

Kurz zwei Nachfragen zu Deinen Tests:
a) Du betreibst den Freeradius auf der OPNSense >= 20.x.x in Verbindung mit einem
Unifi WLAN Controller / VM ?
b) Du hast wie in der Doku angegeben konfiguriert und den Filter entsprechend angepasst.

Deine Test hast Du mit dem radclient auf dem Server ausgeführt, oder ? Hast Du das Ganze auch mit echten Clients die sich mit dem Ubiquita AP verbinden getestet ?
Funktioniert dort das Ganze dort ebenfalls ?

Im Forum gab es vor einiger Zeit Hinweise, dass dies Probleme bereiten könnte.
Danke für Deine Hinweise.

VG
Chris

Hallo Klaus,
ich habe in der Doku im Kapitel Freeradius die Filteroptionen angepasst.
Schau doch bitte mal, ob das so in Deinem Sinne ist und Deinen Tests entspricht, oder ob noch Ergänzungen / Korrekturen erforderlich sind.
VG
Chris

Hallo Chris,

danke für die Rückmeldung und Durchlesen. Bei der Fehlersuche und im Bugreport auf Github bin ich draufgekommen, daß der OPNSense Benutzerfilter „wifi*“ mit Wildcard bei mir nicht funktioniert bzw. immer ein Ergebnis liefert, da die ich eine Klasse „wificlass“ habe, in welcher der Benutzer Mitglied ist. Damit findet der Radius Filter wifi* auch nach Deaktivierung zur Rollenzugehörigkeit „wifi“ immer noch „wificlass“. Also wahrscheinlich ein spezieller Fall.

Ja, OPNSense > 20.x.x . In der Schule gibt es TP-Link Accesspoints mit TP-Link Hardware Management Controller.

Hatte ich wie ursprünglich so gemacht, richtig.

Richtig, siehe oben.

Bisher noch nicht getestet. In 2 Wochen wird die Schule komplett auf linuxmuster umgestellt und dann kann ich auch das WLAN auf WPA2 Enterprise umstellen. Ich hoffe, daß das funktioniert und melde mich dazu noch, bzw. gebe Rückmeldung.

Danke für die Änderungen in der Doku.
@Thomas hat meine ergänzenden Anregungen jetzt angenommen und den Benutzerfilter für das OPNsense Setup jetzt so geändert:

`(&(objectClass=person)(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=CN=wifi,OU=Management,OU=*))`

Damit wird meine oben erwähnte „wificlass“ jetzt nicht mehr gefunden und der Filter funktioniert.
Siehe:

Eventuell sollte die Doku dem neuen OPNsense Radius Setup angepasst werden. Dann braucht es diesen Textbaustein in der Doku nicht mehr:

Der Benutzerfilter ist auf die eigene Domain anzupassen.

Viele Grüße
Klaus

Hallo Klaus,
vielen Dank für Dein Feedback, ich habe die Doku nun so angepasst, dass es zum angepassten Radius Setup von @thomas passt. Müsste gleich aktualisiert sein :grinning:
VG
Chris

Hallo,

ich bin gerade dabei die Schule auf linuxmuster umzustellen und jetzt hängt es bei der WPA2 Enterprise Authentifizierung.
Ich habe beide Setups die hier beschrieben sind ausprobiert. Also einmal über OPNsense und einmal auf dem Server(docker Host habe ich nicht konfiguriert)

Beim Debugmodus an den Radius Servern sehe ich:
OPNsense:
LDAP wird versucht:

rlm_ldap (ldap): Reserved connection (1)
(8) ldap: EXPAND (&(objectClass=person)(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=CN=wifi,OU=*))
(8) ldap:    --> (&(objectClass=person)(sAMAccountName=tester)(memberOf=CN=wifi,OU=*))
(8) ldap: Performing search in "OU=SCHOOLS,DC=fzi,DC=lan" with filter "(&(objectClass=person)(sAMAccountName=tester)(memberOf=CN=wifi,OU=*))", scope "sub"
(8) ldap: Waiting for search result...
(8) ldap: User object found at DN "CN=tester,OU=Teachers,OU=default-school,OU=SCHOOLS,DC=fzi,DC=lan"
(8) ldap: Processing user attributes
(8) ldap: WARNING: No "known good" password added. Ensure the admin user has permission to read the password attribute
(8) ldap: WARNING: PAP authentication will *NOT* work with Active Directory (if that is what you were trying to configure)
rlm_ldap (ldap): Released connection (1)
(8)       [ldap] = ok

Auf dem Server wird ntlm_auth versucht, so wie es laut Anleitung konfiguriert ist:

(1) Found Auth-Type = ntlm_auth
(1) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(1)   authenticate {
(1) ntlm_auth: Executing: /usr/bin/ntlm_auth --request-nt-key --domain=FZI --username=%{mschap:User-Name} --password=%{User-Password}:
(1) ntlm_auth: EXPAND --username=%{mschap:User-Name}
(1) ntlm_auth:    --> --username=tester
(1) ntlm_auth: EXPAND --password=%{User-Password}
(1) ntlm_auth:    --> --password=
(1) ntlm_auth: ERROR: 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)'
(1)     [ntlm_auth] = reject
(1)   } # authenticate = reject
(1) Failed to authenticate the user

Ein radtest liefert bei beiden Setups
Received Access-Accept Id 97 from 10.0.0.254:1812 to 0.0.0.0:0 length 20
Received Access-Accept Id 100 from 10.0.0.1:1812 to 0.0.0.0:0 length 20

Der Client liefert offenbar kein Passwort. Stimmt mein Setup, bzw. funktionieren die offiziellen Dokus bei jemandem?

Danke und viele Grüße
Klaus

Hallo Klaus,

wir haben letztes Jahr versucht den RADIUS der OPNsense für unifi zu
verwenden: das hat nicht geklappt.
Es soll mit anderen Lösungen inzwischen gehen (nicht mit unifi).
Ob es inzwischen auch mit unifi geht, kann ich nciht sagen: ich setzte
das anders um.

LG

Holger

Hallo Holger,

danke für die schnelle Rückmeldung!

Ich habe hier 2 verschiedene Accesspoints probiert, TP-Link und D-Link. Beide Male dieselbe Fehlermeldung. Ich glaube nicht, daß es an den Accesspoints liegt.

Welche Lösung hast Du?

Viele Grüße
Klaus

Ja, bei uns läuft es, so wie in der Doku beschrieben. Das letzte linuxmuster-base7 update hat allerdings den Eintrag, der in der /etc/smb.conf vorgenommen werden musste, wieder rausgeworfen. Schau mal, ob der noch da ist.

Wir haben den freeradius auch direkt auf dem Server mit laufen und es funktioniert soweit ohne weitere Probleme.

vG Stephan

Hallo Stephan,

danke! Welche Accesspoints hast Du?

Viele Grüße
Klaus

Cisco WLC mit entsprechenden APs.

Hallo Klaus,

hast du die Einstellungen, die Dominik damals vorgestellt hatte, beachtet?

Das war seinerzeit hier:

Später gab es noch eine Ergänzung bzgl V2 in diesem Thread:

hth,
Michael

Ich sitze auch weiterhin an diesem Problem …

Wenn ich ``sophomorix-managementgroup -iv
verwende, sehe ich, dass z.Z 102 teacher und 5 students in der Gruppe wifi sind.
Kann ich mir auch anzeigen lassen, welche User/Logins das sind?

Hallo Michael,

wie das mit sophomorix tools geht, weiß ich nicht, aber so geht es auf alle Fälle:

samba-tool group listmembers wifi

Viele Grüße
Klaus

Ok, damit sehe ich aber leider auch noch nicht, welche der Logins nun den Schülern gehören, da einfach alle gelistet werden

Hab’s – so bekommt man die gesuchten Infos:

sophomorix-managementgroup -i -m wifi -v 

bzw gefiltert:
sophomorix-managementgroup -i -m wifi -v | grep Students | awk -F , '{print $1","$2}' | nl

:+1: