有一个复杂的实时系统 - 几个 VLAN。每个服务器都有linux服务器,每个服务器上都有服务。服务连接在一起 - 例如主机 A 上的服务 http 连接到主机 B 上的服务 mysql 端口 3306/tcp。
我想自动将这种类型的配置映射到数据库,并为每个服务器创建防火墙规则 - 以仅允许主机之间必要的连接。
我想:
- 在每台服务器上使用 netstat 获取连接列表(或从 iptables 记录连接?),然后将其放入数据库中,
- 使用 graphvis 或类似的东西将其可视化,
- 根据数据库中的规则创建防火墙规则
- 创建 iptables 规则来记录不符合先前规则的连接并发出警告。
有什么可以做得更好/更快/更自动化的方法吗?也许没有必要重新发明轮子?
更新:“困难”部分不是创建防火墙规则,而是自动创建,然后管理所需连接的列表。
答案1
答案2
前段时间我用过费姆以及一个自定义的简单 bash 脚本,用于生成规则集并通过“include”指令将其以正确的顺序插入费姆。
如果您想要记录连接等...您可以使用ulog-mysql,并在 mysql 中保存与特定 iptables 规则匹配的特定数据,并从此时开始绘制您想要的任何内容。
另一种可能性是使用iptables 在 ansible 中的作用,也许您会找到更适合您场景的角色。
答案3
考虑使用 fwbuilder (http://www.fwbuilder.org/)。它是一个管理某种防火墙的开源工具。