Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
anwenderwiki:server_lmn7:freeradius:start [2021/01/05 14:02] – [Firewallregeln anpassen] cweikl | anwenderwiki:server_lmn7:freeradius:start [2021/01/05 14:13] (aktuell) – [Netzwerkzugriff über FreeRADIUS] cweikl | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> }} | ||
+ | |||
+ | ====== Netzwerkzugriff über FreeRADIUS ====== | ||
+ | |||
+ | RADIUS (Remote Authentification Dial-In User Service) ist ein Client-Server Protokoll, das zur Authentifizierung, | ||
+ | |||
+ | Der RADIUS-Server dient als zentraler Authentifizierungsserver, | ||
+ | |||
+ | Viele Geräte und Anwendungen, | ||
+ | |||
+ | In linuxmuster.net v7 ist der offizielle Weg und supportete Weg diesen entweder direkt auf der OPNSense als Plugin zu betreiben oder als Docker-Container auf dem optionalen Docker-Host. Beides funktioniert noch im Januar 2021 noch nicht zuverlässig oder ist noch nicht fertig entwickelt. | ||
+ | |||
+ | Die nachstehende Anleitung dient daher lediglich als * W O R K A R O U N D*, um mit wenig Aufwand den FreeRADIUS - Dienst auf dem lmn - Server zu installieren und an die v7 anzupassen. | ||
+ | |||
+ | Dies ist kein offiziell unterstützer Weg ! | ||
+ | |||
+ | ===== Zugehörigkeit zur Gruppe wifi ===== | ||
+ | |||
+ | Der Zugriff soll über die Schulkonsole gesteuert werden. Dafür werden Benutzer einer speziellen Gruppe wifi hinzugefügt oder daraus entfernt. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | **Zugehörigkeit zur Gruppe wifi einmalig festlegen** | ||
+ | |||
+ | Die Steuerung der Gruppenzugehörigkeit kann auf der Konsole auf dem lmn-Server wie folgt gesetzt werden. Wenn man z.B. nur die Gruppe der Lehrer und der Schüler der Oberstufenklassen „k1“ und „k2“ für WLAN-Zugang konfigurieren will, erstellt man eine Vorlage und setzt die wifi-Gruppe dann wie folgt: | ||
+ | |||
+ | < | ||
+ | server ~ # cat << EOF > / | ||
+ | MEMBER_ROLE=teacher, | ||
+ | MEMBER_CLASS=teachers, | ||
+ | EOF | ||
+ | </ | ||
+ | < | ||
+ | server ~ # sophomorix-managementgroup --set-wifi teachers_and_oberstufe | ||
+ | </ | ||
+ | |||
+ | Um noch weitere einzelne Schüler hinzuzunehmen oder zu entfernen, nutzt man danach die Funktion --wifi bzw. --nowifi mit von Komma getrennten Benutzernamen. | ||
+ | |||
+ | < | ||
+ | server ~ # sophomorix-managementgroup --nowifi lempel, | ||
+ | server ~ # sophomorix-managementgroup --wifi schlaubi, | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Freeradius installieren und aktivieren ===== | ||
+ | |||
+ | < | ||
+ | # apt install freeradius | ||
+ | # systemctl enable freeradius.service | ||
+ | </ | ||
+ | |||
+ | ===== ntlm_auth in samba erlauben ===== | ||
+ | |||
+ | In der Datei /// | ||
+ | |||
+ | < | ||
+ | [global] | ||
+ | |||
+ | ... | ||
+ | ntlm auth = mschapv2-and-ntlmv2-only | ||
+ | </ | ||
+ | |||
+ | Danach muss der samba-ad-dc Dienst neu gestartet werden: | ||
+ | |||
+ | < | ||
+ | |||
+ | # systemctl restart samba-ad-dc.service | ||
+ | </ | ||
+ | |||
+ | ===== Radius konfigurieren ===== | ||
+ | |||
+ | Dem Freeradius-Dient muss Zugriff auf winbind gegeben werden: | ||
+ | |||
+ | < | ||
+ | |||
+ | # usermod -a -G winbindd_priv freerad | ||
+ | # chown root: | ||
+ | |||
+ | </ | ||
+ | |||
+ | In dem Verzeichnis /// | ||
+ | |||
+ | < | ||
+ | authenticate { | ||
+ | | ||
+ | # ab hier geht es weiter | ||
+ | </ | ||
+ | |||
+ | Die Datei /// | ||
+ | |||
+ | < | ||
+ | mschap { | ||
+ | use_mppe = yes | ||
+ | with_ntdomain_hack = yes | ||
+ | # hier geht es weiter | ||
+ | </ | ||
+ | |||
+ | Anpassen des Abschnitts // | ||
+ | |||
+ | < | ||
+ | # eine Zeile | ||
+ | ntlm_auth = "/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Dabei muss DOMÄNE durch den eigenen Domänennamen (Samba-Domäne) ersetzt werden. Die Option –require-membership-of=… lässt nur Mitglieder der Gruppe wifi zu. So funktioniert die WLAN-Steuerung über die WebUI. | ||
+ | |||
+ | Danach ist die Datei /// | ||
+ | |||
+ | < | ||
+ | exec ntlm_auth { | ||
+ | wait = yes | ||
+ | # eine Zeile | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Dabei muss DOMÄNE durch den eigenen Domänennamen (Samba-Domäne) ersetzt werden. | ||
+ | |||
+ | In der Datei /// | ||
+ | |||
+ | < | ||
+ | DEFAULT | ||
+ | </ | ||
+ | |||
+ | Nun ist der Freeradius-Dienst neuzustarten: | ||
+ | < | ||
+ | # systemctl restart freeradius.service | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Das Defaultverhalten der lmn7 ist, dass ein neu angelegter User immer in der Gruppe wifi ist, d.h. auch alle Schüler dürfen zunächst in das WLAN.</ | ||
+ | |||
+ | Die Steuerung der Gruppenzugehörigkeit kann auf der Konsole wie folgt gesetzt werden: | ||
+ | |||
+ | < | ||
+ | # sophomorix-managementgroup --nowifi/ | ||
+ | </ | ||
+ | |||
+ | Um alle Schüler aus der Gruppe wifi zu nehmen, läßt man sich alle User des Systems auflisten und schreibt diese in eine Datei. Dies kann wie folgt erledigt werden: | ||
+ | |||
+ | < | ||
+ | # samba-tool user list > user.txt | ||
+ | </ | ||
+ | |||
+ | Jetzt entfernt man alle User aus der Liste, die immer ins Wlan dürfen sollen. Danach baut man die Liste zu einer Kommazeile um mit: | ||
+ | |||
+ | < | ||
+ | #less user | tr ' | ||
+ | </ | ||
+ | |||
+ | Die Datei kann jetzt an den o.g. Sophomorix-Befehl übergeben werden: | ||
+ | |||
+ | < | ||
+ | # sophomorix-managementgroup --nowifi $(less usermitkomma.txt) | ||
+ | </ | ||
+ | |||
+ | ===== Firewallregeln anpassen ===== | ||
+ | |||
+ | Auf dem lmn-Server ist in der Datei /// | ||
+ | |||
+ | < | ||
+ | udp domain, | ||
+ | </ | ||
+ | |||
+ | Danach ist der lmn-Server neu zu starten. | ||
+ | |||
+ | Auf der Firewall OPNsense® muss je nach eigenen Voraussetzungen dafür gesorgt werden, dass die AP’s aus dem Wlan-Netz den Server auf dem Port 1812 via udp erreichen können. Es ist darauf zu achten, dass die IP des Servers den eigenen Netzvorgaben entspricht (also z.B. 10.0.0.1/16 oder /24 oder 10.16.1.1/ | ||
+ | |||
+ | Die Regel auf der OPNsense® hierzu könnten, wie nachstehend abgebildet, eingetragen werden. | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | Jetzt sollte die Authentifizierung per WPA2-Enterprise funktionieren, | ||
+ | |||
+ | Sollte das nicht funktionieren, | ||
+ | |||
+ | < | ||
+ | # service freeradius stop | ||
+ | # service freeradius debug | ||
+ | </ | ||
+ | |||
+ | Jetzt sieht man alle Vorgänge während man versucht, sich mit einem Device zu verbinden. | ||
+ | |||
+ | ====== APs im Freeradius eintragen ====== | ||
+ | |||
+ | Die APs müssen im Freeradius noch in der Datei /// | ||
+ | |||
+ | < | ||
+ | client server { | ||
+ | ipaddr = 10.0.0.1 | ||
+ | secret = GeHeim | ||
+ | } | ||
+ | |||
+ | client opnsense { | ||
+ | ipaddr = 10.0.0.254 | ||
+ | secret = GeHeim | ||
+ | } | ||
+ | |||
+ | client unifi { | ||
+ | ipaddr = 10.0.0.10 | ||
+ | secret = GeHeim | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Um den APs feste IPs zuzuweisen, sollten diese auf dem lmn-Server in der Datei /// | ||
+ | |||
+ | Je nachdem, ob in jedem (Sub)-netz die APs angeschlossen werden, ist die zuvor dargestellte Firewall-Regel anzupassen. Der Radius-Port in der OPNsense® müsste dann z.B. von Subnetz A (blau) zu Subnetz B (grün Servernetz) geöffnet werden, damit alle APs Zugriff auf den Radius-Dienst erhalten. | ||
+ | |||