Я хочу, чтобы мои правила iptables автоматически загружались при запуске. Согласно вики по Debian, это можно сделать, поместив скрипт с именем iptables в /etc/network/if-pre-up.d/. Я сделал это, вот как это выглядит:
cat /etc/network/if-pre-up.d/iptables
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules
Этот сценарий работает: если я запускаю его как root, применяются мои правила брандмауэра. Но при перезагрузке правил межсетевого экрана нет. Что я делаю не так?
По запросу: / etc / network / interfaces (этот файл я не трогал)
user@DebianVPS:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Эта проблема может быть связана с битами разрешений вашего скрипта. Каков результат этой команды? Включает ли он ваш файл?
run-parts --test /etc/network/if-pre-up.d
Использовать iptables-persistent
пакет для этой задачи.
Определите свои правила в /etc/iptables/rules.4
и /etc/iptables/rules.6
и не забудьте активировать услугу (используя update-rc.d
, chkconfig
или любимый инструмент.
Почему бы не сделать это простым способом?
1 - создайте свои правила iptables
2 - запустите «sudo apt-get install iptables-persistent», он спросит вас, хотите ли вы сохранить правила и восстановить их после загрузки.
3- Готово