Installation und Konfiguration von Shorewall (Firewall) unter Openwrt

kurze Beschriebung von shorewall

Shorewall ist ein Programm das anhand einiger Konfigurationsdateien (in /etc/shorewall/) iptables Regeln erstellt und aktiviert. Wenn wir die Konfiguration verändert haben müssen wir shorewall mit dem Befehl /etc/init.d/S35shorewall restart neustarten. Dann wird shorewall die neuen configs einlesen und entsprechend übernehemen.
ACHTUNG: Wenn Ihr shorewall erst ausschaltet /etc/init.d/S35shorewall stop und dann wieder einscahltet /etc/init.d/S35shorewall start, werden die neuen configs nicht übernommen sondern shorewall erstellt beim ausschalten eine Datei (restore), in der drinsteht mit welche Regeln aktiv waren als shorewall ausgeschaltet wurde. Diese Datei wird dann beim Start wieder eingelesen. Das ganze bringt einen Geschwindigkeitsvorteil beim Starten, da nicht erst alle config abgearbeitet und in iptables Regeln übersetzt werden müssen.

Um die Grundlagen von shorewall zu verstehen sind die config Dateien interfaces, zones, rules und policy interessant.
In zones wird festgelegt welche Zonen existieren. Eine Zone ist ein abgegrenzter Teil des Netzwerk, also z.B. bestimmte einzelne Rechner können anhand ihrer IP Addresse einer Zone zugeordnet werden, es ist auch möglich zu sagen alle die mit wlan verbunden sind, sind eine Zone, alle die per Kabel verbunden sind, sind eine andere Zone und die dritte Zone entählt die Rechner die im VPN eingeloggt sind.
Die Festlegung, wer in welcher Zone ist, wird in der Datei interfaces gemacht.
In der Datei policy werden die Grundregeln, also wer mit wem kommunizieren darf, festgelegt.
In der Datei rules werden die Ausnamhen von den, in policy festgelegten, Regeln.




Installation von shorewall

Ein benötigtes Modul laden und anschalten:
ipkg install iptables-mod-extra
insmod ipt_LOG.o

Shorewall laden und installieren:
wget http://openwrt.homelinux.net/repository/shorewall_3.0.5-1_mipsel.ipk
ipkg install shorewall_3.0.5-1_mipsel.ipk




Konfiguration von shorewall

Die alte Firewall löschen:
rm /etc/init.d/S35firewall

Folgende Config Dateien an die genannten Stellen kopieren:
/etc/shorewall/interfaces
/etc/shorewall/masq
/etc/shorewall/policy
/etc/shorewall/rules
/etc/shorewall/zones

Diese Init Dateien kopieren:
/etc/init.d/S35shorewall
/etc/init.d/S98shorewallRE
Noch die Init Dateien ausführbar machen:
chmod +x /etc/init.d/S35shorewall
chmod +x /etc/init.d/S98shorewallRE

Und jetzt mal ausprobieren:
/etc/init.d/S35shorewall start

Die zweite Init Datei ist ein Workaround da es nur mit der normalen Init Datei nicht automatisch funktioniert hatte. Ich musste immer erst die Firewall neustarten nach einem Router Neustart. Vermutlich hängt das mit dem mounten der SD Karte nach / zusammen.


Weiter mit dem Aufsetzen des macchangers.