IPtables:通过现有的转发规则进行 ipset 过滤

IPtables:通过现有的转发规则进行 ipset 过滤

我按照指南设置了树莓派以连接到 VPN,然后将来自我的 LAN 的流量 NAT 到 VPN 以保护它。

我也使用它进行 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

这有效!

但我不明白为什么,并且我认为我不需要输入、转发和输出的所有三个黑名单规则——我觉得我以错误的方式取得了工作结果——并且不理解它。

有谁比我更聪明,能知道我在做什么、我取得了什么成就以及我错在哪里吗?

另外,此行中的“1”表示什么:

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

这就是目标,并且已经部分实现了: 局域网目标

答案1

编辑:“1”代表规则的顺序。

FORWARD 链是唯一必要的链,而不是全部三个。

我认为这是因为所有流量都被转发了。

相关内容