Chcę, aby moje reguły iptables były automatycznie ładowane podczas uruchamiania. Według wiki na Debianie można to zrobić, umieszczając skrypt o nazwie iptables w /etc/network/if-pre-up.d/ Tak zrobiłem, tak to wygląda:
cat /etc/network/if-pre-up.d/iptables
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules
Ten skrypt działa: jeśli uruchomię go jako root, moje reguły zapory sieciowej zostaną zastosowane. Ale przy ponownym uruchomieniu nie ma reguł zapory. Co ja robię źle?
Na życzenie: / etc / network / interfaces (nie dotknąłem tego pliku)
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
źródło
źródło
/etc/network/if-pre-up.d/
nie działa już w Ubuntu 18.04, patrz serverfault.com/questions/914493/…Odpowiedzi:
Użyj
iptables-persistent
pakietu do tego zadania.Definiować reguły w
/etc/iptables/rules.4
a/etc/iptables/rules.6
i nie zapomnij, aby aktywować usługę (z użyciemupdate-rc.d
,chkconfig
albo ulubionym narzędziem.źródło
dpkg-reconfigure iptables-persistent
.Ten problem może być związany z bitami uprawnień skryptu. Jaka jest wydajność tego polecenia? Czy zawiera twój plik?
źródło
(date; set; echo) >> /tmp/iptables-cmd.log
, aby zobaczyć, kiedy zostanie wywołana. Zawsze również drukuję środowisko, aby sprawdzić, czy przesłano tam argument. Możesz zdecydować się na uruchomienie iptables dopiero po uruchomieniu ostatniego interfejsu eth *, zamiast uruchamiać go za każdym razem, gdy dodawany jest interfejs.interfaces
widzę, że nie używasz ifupdown, ale menedżera sieci. Dlatego twój skrypt nie jest wywoływany. Sprawdź ten dokument: ubuntuforums.org/showthread.php?t=1084308Dlaczego nie zrobić tego w prosty sposób?
1 - utwórz reguły iptables
2 - uruchom „sudo apt-get install iptables-persistent”, zapyta cię, czy chcesz zapisać reguły i przywrócić je po uruchomieniu.
3- Jesteś GOTOWANY
źródło