Помощник веб-разработчикаИнструментыИнструкции

Сохранение и восстановление настроек iptables.

При перезагрузке или выключении компьютера, политики и правила iptables теряются и при загрузке снова устанавливаются правила и политики по умолчанию. Чтобы не настраивать iptables вручную при каждой загрузке, нужно сделать автовосстановление настроек, для этого необходимо сохранить текущие настройки в файл «/etc/iptables.rules».

sudo iptables-save | sudo tee /etc/iptables.rules

Затем необходимо создать сценарий восстанавливающий сохранённые политики и правила:

sudo vi /usr/sbin/iptables_restore.sh

и добавить в него следующие строки (как пользоваться редактором vi?):

#!/bin/bash
iptables-restore < /etc/iptables.rules

Сохраните файл и сделайте его исполняемым только для пользователя root:

sudo chmod 700 /usr/sbin/iptables_restore.sh

Теперь необходимо сделать так, чтобы этот сценарий запускался при загрузке операционной системы. Старый способ с добавлением сценария в файл автозапуска сейчас поддерживается только для совместимости, что означает, что после какого-нибудь обновления этот вариант перестанет работать, потому нужно создать службу, которая будет запускать сценарий при загрузке системы:

sudo vi /etc/systemd/system/iptables_restore.service

и записать в него следующие строки:

[Service]
Type=oneshot
ExecStart=/sbin/iptables_restore.sh
TimeoutStartSec=0

[Install]
WantedBy=default.target

Чтобы systemd увидел новую службу, его необходимо перезагрузить:

sudo systemctl daemon-reload

после чего добавить новую службу в автозагрузку:

sudo systemctl enable iptables_restore.service

Настройка автовосстановления закончена, теперь при загрузке операционной системы правила и политики iptables восстановятся автоматически, при необходимости их можно восстанавливать и самостоятельно введя команду:

sudo systemctl start iptables_restore

Для проверки перезагрузите компьютер:

sudo reboot