Iptables и Docker - как сохранять пользовательские правила между перезапусками системы или iptables-persistent
15 февраля 2024

Документация Docker говорит, что пользовательские правила надо сохранять в цепочку DOCKER-USER, однако, идей о том как эту цепочку хранить между запусками не предоставляет. Самый простой и правильный, на мой взгляд, способ - использовать пакет iptables-persistent.
Установим пакет
sudo apt-get install iptables-persistent
На самом деле, этот пакет использует netfilter-persistent, просто добавляя в него скрипты для чтения файлов /etc/iptables/rules.v4 и /etc/iptables/rules.v6, поэтому вторым действием включим netfilter-persisten.
systemctl enable netfilter-persistent.service
Осталось подготовить файлы с правилами. Я храню только те правила, которые мне нужны. Мой файл выглядит так:
#/etc/iptables/rules.v4 *filter # Reset counters :DOCKER-USER - [0:0] # Flush -F DOCKER-USER # Filters : # Block access form docker containers to LAN -I DOCKER-USER -d 192.169.7.0/24 -j DROP -I DOCKER-USER -d 192.169.7.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A DOCKER-USER -j RETURN COMMIT
Источник тут