[Fli4l_dev] Gäste WLAN absichern bzw. abtrennen

B. Sprenger b.sprenger at sprenger-ffm.de
Mi Nov 23 17:53:22 CET 2016


Hallo zusammen,
ich habe einige Unklarheiten die fli4l nur teilweise betreffen, aber da 
es ein Routingproblem ist, habe ich kein schlechtes Gewissen hier 
nachzufragen.
Als Router wird fli4l 4.0 eingesetzt.

Ziel ist es den Gästen einen definierten WLAN-Zugang zu ermöglichen, 
ohne Zugriff auf die übrigen Netzwerk-Resourcen.
Es gibt schon ein paar Beiträge im Forum, aber keiner passt so richtig 
auf meine Voraussetzungen.

Es gibt mehrere Standorte die jeweils mit einem fli4l mit dem Internet 
verbunden sind. Zwischen den fli4ls sind OpenVPN Verbindungen 
eingerichtet über die der Zugriff untereinander möglich ist.

In einem Netz läuft eine Eisfair mit einem Radiusserver.
Es gibt mehrere WLAN-Accespoints an den verschiedenen Standorten (pro 
Standort zwischen 1 und 7 Stationen).
Alle Accespoints greifen auf den Radiusserver zu und die Clients 
authentifizieren sich gegenüber dem zentralen Radiusserver.
Ich habe also eine zentrale Benutzerverwaltung
Auf allen WLAN-Stationen läuft dd wrt als Betriebssystem 
(https://www.dd-wrt.com, Version 11-14-2016-r30880)
Es sind jeweils zwei WLAN-Netze eingerichtet (einmal Standard und einmal 
Gast).
Das Standard-WLAN-Netz hat vollen zugriff auf das Netz.
Das Gäste-Wlan ist auf den Accepoints abgetrennt.
Auf den Accesspoints ist eine Bridge br0 definiert, der die 
Schnitsttelle ath0 (normales WLAN) und vlan1 (internes Netz des 
Accespoints) angehören.
Weiterhin ist eine Bridge br1 definiert, der nur die Schnitstelle ath0.1 
(Gäste-WLAN) angehört.
Für br1 ist dann eine zusätzliches Subnetz mit eigenem DHCP-Server (auf 
jeder WLAN-Station) definiert.

Damit das jetzt funktioniert sind folgende Firewall-Regeln (auf den 
WLAN-Stationen) eingerichtet:
(Nachfolgend die Beispielkonfiguration der Station mit der IP 
172.16.0.40, das Netz in dem sie hängt ist 172.16.0.0/16. Das Gäste-WLAN 
hat IP-Adressen 172.29.0.0/16)

iptables -t hat -A PREROUTING -i br1 -p udp --dport 53 -j DNAT --to 
172.16.0.40
iptables -t nat -A PREROUTING -i br1 -p tcp --dport 53 -j DNAT --to 
172.16.0.40

iptables -I FORWARD -i br1 -d 172.16.0.40/255.255.0.0 -m state --state 
NEW -j DROP

iptables -t nat -I POSTROUTING -o br0 -j SNAT --to 172.16.0.40

# Zugriff verbieten
iptables -I INPUT -i br1 -m state --state NEW -j DROP

# DHCP und DNS erlauben...
iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT
iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT
iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT

# nur http & https erlauben...
iptables -I FORWARD -i br1 -j DROP
iptables -I FORWARD -i br1 -p udp --dport 53 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 53 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 443 -j ACCEPT


# 25 smtp, 110 pop3, 143 imap 993 ssl-map usw.
iptables -I FORWARD -i br1 -p tcp --dport 25 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 110 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 143 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 993 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 995 -j ACCEPT
iptables -I FORWARD -i br1 -p tcp --dport 587 -j ACCEPT
####


Das funktioniert soweit erst mal alles.
Die Gäste-WLAN-Clients haben nur Zugriff auf die oben genannten Ports.

Im Moment unterscheidet der Radiusserver noch nicht, über welches Netz 
sich angemeldet wird. Da muss ich also noch eine zweite Instanz oder 
einen zweiten Radiusserver aufsetzen.
Ausserdem können die Gäste auf alle Webinterfaces von netzinternen 
Geräten zugreifen. Auch wird der verursachte Traffic bei den 
WLAN-Stationen registriert.

Daher möchte ich noch einen Schritt weiter gehen.
Der fli4l kann die Gäste im Moment nicht "sehen", da die WLAN-Stationen 
NAT durchführen.
(Ab hier beginnen jetzt meine Wunschvorstellungen, bei deren Umsetzung 
ich Hilfe benötige)
Ich stelle mir also vor, den Datenverkehr ohne NAT bei den Accesspoints 
über ein getaggtes VLAN zum fli4l weiterzuleiten.
Die DHCP-Anfragen werden dann vom fli4 beantwortet.

Dazu müsste ich also auf dem fli4l eine eth0.3 und eth0.5 anlegen (VLAN3 
für "normales Netz" und VLAN5 für die Gäste)

Kann ich das dann so schreiben?
IP_NET[1]='172.17.0.1/16'    # IP address of your n'th ethernet card
{
   DEV='eth0.5'
}

IP_NET[2]='172.29.0.1/16'    # IP address of your n'th ethernet card
{
   DEV='eth0.5'
}

In die INPUT-Chain kommt dann folgendes?
PF_INPUT[]='IP_NET_2 ACCEPT'  # allow all hosts in the local network to
                               # access the router


FORWARD bleibt dann leer?
bzw. nur folgender Eintrag:
PF_FORWARD[]='IP_NET_1 ACCEPT

Und bei POSTROUTING muss vermutlich folgender Eintrag getätigt werden?
PF_POSTROUTING[]='IP_NET_2 MASQUERADE'

Natürlich muss dann in der dns_dhcp.txt noch der DHCP-Server aktiviert 
werden.
Vermutlich muss auch auf den Switchen VLAN aktiviert und konfiguriert 
werden.


Wären das die Eingriffe in den Konfigurationsdateien auf dem fli4l, oder 
habe ich etwas vergessen bzw. falsch verstanden?


Und wie müsste ich die Firewallregeln auf den Accesspoints korrigieren, 
damit der Verkehr ohne NAT ins interne Netz geroutet wird?
Vermutlich macht das der folgende Eintrag
iptables -t nat -I POSTROUTING -o br0 -j SNAT --to 172.16.0.40
Aber ich habe mir versucht die Erklärungen anzuschauen, bin aber nicht 
richtig durchgestiegen.

Vielen dank schon mal für das lesen bis hierher.

LG
Boris

LG
Boris


Mehr Informationen über die Mailingliste Fli4l_dev