我有一个静态 IPv4 和一个静态 IPv6 地址。目前,我的 iptables 如下所示:
*filter
:INPUT DROP [28:2168]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [551:134808]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 111.222.333.555/32 -i eth0 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 111.222.333.444/32 -i eth0 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 389 -j ACCEPT
-A INPUT -i eth0 -s 123.4.567.111/32 -p udp -m udp --dport 161 -j ACCEPT
-A INPUT -i eth0 -s 123.4.567.111/32 -p udp -m udp --dport 6969 -j ACCEPT
-A INPUT -i eth0 -s 123.4.567.111/32 -p icmp -j ACCEPT
-A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
我尝试将其用于我的 IPv6 ip6tables,但尝试失败 - 我无法再 ping google 或通过 IPv6 从我的工作站进行连接。
*filter
:INPUT DROP [28:2168]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [551:134808]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 389 -j ACCEPT
-A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
目前,IP 地址为 111.222.333.555、111.222.333.444 和 123.4.567.111 的机器没有 IPv6,但我现在想推出它。
当我将 :INPUT DROP 和 :FORWARD DROP 都更改为 ACCEPT 时,我当然可以使用 ssh -6、ping6 和 http/https 访问该机器。我使用 debian wheezy 7.0.2,内核 3.2.0。
答案1
IPv6 依赖各种 ICMPv6 数据包来保持网络正常运行。要启用 Ping,您需要一条类似规则。
-A INPUT-p 58 --icmpv6-type 128 -j ACCEPT -m comment --comment "Ping"
这是接受所需 ICMP 类型的链。它是从岸墙6生成的防火墙。可以使用如下规则进行访问:
-A INPUT -j AllowICMPs
-A AllowICMPs -p 58 --icmpv6-type 1 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 2 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 3 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 4 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 133 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 134 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 135 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 136 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 137 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 141 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 142 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 130 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 131 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 132 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 143 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 148 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 149 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 151 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 152 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)" -A AllowICMPs -p 58 --icmpv6-type 153 -s fe80::/10 -j ACCEPT -m comment --comment "需要的 ICMP 类型 (RFC4890)"