{{tag> WLAN monowall "captive Portal" freeradius}}
====== Monowall als Captive Portal ======
Monowall (-> [[http://m0n0.ch/wall/|m0n0wall download]]) ist zwar eine eigenständige Firewall auf FreeBSD-Basis, kann aber auch als zusätzliche WLAN-Firewall eingesetzt werden. Das mitgelieferte Captive Portal ist eine umfangreiche Hot-Spot-Lösung mit vielen Möglichkeiten, die auch gleichzeitig genutzt werden können. Die Firewall pfSense ist von Monowall abgeleitet, Monowall ist aber m.E. übersichtlicher gestaltet.
* lokale Benutzerverwaltung oder Radius-Authentication
* MAC-Listen (uneingeschränkte Pass-Through-MAC-Adressen)
* IP-Listen (Allowed IP-Adresses)
* Voucher-Authentication (zeitlich begrenzter Zugriff)
Getestetes Szenario in einer virtuellen Umgebung mit linuxmuster.net 6:
* Monowall Version 1.8.1b545 als zusätzliche Maschine im grünen Netz (die WLAN-APs sind natürlich nicht im grünen Netz, sondern haben ein eigenes Netz!)
* System: FreeBSD
* mit 3 Netzwerkkarten: LAN, WAN, OPT1
* mit 128 MB RAM und 2 GB HD (für produktive Systeme vergrößern!)
* ohne audio, ohne USB
* Sowohl Radius-Authentication als auch Voucher-Zugriff
===== 1. Installation =====
Die Maschine mit der .iso-Datei booten, Installation auf HD (Nr.7) auswählen. Nach dem Reboot Maschine ausschalten, ".iso" entfernen, Bootreihenfolge - zuerst HD - und wieder anschalten.\\
m0n0wall console setup
**********************
1) Interfaces: assign network ports
2) Set up LAN IP address
3) Reset webGUI password
4) Reset to factory defaults
5) Reboot system
6) Ping host
Mit der monowall-Konsole (Nr. 1) LAN-Interface mit em0 verbinden, WAN-Interface mit em1 verbinden, OPT1-interface mit em2 verbinden. Hier kann man u.U. auch VLAN Zugehörigkeiten setzen. Danach Reboot.
===== 2. Zugriff der Monowall-Web-Oberfläche über das WAN-Interface zulassen =====
Per default erlaubt die Firewall nur über das LAN-Interface einen Zugriff auf die WebGUI.
Zunächst nur das LAN-Interface mit dem Grünen Netz verbinden und auf der monowall-Konsole (Nr. 2) eine feste IP vergeben (z.B. 10.16.1.99, Bit-Count = 12, __kein__ DHCP-Server).\\
Jetzt an einem Client im grünen Netz im Browser aufrufen: http://10.16.1.99 mit Name "admin" und Kennwort "mono". Unter Firewall -> Rules -> WAN die bestehende Regel "Block Private networks" löschen und eine neue Regel erstellen:
Pass + WAN + TCP + Source: network 10.16.0.0/12 + Destination: WAN-address + Destintion Port Range: http/http
Die MAC des WAN-Interfaces als Client (hier mit IP 10.16.1.5) in dem workstations-hosts von linuxmuster.net eintragen.
===== 3. (Virtuelle) Verkabelung setzen =====
Monowall ausschalten und Netzwerkkarten neu zuordnen:
* LAN-Interface (em0) ohne Verbingung
* WAN-Interface (em1) im grünen Netz, erhält IP per dhcp
* OPT1-Interface (em2) ist das monowall-Netz für die WLAN-Access-Points
Auf der monowall-Konsole (Nr. 2) für das LAN-interface nun eine dummy-IP vergeben, z.B. 192.168.99.1 mit Maske 24-Bit. Das Interface darf nicht gelöscht werden!
===== 4. Captive Portal aktivieren ====
WebGUI aufrufen: http://10.16.1.5
{{:anwenderwiki:wlan:monowall-captive-portal.jpg|WebGUI}}
* Interface -> OPT1 -> enable, 192.168.3.1/24
* Services -> Captive Portal -> enable, Interface OPT1, enable Logout-popup-Window, local-User-Manager
* Services -> DHCP-Server -> OPT1 -> enable, Range 192.168.3.100 - 192.168.3.200
* Services -> Captive Portal -> Users -> Lokaler Testuser mit Kennwort anlegen
Für das Login muss man selbst eine Seite hochladen,
* Services -> Captive Portal -> Portal page contents
z.B.:
WLAN-Captive Portal von Linuxmuster.net und Monowall
Bitte melden Sie sich an:
===== 5. Firewall-Regeln =====
{{:anwenderwiki:wlan:monowall-rules-opt1.jpg|WebGUI}}
Unter Firewall -> Rules -> OPT1
* für HTTP: ''Protokoll TCP + Destination Port 80 (HTTP)''
* für DNS: ''Protokoll TCP/UDP + Destination Port 53 (DNS)''
* für Captive Portal: ''Protokoll TCP + Destination 192.168.3.1 + Destination Port 8000''
* für HTTPS: .........
===== 6. Radius-Authentication einstellen =====
Am linuxmuster.net - Server muss dann freeradius installiert werden:
# apt-get install linuxmuster-freeradius
und die Monowall in **''/etc/freeradius/clients.conf''** eingetragen werden:
client monowall {
ipaddr = 10.16.1.5
secret = muster123
}
In der Datei **''/etc/linuxmuster/allowed_ports''** den Radius-Port für das grüne Subnet freischalten:
...
udp domain, ... , 1812
...
Und Services neustarten mit:
# service linuxmuster-base restart
# service freeradius restart
Schließlich in der WebGUI der Monowall:
Unter ''Services -> Captive-Portal -> Authentication -> RADIUS Authentication''
IP-Address: 10.16.1.1
Port: 1812
Shared Secret: muster123
===== 7. Voucher erstellen =====
**Tip:** In der Firewall kann man einen Benutzer-Zugang anlegen, der nur Voucher erstellen darf, sonst nichts.
Unter ''Services -> Captive Portal -> Voucher'' kann man nun "Voucher Rolls" von Vouchern erstellen.
Die erstellten Voucher sind per csv-Datei verfügbar/herunterladbar. Sie bestehen aus einem Zahlencode und können beliebige Gütigkeitsdauern haben.
===== 8. To Do: =====
* WebGUI nur per https zugänglich
* WLAN-Zugriffe per https erlauben
* Loging einstellen
* sichere Kennwörter setzen
* login.html verbessern, anhübschen und ggf. mit Datenschutzhinweis