在 centos 6 节点上尝试以下操作(运行 openvz 内核)
ip6tables -F ip6tables -X ip6tables -P FORWARD DROP ip6tables -A FORWARD -p tcp -m multiport --dports 21,22,80,443 -j ACCEPT ip6tables -A FORWARD -p udp -m multiport --dports 21,22,80,443 -j ACCEPT ip6tables -A FORWARD -p ipv6-icmp -j ACCEPT
但是,这似乎禁用了从 openvz VPS 向外到节点或互联网的 ipv6 连接,并且在端口扫描器上它显示所有端口都被防火墙过滤/阻止。
但是,从节点内部 ping 到 VPS 可以正常工作。
我所要做的就是放弃所有转发,接受上面显示的多个端口,并允许 ipv6 连接通过。
这绝对是 ip6tables 的问题,因为当我停止 ip6tables 时,它运行良好,并且 ping 完全正常。
非常感谢您的帮助。
答案1
问题在于您的防火墙不是状态式的,它只允许流量单向通过。这里没有任何东西允许返回流量。因此,当客户端请求通过时,来自服务器的响应不符合任何规则并被丢弃。
改为编写正常的状态规则。例如:
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m conntrack --ctstate NEW -m tcp -p tcp -m multiport --dports 21,22,80,443 -j ACCEPT
第二条规则允许初始连接尝试,而第一条规则允许所有剩余流量,只要连接保持打开状态。之所以排在第一位,是因为匹配频率最高,而排在第一位可以加快速度。
您的 ICMP 规则很好,应该保持原样。