Stan's blog

Docker Linux

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

15 февраля 2024
Kandinsky: Результат генерации по запросу "Iptables и Docker", стиль: artstation

Документация 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
Источник тут