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. | ||
| + | |||