我们有一台配备四核 AMD Opteron 处理器 2378 的服务器。它充当我们多台服务器的防火墙。我被要求阻止来自中国的所有 IP。
在一个单独的网络中,我们有一些小型 VPS 机器(256MB 和 512MB)。我也被要求在这些 VPS 上屏蔽中国。
我在网上查看并找到需要 4500 块规则的列表。我的问题是把所有 4500 条规则都放进去会有问题吗?我知道 iptables 可以处理的规则远不止这些,我担心的是因为这些是我不想访问任何端口的块,所以我需要将这些规则放在任何允许之前。这意味着所有合法流量都需要在通过之前与所有这些规则进行比较。实施后流量会明显变慢吗?那些小型 VPS 是否能够为每个新数据包处理那么多规则(我将在块之前放置一个已建立的允许)?
我的问题不是iptables 可以支持多少条规则?,关于这些规则对负载和速度的影响。
谢谢。
它会支持这么多规则,但你真的不想遍历 4500 条规则链。
正如@Zoredache 指出的那样,您还可以对链进行二进制拆分。如果你做得很好,你可以将链遍历的次数减少到 13。
最简单的方法是使用 ipsets。
我正在使用为此提供支持的 EL6。显然我不知道所有的中国网络块,所以我只是用垃圾填满这个..
然后将规则添加到 IPtables 以匹配该集并丢弃流量..
这比标准规则链更有效、更快。