为双栈 (ICMP、http、https) 设置 nftables

为双栈 (ICMP、http、https) 设置 nftables

我在双栈服务器上设置 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?

提前感谢任何有用的答案。我有点害怕把自己锁在外面,所以我先在这里问。

相关内容