Я хочу, чтобы мои правила 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
networking
debian
iptables
Cheiron
источник
источник
/etc/network/if-pre-up.d/
больше не работает в Ubuntu 18.04, см. Serverfault.com/questions/914493/…Ответы:
Используйте
iptables-persistent
пакет для этой задачи.Определите свои правила в
/etc/iptables/rules.4
и/etc/iptables/rules.6
и не забудьте активировать сервис (используяupdate-rc.d
,chkconfig
или ваш любимый инструмент.источник
dpkg-reconfigure iptables-persistent
.Эта проблема может быть связана с битами прав доступа вашего скрипта. Каков вывод этой команды? Это включает в себя ваш файл?
источник
(date; set; echo) >> /tmp/iptables-cmd.log
, так, чтобы вы увидели, когда она вызывается. Я всегда также печатаю окружение, чтобы проверить любой аргумент, переданный туда. Вы можете решить запускать свои iptables только после запуска последнего интерфейса eth * вместо того, чтобы запускать его каждый раз, когда добавляется интерфейс.interfaces
я вижу, что вы используете не ifupdown, а сетевой менеджер. Вот почему ваш скрипт не называется. Пожалуйста, проверьте этот документ: ubuntuforums.org/showthread.php?t=1084308Почему бы не сделать это простым способом?
1 - создайте свои правила iptables
2 - запустите «sudo apt-get install iptables-persistent», он спросит вас, хотите ли вы сохранить правила и восстановить их после загрузки.
3- ВЫ СДЕЛАНЫ
источник