iptables的大型环境pipe理工具

我正在使用的环境是一个大型的networking托pipe操作(pipe理几百个服务器,几乎所有的公共地址等等 – 所以谈论pipe理ADSL链接的任何事情都不太可能奏效),而且,重新寻找可以轻松pipe理核心规则集(当前计数的iptables中大约12,000个条目)以及我们为客户pipe理的基于主机的规则集。 我们的核心路由器规则集每天更改几次,基于主机的规则集每月可能会更改50次(在所有服务器上,所以每五台服务器每月可能会更改一次)。

我们目前使用的是filtergen(通常是球,在我们的规模上是超级球),而且我在其他工作中使用过shorewall(这对于filtergen来说更好一些,但是我认为有必要在那里比那更好)。

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

  • 必须快速生成一个规则集(在我们的规则集上运行filtergen需要15-20分钟;这只是疯狂的) – 这与下一点有关:
  • 必须生成一个iptables-restore样式文件,并在一次命中中加载,而不是每个规则插入调用iptables
  • 在规则集重新加载时,不得长时间取下防火墙(这也是上述结果)
  • 必须支持IPv6(我们没有部署任何与IPv6不兼容的新function)
  • 必须是无DFSG的
  • 必须使用纯文本configuration文件(因为我们通过版本控制来运行所有的东西,使用标准的Unix文本操作工具是我们的SOP)
  • 必须同时支持RedHat和Debian(包装首选,但至less不能公然敌视发行版的标准)
  • 必须支持运行任意iptables命令来支持不属于系统“本地语言”的function的能力

任何不符合所有这些标准的将不被考虑。 以下是我们的“很高兴”:

  • 应该支持configuration文件的“片段”(也就是说,你可以把一堆文件放在一个目录中,然后对防火墙说“在规则集中包含这个目录中的所有内容”);我们广泛使用configurationpipe理,并希望使用此function自动提供服务特定的规则)
  • 应该支持原始表格
  • 应允许您在传入数据包和拒绝规则中指定特定的ICMP
  • 应该优雅地支持parsing到多个IP地址的主机名(我们已经被filtergen捕获了几次,这是一个相当大的痛苦)
  • 该工具支持的更多的可选/奇怪的iptablesfunction(本地或通过现有的或易于写入的插件)更好。 我们现在使用的是iptables的奇特function,而那些“正常工作”的function越多,对大家越好。

如果你也许想从一个规则驱动的方法转向一个“描述最终状态”的做法,请看fwbuilder。

优点:

  • 支持多个防火墙 – 基于核心+基于主机的规则 – 来自一组对象
  • SQL-esque“告诉我你想要什么”而不是“告诉我如何去做”的方法(注意,我不是说那里面有任何SQL!只是它是描述性的Vs程序:-)
  • 这是一个graphics用户界面,就像商业硬件供应商的界面一样,所以可以将一些任务推到员工/技能堆栈上
  • 支持我尝试过的大多数“奇怪”的用法
  • 可以为各种f / w实现生成规则 – BSD / cicso / iptables /等
  • 从规则编译器分离前端,这使我希望速度是作者关心的。 注意我没有接近你所指的范围
  • 文件格式不是二进制的
  • 做IPv6
  • 为primefaces和快速加载创build一个iptables-save styleeconfiguration

缺点:

  • 这是一个GUI
  • 移动现有规则集不太可能是无痛苦的
  • 虽然GPL和Debian,Windows + OSX客户端是30天评估,作为没有人交叉编译的这些操作系统的免费版本; 因此开发商的商业机构垄断了这些二进制文件
  • 文件格式在技术上是XML; 注意:不要让这样的情况下出现:看看他们提供的工具(你可以使用GUI二进制来操纵它,例如CLI),已经存在的CLI XML工具,记住 – 在你的规模 – 一些元数据+结构的外表不是一件坏事! 它在编辑IIRC方面差异很大。

链接: http : //www.fwbuilder.org

写你自己的。 认真 – 在这个规模是合理的。

使用ipset和/或大量的iptable表/子表。 只要有可能只重新加载一些子表/一些ipset – 这将加快重新configuration。

可能你已经这样做了,但仍然值得一提 – 使用嵌套表来减less路由器的负载,以及build立新连接的数据包所需的平均查找次数。 显然 – 前进-m状态 – 状态ESTABLISHED,RELATED是你最高的规则。

神圣的球(keepin'主题活着!)人… 12,000核心规则?

我假设你已经考虑过所有简单的选项,比如简单地将这些集合放入CVS中? 木偶还是CFengine?

老实说,从你给出的广泛的概述,我强烈build议重新评估你的networkingdevise。 我可能有点太简单了,但是我根本无法想象一个需要12k iptables规则的devise。 这听起来像是从SLBtypes的解决scheme中获益更多,而不是pipe理防火墙规则的更好方法。

在旁注中,如何添加评论与添加“答案”?

12000条规则? 你疯了? 这个数量的过滤是否会遇到性能问题? 我看不出为什么你需要12000条规则? 你如何validation你的规则集是实际执行的政策?

什么政策?

你如何testing你的政策?

12000条规则可能会违反书中的每条安全规则。

你也可以尝试SAAS解决scheme来pipe理iptables – > https://www.efw.io/Forum它也可以做AWS云集成。