Um die eigenen iptables Regeln nach einem Reboot wieder zu laden bzw. um einen Restore durchzuführen, werden 2 sehr nützliche Programme bereitgestellt, die dies erledigen können.
Speichern der Regeln und Filter:
iptables-save > /etc/iptables_rules.v4
ip6tables-save > /etc/iptables_rules.v6
Restore der Regeln und Filter:
iptables-restore < /etc/iptables_rules.v4
ip6tables-restore < /etc/iptables_rules.v6
Dies kann man natürlich auch mit einem einfachen init-Script automatisieren.
Der Stop-Befehl an das Script wäre demzufolge das Abspeichern der aktuellen iptables Regeln mittels iptables-save
, der Start-Befehl das Laden der Regeln mit iptables-restore
.
Update: Debian liefert hierfür mittlerweile eine Komplettlösung. Das Paket nennt sich iptables-persistent
und ersetzt selbst gebaute Lösungen. Das Paket speichert die Regeln automatisch unter /etc/iptables
und lädt diese beim Start.
Ein einfaches Beispiel für /etc/init.d/iptables wäre demzufolge:
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
case "$1" in
start)
iptables-restore < /etc/iptables_rules.v4
ip6tables-restore < /etc/iptables_rules.v6
;;
stop)
iptables-save > /etc/iptables_rules.v4
ip6tables-save > /etc/iptables_rules.v6
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop}" >&2
exit 1
;;
esac
exit 0