DD-WRT Firewall rekonfiguration per script

Gestern stand ich vor dem Problem einen Linksys WRT54GS Router als AP für ein Gast WLAN einzurichten. Es sollten nur bestimmte Ports und Protokolle zugelassen werden. Nichts leichter als das, dachte ich mir und wollte einfach Firewall-Regeln per Hand einfügen. In der Standart Firmware ist das aber sehr umständlich wenn nicht sogar unmöglich. Also, dachte ich mir, ich flashe das Gerät mit DD-WRT und trage die erlaubten Dienste in der weboberfläche ein. Leider ist diese auch sehr beschränkt. Irgendwie hat aber das Regelwerk nicht richtig funktioniert. also habe ich in der Oberfläche JFFS aktiviert, den SSH Dienst gestartet und unter /jffs/rules.sh ein Script mit ein Paar iptables aufrufen abgelegt.

#!/bin/sh
# Firewall neu konfigurieren
iptables -F
iptables -A FORWARD -i br0 -i vlan1 -d 10.0.0.0/24 -j DROP
iptables -A FORWARD -i br0 -p tcp –sport 1024: –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i br0 -p tcp –sport 1024: –dport 110 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp –dport 1024: -i vlan1 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -P FORWARD DROP
# webserver auf anderem Port starten
kill $(pidof httpd)
httpd -p 54321

Um das Script nun beim booten des WRT auszuführen, muss es noch mit nvram set rc_costum=”/jffs/rules.sh” eingetragen werden.

Der Internet-Port ist mit einer Fritzbox verbunden, welche die Internetverbindung herstellt. diese liegt im Netzwerk 10.0.0.0/24. Der Linksys stellt DNS, DHCP und Routing-Dienste für das WLAN, welches im Netzwerk 10.0.1.0/24 liegt bereit. Somit können Gäste Webseiten aufrufen, Emails abrufen usw. aber keine ungewollten Dienste starten oder auf das Fritzbox-LAN zugreifen. Zusätzlich müssen Gäste ein Schriftstück unterschreiben, in dem Sie sich verpflichten keine illegalen Dienste im Internet zu nutzen.

Falls es zu Problemen kommen sollte, könnte man zusätzlich L7 regeln eintragen, um sicherzugehen das auf den erlaubten Ports auch wirklich die Protokolle verwendet werden, für die sie registriert sind. Da das aber sehr viel CPU-Last verursacht, werden diese erst bei Bedarf eingefügt.

Comments are closed.