通常(即在 Debianish 系统上),当您必须添加防火墙规则时,您必须在 iptables.d/ 目录中放置一个定义并重新启动 iptables。我可以轻松地编写脚本来在一些系统上执行此操作(例如使用 expect 或类似的东西)。
在 Redhat 系统上,他们“忘记”了 iptables.d/ 目录,您必须将新规则放入 /etc/sysconfig/iptables 中。我当然可以设计一个 sed 和 awk 东西将规则放入文件中(最后一条规则是拒绝规则,超出该规则的所有内容都会被忽略,因此您必须在文件“中间”添加规则)。但这些事情往往很快就会变得混乱。
问题:有没有办法维护许多 Redhat 服务器的 iptables 规则,这样就不需要使用 awk/sed “破解文件”?我正在寻找简单的实现,而不是像 Satelite 或 JBoss-ON (RHQ) 这样的大东西。
答案1
除非我没有理解你的问题的要点,否则你需要做的似乎就是使用适当的iptables -A
或iptables -I
命令添加规则,然后执行一个操作iptables-save > /etc/sysconfig/iptables
以在重新启动后保留当前规则集。
答案2
如果我理解正确的话,您对 iptables 的工作原理存在误解。
防火墙规则加载到内存中,并由 netfilter(内核网络工具)使用。iptables
- 只是一个命令行工具,可以访问 netfilter 规则并对其进行修改。正确设置防火墙后,您只需
/etc/init.d/iptables save
系统会将防火墙状态保存到硬盘。启动时系统会恢复这些设置。也就是说,您不需要准备任何防火墙初始化脚本,这确实是老套的做法。