CentOS 6 - 如何在 kickstart 安装期间修改 iptables?

CentOS 6 - 如何在 kickstart 安装期间修改 iptables?

在 CentOS 6 的自定义 kickstart 安装过程中,我无法修改 iptables 配置。kickstart 过程是在最小 ISO 映像上安装几个自定义 RPM。其中一个 rpm 尝试修改 iptables 规则,但在 Anaconda 完成安装后,原始默认规则仍设置在 /etc/sysconfig/iptables 中。

我尝试使用 iptables(保存|恢复),但 iptables 模块在安装期间不可用。 iptables -L返回错误“无法初始化 iptables‘filter’:表不存在”,并且保存/恢复命令都无法运行。

经过一番搜索,我发现 system-config-firewall-base 软件包已安装,似乎正在设置默认规则。此外,我发现我的规则已被复制到其中,/etc/sysconfig/iptables.old但我搞不清楚是什么原因造成的。我尝试将其添加Requires: system-config-firewall-base到我的软件包中,希望在设置规则后可以更改 %post 中的规则,但没有成功。

安装此软件包首次启动正确设置规则。

关于如何在安装过程中正确配置 iptables 的任何建议,或者如何配置某些东西以在首次启动时自动实现这一点?

谢谢。

答案1

最好的办法是直接在 kickstart 文件的 %post 部分中的脚本中编辑 /etc/sysconfig/iptables 文件。这将在您安装软件包后运行。

答案2

您正在尝试进行哪些防火墙修改?

你可以使用 kickstart 进行防火墙修改

例如,要启用 ssh (tcp 22) 和 http (tcp 80),请在 kickstart 中输入以下行

防火墙--启用--http--ssh

答案3

我要指出的是,有一个用于编辑 iptables 配置文件的编程 API

以下是一个例子:

iptables -I INPUT -p tcp --dport 8880 -j ACCEPT
iptables -I INPUT -p tcp --dport 8443 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
service iptables restart

相关内容