Wer sich selbst eine Firewall baut steht irgendwann vor der Frage „wie starte ich das Firewallscript bei jedem Boot?“.
Da gibts es zwei Möglichkeiten:
- Die Regel exportieren und bei jeder Aktivierung der Netzwerkkarte laden
- das script im entsprechnende Runleve Eintragen
Möglichkeit 1
Laden Sie zuerst die Firewall Regel. Sind diese wie gewünscht (iptables -L) exportieren Sie diese in eine Datei:
iptables-save > /etc/firewall.conf
Nun wird ein script erstellt, dass bei jedem laden der Netzwerkkrate ausgeführt wird.
echo '!/bin/bash' > /etc/network/if-up.d/firewall echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/firewall chmod +x /etc/network/if-up.d/firewall
Möglichkeit 2
Sie erstellen einen Link im entsprechenden Runleven auf das Firewallscript.
ln -s /root/scripts/firewall.sh /etc/rc2.d/S99firewall
Das Firewall-Script selbst muss aber mit den Parametern start & stop umgehen können.
Beispiel:
#! /bin/bash case "$1" in start) ;; stop) echo "Stoppe IP-Paketfilter" # Tabelle flushen iptables -F iptables -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward # Default-Policies setzen iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;; restart) $0 stop && $0 start ;; status) echo "Tabelle filter" iptables -L -vn ;; *) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|restart|status}" exit 1 ;; esac
2 Kommentare
Zu Möglichkeit 1):
echo „#!/bin/bash“ > /etc/network/if-up.d/firewall
Das Script funktioniert so nicht. echo „…….“ wäre ein String, der genauso in die gewünschte Datei geschrieben wird. Die bash wird einen exec-error melden.
Check mal, ob ich falsch liege.
BR
casa
Stimmt, es sollte ‚ statt “ sein, thx!