Многие параметры сети в Linux настраиваются с использованием iptables, например пересылка пакетов, проброс портов, какие-либо разрешения или запреты для сетевого трафика, построение NAT и т.д.
Но iptables запоминает конфигурацию только до перезагрузки, поэтому встает вопрос, как сохранить и восстановить правила, при этом не перебивая каждое правило вручную в скрипт. Для этого существуют утилиты iptables-save и iptables-restore.
Для сохранения текущих активных правил воспользуемся утилитой iptables-save:
iptables-save > /etc/iptables/iptables.rules
данная команда сохранит активную конфигурацию в файл /etc/iptables/iptables.rules (естественно он должен быть доступен на запись).
И соответственно для восстановления:
iptables-restore < /etc/iptables/iptables.rules
Так же у iptables-save есть полезный параметр:
-t имя_таблицы - ограничиться конкретной таблицей.
А у iptables-restore несколько параметров:
-T имя_таблицы - ограничиться конкретной таблицей;
-n - не очищать таблицы перед восстановлением (только добавить правила).
Теперь остается только автоматизировать процесс восстановления. Для этого добавим запуск iptables-restore после поднятия одного из сетевых интерфейсов. Для этого откроем файл настройки сети /etc/network/interfaces и в настройки loopback интерфейса добавим восстановление правил (подробнее про настройку сетевых параметров рассказывается в статье Debian, Ubuntu, Raspbian. Базовая настройка IPv4 на сетевых Ethernet интерфейсах):
auto lo
iface lo inet loopback
post-up iptables-restore < /etc/iptables/iptables.rules
Почему именно в loopback интерфейс? Потому что он запускается практически всегда и при любых условиях, соответственно мы можем быть уверены, что восстановление правил iptables отработается точно. Хотя иногда бывают ситуации, когда нужно правила iptables подгрузить при запуске или остановке конкретного интерфейса, но это уже зависит от конфигурации и целей.
Заказать создание и поддержку безопасной IT-инфраструктуры любой сложностиБыть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне. Для того, чтобы сделать заказ:
|