iptables nach einem Reboot wiederherstellen

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

Schreibe einen Kommentar