我按照指南设置了树莓派以连接到 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 链是唯一必要的链,而不是全部三个。
我认为这是因为所有流量都被转发了。