IPtables: 기존 전달 규칙을 통한 ipset 필터링

IPtables: 기존 전달 규칙을 통한 ipset 필터링

저는 VPN에 연결하기 위해 라즈베리 파이를 설정하는 가이드를 따랐고, 이를 보호하기 위해 LAN에서 VPN으로 트래픽을 NAT했습니다.

DNS 필터링(광고 차단)에도 사용하고 있습니다.

도메인 필터링으로는 마음에 들지 않는 IP를 걸러내지 못하기 때문에 인터넷의 넓은 영역과의 통신을 금지하기 위해 IPset에 대해 알아보려고 합니다.

현재 이 모든 작업을 수행하는 스크립트는 다음과 같습니다.

iptables -F

ipset restore < /etc/ipset-blacklist/ip-blacklist.restore

iptables -I INPUT 1 -m set --match-set blacklist src -j DROP
iptables -I FORWARD -m set --match-set blacklist src -j DROP
iptables -I OUTPUT -m set --match-set blacklist src -j DROP

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -L

작동합니다!

하지만 이유를 이해할 수 없으며 INPUT, FORWARD 및 OUTPUT에 대한 세 가지 블랙리스트 규칙이 모두 필요하다고 생각하지 않습니다. 작업 결과를 잘못된 방식으로 달성한 것 같고 이해하지 못한 것 같습니다.

나보다 현명한 사람이 내가 무엇을 하려고 하는지, 내가 성취한 것, 어디가 잘못되었는지 알 수 있습니까?

또한 이 줄에서 "1"은 무엇입니까?

iptables -I INPUT 1 -m set --match-set blacklist src -j DROP

이는 이미 어느 정도 달성된 목표입니다. LAN 목표

답변1

편집:: "1"은 규칙의 순서입니다.

FORWARD 체인은 세 가지 모두가 아닌 유일한 필수 체인입니다.

모든 트래픽이 전달되기 때문이라고 가정합니다.

관련 정보