Ich möchte, dass meine iptables-Regeln beim Start automatisch geladen werden. Laut dem Wiki auf Debian kann dies durch Platzieren eines Skripts mit dem Namen iptables in /etc/network/if-pre-up.d/ geschehen. Also habe ich Folgendes getan:
cat /etc/network/if-pre-up.d/iptables
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules
Dieses Skript funktioniert: Wenn ich es als Root ausführe, werden meine Firewall-Regeln angewendet. Beim Neustart gibt es jedoch keine Firewall-Regeln. Was mache ich falsch?
Auf Anfrage: die / etc / network / interfaces (ich habe diese Datei nicht berührt)
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
quelle
quelle
/etc/network/if-pre-up.d/
dies in Ubuntu 18.04 nicht mehr funktioniert, siehe serverfault.com/questions/914493/…Antworten:
Verwenden Sie das
iptables-persistent
Paket für diese Aufgabe.Definieren Sie Ihre Regeln
/etc/iptables/rules.4
und/etc/iptables/rules.6
und vergessen Sie nicht , den Dienst zu aktivieren (mitupdate-rc.d
,chkconfig
oder Sie Lieblingswerkzeug.quelle
dpkg-reconfigure iptables-persistent
.Dieses Problem hängt möglicherweise mit den Berechtigungsbits Ihres Skripts zusammen. Was ist die Ausgabe dieses Befehls? Enthält es Ihre Datei?
quelle
(date; set; echo) >> /tmp/iptables-cmd.log
, damit Sie sehen, wann sie aufgerufen wird. Ich drucke immer auch die Umgebung aus, um nach Argumenten zu suchen, die dort übergeben wurden. Sie können Ihre iptables erst ausführen, nachdem die letzte eth * -Schnittstelle aktiv ist, anstatt sie jedes Mal auszuführen, wenn eine Schnittstelle hinzugefügt wird.interfaces
Nachdem Sie Ihre gepostet haben, sehe ich, dass Sie nicht ifupdown, sondern den Netzwerkmanager verwenden. Aus diesem Grund wird Ihr Skript nicht aufgerufen. Bitte überprüfen Sie dieses Dokument: ubuntuforums.org/showthread.php?t=1084308Warum nicht einfach?
1 - Erstellen Sie Ihre iptables-Regeln
2 - Führen Sie "sudo apt-get install iptables-persistent" aus. Sie werden gefragt, ob Sie die Regeln speichern und nach dem Start wiederherstellen möchten.
3- Sie sind fertig
quelle