带有动态 IP 列表的 Iptables

带有动态 IP 列表的 Iptables

我们在欧盟数据中心有 5 台服务器,在美国数据中心有 5 台服务器。所有服务器都安装了一些 Redis 实例,并且为列表中的 IP 地址打开了 Redis 端口(通过iptables)。所有服务器上的所有 Redis 实例都在相互通信。

添加新服务器确实很麻烦,因为我应该授予所有服务器上新 IP 地址对 Redis 端口的访问权限。

有什么方法可以避免执行此例行操作?第一种简单的方法是获取一些 IP 地址列表并iptables根据此列表刷新规则。或者也许有更优雅的解决方案?

答案1

只是我的一点想法:

创建一个 ipset,在 iptables 中创建所需的规则并匹配该集合,然后只需更新该集合以添加新 ip,而无需再次修改 iptables 规则。最后一步可以通过脚本轻松自动完成,但手动完成也很快。(我使用它来下载和过滤坏 ip 列表)。

ipset -N myiplist chooseYourType

-A INPUT -m set --match-set myipslist src -j ACCEPT

ipset add myipslist 1.2.3.4

并且不要忘记,ipset 就像 iptables 规则一样,它们需要在服务器重启后重新加载。

答案2

这看起来就像是 Chef 或 Puppet 要做的工作。下面是它的 puppet 库:https://forge.puppetlabs.com/puppetlabs/firewall以下是 Chef 的介绍:https://github.com/opscode-cookbooks/iptables

一旦你开始使用 Chef 或 Puppet 这样的工具,你就会发现很多其他事情都可以用它自动化。所以如果你现在没有这样的工具,那么花点时间和精力去弄一个,标准化你的配置、部署、修补等,是非常值得的。这确实需要一点时间,但就像我说的,从长远来看,这是值得的。

相关内容