Unter aktuellen Linux-Distributionen kommt meist ufw (uncomplicated firewall) oder iptables-persistent zum Einsatz um Firewall-Regeln auch ernsthaft zu persistieren. iptables-persistent ist dabei bei aktuellen Versionen nurmehr ein Alias für netfilter-persistent. netfilter-persistent ist wiederum ein einfaches sh-Skript, welches über den Systemd-Unit netfilter-persistent ausgelöst wird.
Im Normalfall wird mittels
netfilter-persistent save
der aktuelle Stand an Regeln gesichert und dann automatisch beim Neustart angewendet.
Nutzt man jedoch Docker oder ähnliche Tools, welche eigens generierte iptables- oder nftables-Regeln für ihre Funktion nutzen, so ist es nicht empfehlenswert, die gesamten Regeln zu sichern und zurückzuspielen, da dies zu unerwarteten Netzwerkproblemen mit Docker führen würde.
netfilter-persistent lässt sein Verhalten hier über Umgebungsvariablen in der Datei „/etc/default/netfilter-persistent“ steuern:
# Keine Löschung aller Regeln beim "stop" von netfilter-persistent
FLUSH_ON_STOP=0
# Vermeidung von manuellem "netfilter-persistent save" um versehentliche Überschreibungen zu verhindern
IPTABLES_SKIP_SAVE=yes
IP6TABLES_SKIP_SAVE=yes
IPSET_SKIP_SAVE=yes
# Keine Löschung aller Regeln beim "restore" von Regeln
IPTABLES_RESTORE_NOFLUSH=yes
IP6TABLES_RESTORE_NOFLUSH=yes
# Regeln vor Anwendung testen
IPTABLES_TEST_RULESET=yes
IP6TABLES_TEST_RULESET=yes
Die Dateien „/etc/iptables/rules.v4“ und „/etc/iptables/rules.v6“ sind nun jene Dateien, in denen die iptables-Regeln im normalen Kommandozeilenformat gespeichert werden können. Nur diese werden dann auch angewendet. Docker-eigene Regeln werden weder eingesetzt noch gelöscht.