Какое место для запуска / остановки скрипта iptables? В настоящее время я поместил его в /etc/init.d и у него есть опции start / stop. Однако я не думаю, что это лучшее место. Два других, согласно моим исследованиям:
/etc/network/interface -> pre-up
/etc/network/if-*.d
(вызовет ли это мой сценарий с аргументом start / stop ?)
Так, где правильное место?
/etc/init.d устарел из-за этого, потому что тогда возникает состояние гонки - на несколько секунд при перезагрузке у вас есть сеть, но не включен брандмауэр. не делай этого.
Как правило, вы хотите настроить брандмауэр по своему вкусу, затем выполните iptables-save > /etc/network/iptables
. Теперь создайте /etc/network/if-pre-up.d/iptables.sh
следующим образом:
#!/bin/sh
/sbin/iptables-restore < /etc/network/iptables
Убедитесь, что оба файла принадлежат пользователю root, и chmod 400 /etc/network/iptables ; chmod 755 /etc/network/if-pre-up.d/iptables.sh
для правильной установки разрешений - непривилегированные пользователи не должны иметь возможность читать ваш фактический набор правил межсетевого экрана. тем более измените его, но ваш скрипт в if-pre-up.d
должен быть исполняемым. (При желании вы можете изменить его на 700, если вы чувствуете себя резвым; но я не вижу, чтобы это хоть как-то сохраняло безопасность.)
Вам не нужен down Сценарий для этого, просто предварительная подготовка. Вы , в частности, хотите выполнить предварительную настройку, потому что это не дает вам когда-либо подключать сетевой интерфейс без брандмауэра.