Mein Ziel ist es, eine Sammlung von iptables
Regeln beim Start zu laden. Ich verwende Ubuntu 20.04.1.
Ich habe eine Sammlung von iptables
Regeln, die in definiert sind /etc/iptables/rules.v4
. Ich habe iptables-persistent
und netfilter-persistent
installiert. Letzterer ist ein aktivierter systemd
Dienst und läuft nach einem Neustart erfolgreich, wie systemctl status netfilter-persistent
angegeben, aber die in definierten Regeln /etc/iptables/rules.v4
sindnichtnach einem Neustart angewendet.
Entscheidend ist: Ein manueller Neustart des Dienstes ( systemctl restart netfilter-persistent
) führt dazu, dass die Regeln geladen werden. Der Dienst funktioniert und die Regeln sind gültig. Es ist, als ob nach dem Ausführen und Beenden ein anderer Dienst hinzukommt und netfilter-persistent
die Regeln löscht.
Hat jemand eine Idee? Ich weiß nicht, wie ich weiter vorgehen soll, da anscheinend niemand sonst dieses Problem hat.
Wenn weitere Einzelheiten hilfreich wären, lassen Sie es mich bitte wissen. Ich habe das Gefühl, als würde ich den Verstand verlieren.
Bearbeiten:Die Inhalte /etc/iptables/rules.v4
sind:
*nat
:PREROUTING ACCEPT [29:8848]
:INPUT ACCEPT [29:8848]
:OUTPUT ACCEPT [6720:404317]
:POSTROUTING ACCEPT [96:8382]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -o enp39s0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
*filter
:INPUT ACCEPT [9418:3194873]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [17003:1327822]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
Nach dem Booten iptables --list -v
wird Folgendes zurückgegeben:
Chain INPUT (policy ACCEPT 5587 packets, 1329K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-USER all -- any any anywhere anywhere
0 0 DOCKER-ISOLATION-STAGE-1 all -- any any anywhere anywhere
0 0 ACCEPT all -- any docker0 anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- any docker0 anywhere anywhere
0 0 ACCEPT all -- docker0 !docker0 anywhere anywhere
0 0 ACCEPT all -- docker0 docker0 anywhere anywhere
0 0 ACCEPT all -- wg0 any anywhere anywhere
Chain OUTPUT (policy ACCEPT 6845 packets, 956K bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 anywhere anywhere
0 0 RETURN all -- any any anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- any docker0 anywhere anywhere
0 0 RETURN all -- any any anywhere anywhere
Chain DOCKER-USER (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- any any anywhere anywhere
Beachten Sie insbesondere, dass die FORWARD-Richtlinie DROP und nicht ACCEPT ist und dass WireGuard( wg0
)-Regeln hinzugefügt werden.