Перейти к содержанию

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

В НАЙС.ОС пакет iptables дополнен сервисом iptables.service и набором служебных скриптов. Это важно: распространённые инструкции из других дистрибутивов могут предполагать другие пути и команды.

Установите текущий механизм

Эти команды ничего не изменяют:

rpm -q iptables
rpm -ql iptables | grep -E 'systemd/scripts|iptables.service'
systemctl cat iptables
systemctl is-enabled iptables
ls -l /etc/systemd/scripts/

Если сервис есть, но не активирован, сначала выясните, почему: его может запускать preset, образ или другой профиль. Не выполняйте systemctl enable --now iptables автоматически на производственном сервере, пока неизвестно содержимое скриптов и их влияние на текущие правила Docker/SSH.

Снять резервную копию активных правил

sudo mkdir -p /root/firewall-backups
sudo iptables-save | sudo tee /root/firewall-backups/ip4.rules >/dev/null
sudo ip6tables-save | sudo tee /root/firewall-backups/ip6.rules >/dev/null
sudo chmod 600 /root/firewall-backups/ip4.rules /root/firewall-backups/ip6.rules

Это текстовые дампы действующего состояния IPv4/IPv6. Если Docker активен, дамп включает динамически созданные цепочки контейнеров. Простое восстановление дампа поверх работающего Docker может нарушить работающие контейнеры; согласуйте окно и проверяйте схему восстановления.

Как изучить штатные скрипты

sudo sed -n '1,220p' /etc/systemd/scripts/ip4save
sudo sed -n '1,220p' /etc/systemd/scripts/ip6save
sudo sed -n '1,220p' /etc/systemd/scripts/iptables
sudo systemctl cat iptables

Если файл отсутствует, проверьте состав пакета и версию. В следующем выпуске документации после изучения оригинальных Source1–Source5 здесь появится точная команда постоянного сохранения.

Восстановление из копии

При аварийном восстановлении работайте через локальную или внеполосную консоль. iptables-restore способен немедленно заменить правила и закрыть SSH; перед выполнением проверьте файл и состав таблиц, в том числе наличие Docker. Общий синтаксис:

# Только для согласованного восстановления через консоль:
# sudo iptables-restore < /root/firewall-backups/ip4.rules

Команда намеренно закомментирована: порядок восстановления зависит от того, какие службы создают и меняют правила в этом профиле.

Что необходимо проверить перед объявлением инструкций полностью готовыми

  • Фактический ExecStart и ExecStop из iptables.service.
  • Чем и куда сохраняют правила ip4save/ip6save.
  • Применяются ли правила до запуска SSH и Docker.
  • Сохраняются ли новые правила после перезагрузки.
  • Не конфликтует ли восстановление с правилами контейнеров.

Только после этих проверок можно публиковать команду штатного постоянного сохранения для конкретного выпуска НАЙС.ОС.