iptables. Сохранение и восстановление правил

Многие параметры сети в Linux настраиваются с использованием iptables, например пересылка пакетов, проброс портов, какие-либо разрешения или запреты для сетевого трафика, построение NAT и т.д.
Но iptables запоминает конфигурацию только до перезагрузки, поэтому встает вопрос, как сохранить и восстановить правила, при этом не перебивая каждое правило вручную в скрипт. Для этого существуют утилиты iptables-save и iptables-restore.

Для сохранения текущих активных правил воспользуемся утилитой iptables-save:


данная команда сохранит активную конфигурацию в файл /etc/iptables/iptables.rules (естественно он должен быть доступен на запись).

И соответственно для восстановления:

Так же у iptables-save есть полезный параметр:

-t имя_таблицы — ограничиться конкретной таблицей.

А у iptables-restore несколько параметров:

-T имя_таблицы — ограничиться конкретной таблицей;
-n — не очищать таблицы перед восстановлением (только добавить правила).

Теперь остается только автоматизировать процесс восстановления. Для этого добавим запуск iptables-restore после поднятия одного из сетевых интерфейсов. Для этого откроем файл настройки сети /etc/network/interfaces и в настройки loopback интерфейса добавим восстановление правил (подробнее про настройку сетевых параметров рассказывается в статье Debian, Ubuntu, Raspbian. Базовая настройка IPv4 на сетевых Ethernet интерфейсах):

Почему именно в loopback интерфейс? Потому что он запускается практически всегда и при любых условиях, соответственно мы можем быть уверены, что восстановление правил iptables отработается точно. Хотя иногда бывают ситуации, когда нужно правила iptables подгрузить при запуске или остановке конкретного интерфейса, но это уже зависит от конфигурации и целей.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.