几个月前,我使用 debian 推荐的程序将 debian 笔记本电脑的防火墙从 迁移iptables
到nftables
,一切似乎都很好。现在,几个月后,我正在仔细检查由该迁移过程创建的规则集,尝试学习nftables
语法,并查看似乎是几个我不理解并且怀疑可能不正确的基于计数器的规则。我还没有发现nftables
wiki 是有用的教育资源,也没有找到任何其他在线教育资源来解决此类问题:
默认的自动迁移规则集包括以下内容:
table inet filter {
chain INPUT {
type filter hook input priority 0; policy drop;
counter packets 123 bytes 105891 jump ufw-before-logging-input
counter packets 123 bytes 105891 jump ufw-before-input
counter packets 0 bytes 0 jump ufw-after-input
counter packets 0 bytes 0 jump ufw-after-logging-input
counter packets 0 bytes 0 jump ufw-reject-input
counter packets 0 bytes 0 jump ufw-track-input
}
前两个counter
陈述是引起我注意的例子。我是否正确他们说“跳转到 ufw-before-foo 部分中的规则,但仅在收到前 123 个数据包和前 105891 个字节之后”。
- 为什么不立即从数据包 0 字节 0 开始?
- 为什么不使用 nftables 似乎支持的语法 >=?
- 这些数字是任意的吗?可能是由于迁移中的故障?
上面的规则集包括跳转到下面的链,可能有类似的问题。这是它的一个片段:
chain ufw-before-input {
iifname "lo" counter packets 26 bytes 3011 accept
ct state related,established counter packets 64 bytes 63272 accept
ct state invalid counter packets 0 bytes 0 jump ufw-logging-deny
ct state invalid counter packets 0 bytes 0 drop
...
}
- 为什么要根据接收到的 26 或 64 个先前的数据包来决定接受?
- 防火墙可以在开机和网络发现/连接后的任何时间任意刷新,那么为什么要丢弃所有这些初始数据包呢?
正如我上面提到的,这些规则已经实施了几个月,所以我想知道它们可能会产生什么负面影响。我想出的唯一候选者是笔记本电脑有时很难建立 wifi 连接(尤其是在从睡眠状态恢复后),而附近的第二台笔记本电脑则没有这样的问题。
- 这些丢弃数据包的规则是否会成为 wifi 连接协商困难的罪魁祸首?