Правила 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
При запросе статуса видно путь к Unit файлу systemd.
Можно просмотреть его
В Unit файле указан путь /etc/sysconfig/iptables, по нему сохраняются правила
Чтобы добавить новые правила можно выполнить (текущее состояние)
iptables-save > /etc/sysconfig/iptables
При старте система будет запускать сервис iptables и считав содержимое файла /etc/sysconfig/iptables подгрузит правила.
На практике пользоваться можно любым из описанных способов, использование iptables-persistent обычно подходящий вариант для Debian/Ubuntu, systemd для CentOS