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
) 규칙이 추가된다는 점에 유의하세요.