用于大规模环境的 iptables 管理工具

wom*_*ble 16 linux firewall iptables

我所在的环境是一个大规模的网络托管操作(管理着数百台服务器,几乎所有的公共地址等等——所以任何谈论管理 ADSL 链接的事情都不太可能运行良好),而且我们重新寻找能够轻松管理核心规则集(目前 iptables 中大约 12,000 个条目)以及我们为客户管理的基于主机的规则集的东西。我们的核心路由器规则集每天更改几次,而基于主机的规则集可能每月更改 50 次(跨所有服务器,因此每个月每五台服务器可能更改一次)。

我们目前正在使用 filtergen(一般来说是球,在我们的运营规模上是超级球),我过去曾在其他工作中使用过 shorewall(这比 filtergen 更可取,但我认为必须有比这更好的东西)。

我们为任何更换系统提出的“必须”是:

  • 必须相当快地生成规则集(在我们的规则集上运行 filtergen 需要 15-20 分钟;这太疯狂了)——这与下一点有关:
  • 必须生成一个 iptables-restore 样式文件并一次加载,而不是为每个规则插入调用 iptables
  • 在规则集重新加载时,不得长时间关闭防火墙(同样,这是上述问题的结果)
  • 必须支持 IPv6(我们不会部署任何与 IPv6 不兼容的新东西)
  • 必须不含 DFSG
  • 必须使用纯文本配置文件(因为我们通过版本控制运行所有内容,并且使用标准的 Unix 文本操作工具是我们的 SOP)
  • 必须同时支持 RedHat 和 Debian(首选打包,但至少不能公开反对任一发行版的标准)
  • 必须支持运行任意 iptables 命令的能力,以支持不属于系统“本地语言”的功能

任何不符合所有这些标准的都不会被考虑。以下是我们的“好东西”:

  • 应该支持配置文件“片段”(也就是说,你可以把一堆文件放到一个目录中,然后对防火墙说“在规则集中包含这个目录中的所有内容”;我们广泛使用配置管理,希望使用这个功能来自动提供特定于服务的规则)
  • 应该支持原始表
  • 应该允许您在传入数据包和 REJECT 规则中指定特定的 ICMP
  • 应该优雅地支持解析为多个 IP 地址的主机名(我们已经用 filtergen 遇到过几次这个问题;这是一种相当痛苦的屁股)
  • 该工具支持的可选/奇怪的 iptables 功能(本地或通过现有或易于编写的插件)越多越好。我们时不时地使用 iptables 的一些奇怪的功能,而且“正常工作”的功能越多,对每个人都越好。

Gre*_*ort 2

圣球(保持主题活力!)伙计...12,000 条核心规则?

我假设您已经考虑过所有简单的选项,例如简单地将集合放入 CVS 中?Puppet 还是 CFengine?

老实说,从您给出的广泛概述来看,我强烈建议重新评估您的网络设计。我可能有点太简单了,但我根本无法理解需要 12k iptables 规则的设计。这听起来确实像是从 SLB 类型的解决方案中获益更多,而不是管理防火墙规则的更好方法。

顺便说一句,如何添加评论与添加“答案”?