我本以为可以有一个简单的 ipv6 防火墙,但结果却很糟糕。除非我将 INPUT Policy 设置为 ACCEPT,否则我真的无法从我的机器连接任何 ipv6。在我当前的 ip6tables 下
ip6tables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all anywhere anywhere state RELATED,ESTABLISHED
ACCEPT ipv6-icmp anywhere anywhere
ACCEPT tcp anywhere anywhere tcp dpt:http
ACCEPT tcp anywhere anywhere tcp dpt:https
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
如果我尝试连接任何 ipv6 地址,它不起作用?
telnet gdata.youtube.com 80
Trying 2a00:1450:4013:c00::76...
或者
telnet gdata.youtube.com 443
Trying 2a00:1450:4013:c00::76...
当我设置:
ip6tables -P INPUT ACCEPT
它可以工作..但是..那么一切都开放了?发生了什么事?帮忙吗?
答案1
您可能忽略了关键的“状态”规则:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
您还缺少接受 ICMPv6 的规则。没有 ICMPv6,IPv6 根本无法运行。
-A INPUT -p ipv6-icmp -j ACCEPT
出于性能原因,这应该是链中最早的规则之一。