我们有一个分布式系统,许多客户端连接到该系统。
我们希望服务器被隔离,以便只有客户端机器可以连接。
我们使用 IPTables 如下:
/sbin/iptables -A INPUT -s Client1 -p tcp --dport <server_port> -j ACCEPT
/sbin/iptables -A INPUT -s Client2 -p tcp --dport <server_port> -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport <server_port> -j DROP
客户端机器可能有 1000 台。iptables 能处理这么多机器吗?
iptables 中列出的客户端机器数量有限制吗?
如果我们添加 800 多台客户端机器,会对性能产生影响吗?
这会对安全性产生影响吗(我们想将服务器客户端与任何无法识别的机器隔离)?
答案1
使用ipset
它将变得更加容易管理并且具有更好的性能。
我的黑名单超过 100 万,但影响微乎其微。以下评论和计数器是可选的,但最好有。
ipset create whitelist hash:net counters comment maxelem 1000000
iptables -I INPUT 1 -m set --match-set whitelist src -j ACCEPT
这样,您的 iptables 就不会因基本相同的规则而变得杂乱无章。除了速度之外,它还会让您的 iptables 更容易排除故障。
您必须保存并恢复您的规则。
ipset save >ipset.txt
ipset restore <ipset.txt
供参考:
ipset 白名单添加 192.168.0.0/16 注释“客户端 1”