我在双栈服务器上设置 nftables 时遇到了一些麻烦。我的设置是安装了 nftables 的 debian 9.11(显然)。IPv4 部分按预期工作,但 IPv6 则不然。
nft 列表规则集的输出:
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
ct state invalid drop
ip protocol icmp icmp type echo-request ct state new accept
ip6 nexthdr icmpv6 icmpv6 type echo-request ct state new accept
ip protocol udp ct state new jump UDP
tcp flags & (fin | syn | rst | ack) == syn ct state new jump TCP
ip protocol udp drop
ip protocol tcp drop
meta nfproto ipv4 counter packets 24 bytes 1101 reject with icmp type prot-unreachable
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
chain TCP {
tcp dport http accept
tcp dport https accept
}
chain UDP {
udp dport 9987 accept
}
}
这里的问题是,当启用 nftables 时,既无法访问 Web 服务器,也无法 ping 通服务器地址。
我已经添加了 ipv4 对应部分ip6 nexthdr icmpv6 icmpv6 type echo-request ct state new accept
,但没有成功。
我也怀疑ip protocol udp ct state new jump UDP
它只tcp flags & (fin | syn | rst | ack) == syn ct state new jump TCP
由 ipv4 流量触发。我需要在这里添加什么才能捕获 IPv6?
提前感谢任何有用的答案。我有点害怕把自己锁在外面,所以我先在这里问。