Router mit DD-WRT als RADIUS-Clients

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen

Die Konfiguration von Windows-Clients für RADIUS ist nicht gerade einfach und selbsterklärend. Als Clients können auch WLAN-Router mit einer speziellen Firmware fungieren. Das Endgerät des Nutzers benötigt außer einem Browser nichts, um sich am WLAN anzumelden.

Grundprinzip

Das folgende Schema zeigt die Funktion und die beteiligten Komponenten:

Chillispot iserv.png

Ein Client, der nur über einen Browser verfügen muss (Handy, Tablet, Notebook...) verbindet sich über WLAN mit einem Router. Er erhält eine IP-Adresse, jedoch werden alle Anfragen an eine bestimmte Loginseite auf denm IServ weitergeleitet. Es können zunächst keine anderen Seiten geöffnet werden. Auf der Loginseite (iserv_hotspot.php) gibt der Benutzer nun seine Zugangsdaten über HTTPS ein. Diese werden durch das RADIUS-Modul auf dem IServ gegen dessen Benutzerdatenbank /etc/shadow geprüft. Wenn das erfolgreich ist, gibt der Router das Internet für den Client frei, indem er die Client-IP jetzt komplett routet. Obwohl das Ganze zunächst einmal recht komplex wirkt, lassen sich die allermeisten Konfigurationen bequem per GUI vornehmen.

Warnung

Die hier vorgestellte Konfiguration ist - wenn sie läuft - sehr attraktiv für Nutzer, jedoch nicht trivial und schon gar nicht ausschließlich über die IServ-Oberfläche vornehmbar. Sie hat den Vorteil, dass sie nur einmal zentral vorgenommen werden muss und die Clients gar nicht mehr eingerichtet werden müssen. Sie setzt aber GRundkentnisse auf der Konsole und "Mut zum Root" voraus.

Die Konfiguration

Welche Daten werden benötigt?

Angabe Funktion Quelle
<secret> Absicherung der Kommunikation zwischen Client und RADIUS Vom RADIUS-Modul bei Installation abgefragt
<uam_secret> Absicherung der Kommunikation zwischen Webserver und ChilliSpot frei wählbar
<radius_ip> IP des Freeradius-Servers typischerweise IP des internen Netzdevices von IServ
<login_url> URL der ChilliSpot-Loginseite auf dem IServ <url_zu>/iserv_hotspot.php
<nas_id> Name des Hotspots (notwendig) frei wählbar
<dns_ip> IP des Gateways ins Internet (meist IServ-IP) vgl. IServ-IP

Konfiguration auf dem IServ

Freeradius

Das WLAN-Modul verwendet zurzeit eine Konfiguration, die notwendig ist, um Passworte zu verarbeiten, die ein Windows-Client direkt verschlüsselt. Folgerichtig werden diese gegen Samba auf IServ geprüft. Optionen in der radiusd.conf des WLAN-Moduls verhindern die für dieses Setup notwendige Authentifizierung gegen /etc/shadow. Das WLAN-Modul ist daher für die Hotspotfunktionalität in der vorliegenden Form nicht brauchbar. Mittelfristig müssten zwei getrennte VHosts im RADIUS für beide Authentifizierungsarten konfiguriert werden.

Konfiguration des Routers

Geeignete Hardware

Auf dem Router muss eine spezielle Firmware (DD-WRT) installiert werden. Diese enthält bereits den ChilliSpot-Dienst mit einem Web-Interface zur Konfiguration. Welche Router in Frage kommen, kann auf der Internetseite des DD-WRT-Projektes recherchiert werden: Webseite von DD-WRT. Dort sucht man in der Router-Database nach kompatiblen Geräten - das sind erstaunlich viele alte und neuere Router. Bei jedem Modell befindet sich eine Anleitung, wie die neue Firmware installiert werden kann und welche Firmwaredatei sich eignet.

Ich empfehle zwei Router:

  • Den Linksys WRT54GL (lange Zeit das Standardmodell für jede Art von OpenSource-Firmware, für das ,was er kann, doch mittlerweile mit seinen 70,- Euro neu recht überteuert)
  • Den TP-Link TL-WR1043ND (viel Leistung für kleines Geld, z.B. WLAN nach N-Standard, Gbit-Switch, USB-Port - das macht ihm für rund 50 Euro kaum einer nach)

Einstellungen am Router

Integration in das IServ-Netz

Der Router muss zunächst in das interne Netzwerk des IServ integriert werden. Zudem darf der Router nach innen nicht als DHCP-Server auftreten - das macht ja schließlich der IServ selbst. Damit wir den Router auch über seinen WAN-Port erreichen können, muss zusätzlich sein Admin-Interface freigegeben werden.

Konfiguration von Chillispot

Einbindung des Routers am IServ