netfilter-persist가 활성화된 서비스임에도 불구하고 재부팅 시 iptables 규칙이 적용되지 않음

netfilter-persist가 활성화된 서비스임에도 불구하고 재부팅 시 iptables 규칙이 적용되지 않음

iptables내 목표는 시작 시 규칙 모음을 로드하는 것입니다 . 저는 우분투 20.04.1을 실행하고 있습니다.

iptables에 정의된 규칙 모음이 있습니다 /etc/iptables/rules.v4. 갖고 설치 iptables-persistent했습니다 netfilter-persistent. 후자는 활성화된 systemd서비스이며 표시된 대로 재부팅 후 성공적으로 실행되지만 systemctl status netfilter-persistent다음에 정의된 규칙 /etc/iptables/rules.v4은 다음과 같습니다.~ 아니다재부팅 후 적용됩니다.

결정적으로 서비스( systemctl restart netfilter-persistent)를 수동으로 다시 시작하면 규칙이 로드됩니다. 서비스가 작동하고 규칙이 유효합니다. 마치 다른 서비스가 실행 및 종료 후에 나타나서 netfilter-persistent규칙을 없애는 것과 같습니다.

누구든지 어떤 아이디어가 있습니까? 다른 누구도 이 문제를 겪지 않는 것 같기 때문에 어떻게 진행해야 할지 모르겠습니다.

다른 세부정보가 도움이 될 경우 알려주시기 바랍니다. 정신을 잃는 것 같은 느낌이 듭니다.

편집하다:내용은 /etc/iptables/rules.v4다음과 같습니다.

*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

부팅 후 iptables --list -v다음을 반환합니다.

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            

특히 FORWARD 정책은 ACCEPT가 아닌 DROP이며 WireGuard( wg0) 규칙이 추가된다는 점에 유의하세요.

관련 정보