iptables после перезагрузки, способы сохранения правил iptables


Правила iptables после перезагрузки могут подгружатсья сервисом iptables-persistent или за счет unit-а systemd.



При помощи iptables можно настроить желаемые политики безопасности и гибко управлять трафиком (например, перенаправляя все запросы, поступающие на 80 и 443 порты на порт, на котором работает прокси-сервер в системе).

По умолчанию все правила системного фильтра трафика добавляются в работающей системе и сбрасываются при перезагрузке.



Способы сохранения правил iptables после перезагрузки


iptables часто используется при настройке, среди прочего, OpenVPN и Squid. Для корректной работы пакетов необходимо обеспечить сохранение заданных правил после перезапуска системы.



Существует несколько способов реализовать сохранение правил после перезагрузки:

  • Первый способ универсален и будет работать на всех системах (синтаксис правил задающих сетевые настройки может отличаться)

Прежде всего сохраняем существующие правила в файл iptables-save > /tmp/iptables.txt



Затем открываем для редактирования файл с сетевыми настройками и в конец файла дописываем строку, которая будет обеспечивать восстановление правил при подъеме сетевого интерфейса


mcedit /etc/network/interfaces

pre-up      iptables-restore < /tmp/iptables.txt



  • Второй способ заключается в использовании специальной утилиты — iptables-persistent.

Она доступна для установки в стандартным репозиториях Debian, для других дистрибутивов утилита может быть недоступна



Устанавливается стандартным способом:

apt-get install iptables-persistent



Правила iptables необходимо создать, затем выполнить следующую команду

service iptables-persistent start



В возникшем диалоге будет задан вопрос относительно необходимости сохранения правил после перезагрузки, следует дать положительный ответ

iptables-persistent работает как демон и загружается при старте системы. Правила iptables после перезагрузки будут подгружаться автоматически.



Можно очистить список правил

service iptables-persistent flush



Можно остановить сервис iptables-persistent в системе.

  • Третий способ — использовать systemd. Подходит для современных систем CentOS в которых сервисами управляет systemd.

Есть ли соответствующий сервис в системе можно проверить выполнив такую команду


systemctl status iptables


iptables status


При запросе статуса видно путь к Unit файлу systemd.


Можно просмотреть его

iptables после перезагрузки


В Unit файле указан путь /etc/sysconfig/iptables, по нему сохраняются правила

iptables centos

Чтобы добавить новые правила можно выполнить (текущее состояние)


iptables-save > /etc/sysconfig/iptables

При старте система будет запускать сервис iptables и считав содержимое файла /etc/sysconfig/iptables подгрузит правила.



На практике пользоваться можно любым из описанных способов, использование iptables-persistent обычно подходящий вариант для Debian/Ubuntu, systemd для CentOS

Сказать спасибо