地址并不总是添加到设置中(iptables)

地址并不总是添加到设置中(iptables)

我们在网络边界上使用iptables列表ipset。通常这种方法效果很好。我更新了规则以捕获更多活动,发现更新集合的规则似乎并不总是能成功更新集合。规则位于表PREROUTING的链中mangle

这是规则(来自iptables -L -nv -t mangle):

SET all -- * * 0.0.0.0/0 0.0.0.0/0 match-set BlackHoleTargets dst ! match-set PrivateNets src add-set blackholescanners src

其中 BlackHoleTargets 是一个 hash:ip 集,列出了不应发布的 IP 地址;PrivateNets 是一个 hash:net 集,列出了内部使用的(不可路由的)子网,而 blackholescanners 是一个 hash:ip 集,用于捕获探测未发布地址的机器的地址。

我原本以为这个方法效果不错——在刷新 blackholescanners 列表后,它开始迅速填满。它有 12 小时的超时时间,通常可容纳 ~ 22k 个地址。目前,该集合的最大大小为 65536 个元素。

作为规则修订的一部分,我们引入了一条特定于 RDP 服务器的新规则,旨在仅允许授权客户端的动态列表进行连接。作为其中的一部分,我们有一条规则来捕获表链中未使用此规则授权的 RDP 会话filterFORWARD输出自iptables -L -nv):

SET tcp -- * * 0.0.0.0/0 xxx.xxx.xxx.0/24 tcp dpt:3389 multiport sports 1024:65535 add-set UnrecognisedRDP src,dst

在哪里xxx.xxx.xxx.0/24是我们网络内的一个范围,而 UnrecognisedRDP 是一个 hash:net,net 设置,用于跟踪这些会话。

我在 UnrecognisedRDP 表中看到了条目,其中目标地址在 BlackHoleTargets 中列出 - 我希望源地址应该在 blackholescanners 中,但事实并非如此,并且它也与 PrivateNets 列表不匹配。

例如,对于以 192.241.217 开头的地址(保留完整 IP 地址),UnrecognisedRDP 表中有多个条目(针对不同的目标地址)。源地址与 PrivateNet 集不匹配(其中包含以下子网:10.0.128.0/20;10.1.0.0/16;10.0.0.0/20;10.0.16.0/24;10.192.0.0/10;10.2.0.0/24;10.129.1.0/24),因此我期望 UnrecognisedRDP 列表中的源地址位于 blackholescanners 集中,但事实并非如此。blackholescanners 列表未满(条目数:19356,最大 65536)。

我尝试在将地址添加到 UnrecognisedRDP 表的规则上方的表链中添加重复规则filterFORWARD刷新 UnrecognisedRDP 集后,我仍然发现已添加到 UnrecognisedRDP 集但尚未添加到 blackholescanners 集的条目。数据包计数器显示两个规则都已触发。

所以我的问题是:为什么该规则无法-j SET --add-set blackholescanners src成功更新集合?

相关内容