Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:wlan:monowall]] 

Monowall als Captive Portal

Monowall (→ 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

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

login.html
<html>
WLAN-Captive Portal von Linuxmuster.net und Monowall <br>
<hr>
Bitte melden Sie sich an:<br>
<hr>
<form method="post" action="$PORTAL_ACTION$">
   Benutzer:<input name="auth_user" type="text"><br>
   Kennwort:<input name="auth_pass" type="password"><br>
   Voucher: <input name="auth_voucher" type="text"><br>
   <input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
   <input name="accept" type="submit" value="Anmelden">
</form>
</html>

5. Firewall-Regeln

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:

allowed_ports
  ... 
  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
 [[anwenderwiki:wlan:monowall]] anwenderwiki/wlan/monowall.txt · Zuletzt geändert: 2013/08/30 14:19 (Externe Bearbeitung)