Не могу заставить отрабатывать iptables-save и iptables-restore

Приветствую!

Есть небольшой рукотворный набор правил для iptables, который нужно сохранять в файл при выключении системы (соответственно, отключении сетевого интерфейса) и восстановления оного при поднятии интерфейса. По науке задействуем iptables-save на случай выключения системы и iptables-restore когда система загружается.

По идее, всё просто:


#!/bin/bash

iptables-save -c >> /path/to/file-with-rules

exit 0


и



#!/bin/bash

iptables-restore -n < /path/to/file-with-rules

exit 0


после чего делаем для обоих скриптов chmod +x и кидаем их в /etc/sysconfig/network/if-up.d/ (для restore) и /etc/sysconfig/network/if-down.d/ (для save) соответственно. Казалось бы, проблем быть не должно. Но нет – если скрипты запускать вручную, то они отрабатывают, а вот при systemctl reboot или wicked ifdown enp0s3 – они ни в какую не хотят. Памятуя, что iptables запускается из /usr/sbin/, сделал export PATH=$PATH:/usr/sbin/ в обоих скриптах. Но всё равно – желаемого результата не добился: правила не сохраняются и, соответственно, не восстанавливаются. Как быть и где я неправ?

SuSEFirewall2 (вручную или через YaST) просьба не предлагать – я избегаю настроек через избыточные надстройки, которые часто лишь затрудняют задачу, несмотря на кажущуюся простоту своего синтаксиса. Только iptables, только… нет, не хардкор, а unix-way! :slight_smile:

Спасибо!

Экспериментально выяснилось, что я изначально зашёл не с той стороны. Победилось через почерпнутые из man ifcfg директивы PRE_UP_SCRIPT=“compat:suse:iptables-rules-restore.sh” POST_DOWN_SCRIPT=“compat:suse:iptables-rules-save.sh” в /etc/sysconfig/network/ifcfg-enp0s3, при этом сами скрипты iptables-rules-restore.sh и iptables-rules-save.sh нужно положить в /etc/sysconfig/network/scripts.

Проблема решена!