Как через сервис Linux восстановить правила iptables
Чтобы автоматически восстанавливать правила iptables при каждой загрузке системы, нужно добавить команду iptables-restore
в скрипт запуска системы. В зависимости от используемого дистрибутива Linux, процесс может немного отличаться. Рассмотрим несколько вариантов:
Для систем с Systemd¶
Systemd используется в большинстве современных дистрибутивов, таких как Ubuntu, Debian, CentOS, Fedora и другие.
-
Создайте сервис для восстановления правил iptables:
Создайте файл/etc/systemd/system/iptables-restore.service
со следующим содержимым:[Unit] Description=Restore IPv4 iptables rules Before=network.target [Service] Type=oneshot ExecStart=/sbin/iptables-restore /etc/rules.ipv4 [Install] WantedBy=basic.target
-
Активируйте и включите сервис:
После создания сервиса выполните следующие команды:sudo systemctl daemon-reload sudo systemctl enable iptables-restore.service
Теперь при каждой загрузке система будет автоматически восстанавливать правила iptables из файла /etc/rules.ipv4
.
Для старых систем без Systemd¶
На некоторых системах могут использоваться старые методы инициализации, такие как SysVinit. В этом случае вы можете добавить команду восстановления правил в соответствующий скрипт загрузки.
Для Debian/Ubuntu¶
Добавьте следующую строку в конец файла /etc/network/interfaces
:
post-up iptables-restore < /etc/rules.ipv4
Для Red Hat/CentOS/Fedora¶
Добавьте следующую строку в конец файла /etc/rc.local
:
/sbin/iptables-restore /etc/rules.ipv4
Не забудьте сделать файл /etc/rc.local
исполняемым:
sudo chmod +x /etc/rc.local
Проверка работы¶
После настройки перезагрузите систему и убедитесь, что правила восстановлены корректно:
sudo iptables -L -n -v
Этот вывод покажет текущие активные правила iptables. Если все настроено правильно, вы увидите те же правила, что были сохранены в файле /etc/rules.ipv4
.
Комментарии