Проект

Общее

Профиль

Как через сервис Linux восстановить правила iptables

Добавил(а) Михаил Губин 6 дня назад

Чтобы автоматически восстанавливать правила iptables при каждой загрузке системы, нужно добавить команду iptables-restore в скрипт запуска системы. В зависимости от используемого дистрибутива Linux, процесс может немного отличаться. Рассмотрим несколько вариантов:

Для систем с Systemd

Systemd используется в большинстве современных дистрибутивов, таких как Ubuntu, Debian, CentOS, Fedora и другие.

  1. Создайте сервис для восстановления правил 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
    
  2. Активируйте и включите сервис:
    После создания сервиса выполните следующие команды:

    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.


Комментарии