在%post rpm安装中添加iptables规则

时间:2014-05-04 01:32:25

标签: firewall iptables rpm

我一直致力于打包一些侦听TCP端口的软件。我有一个RPM规范,为CentOS 6.5创建一个包。我唯一的问题是我必须在rpm安装后手动添加iptables规则或完全禁用iptables。

是否有任何幂等方式在RPM%帖子部分添加iptables规则。它甚至有意义吗?我发现的大多数解决方案都涉及grep和其他实用程序的某种组合。这对我来说似乎非常容易出错。

1 个答案:

答案 0 :(得分:1)

在CentOS中,规则保存在/etc/sysconfig/iptables中。使用/etc/init.d/iptables脚本启动防火墙时会解析此文件。

问题在于,可以通过运行service iptables save在任何时候重新生成这一点,这意味着您的RPM后期脚本所做的任何工作可能/将会遭到破坏...... system-config-firewall也是如此。< / p>

最简单的选择是在您的RPM中包含一个脚本,该脚本从post运行,应用您的规则并更新/etc/sysconfig/iptables,并打印一条警告,如果用户需要重新运行该脚本以后使用system-config-firewall

示例SPEC片段:

%post blah
  /path/to/my/script/my-update-iptables && exit 0

示例脚本片段:

#!/bin/bash
#
# do stuff here
#
iptables ... # do stuff to append / insert rules as required
#
service iptables save
#
echo "WARNING - you may need to rerun this `$0` if you change the firewall" >&2