如何在 CentOS kickstart 中结合使用防火墙 --enabled 和 --nobase?

如何在 CentOS kickstart 中结合使用防火墙 --enabled 和 --nobase?

作为系统强化的一部分,我尝试在 CentOS 6.6 快速启动期间使用以下行配置防火墙。它在一种情况下可以工作,否则就不工作。

启动防火墙

firewall --enabled 
         --service=ssh --service=http --service=https
         --port=53:udp,69:udp,25150:tcp,25151:tcp,3306:tcp

这告诉它启用防火墙,并打开一组特定的服务。换行符是为了方便阅读,而不是配置的一部分。

我的包裹部分如下,请注意:如果我添加 --nobase选项,iptables 在直通模式,没有任何配置的痕迹。

只要我删除 --nobase,iptables 设置正确,仅定义了一组开放端口。

Kickstart 包:

#%packages --nobase --excludedocs
%packages --excludedocs
@core
yum
wget
openssh-server
yum-downloadonly
screen
sysstat
lsscsi
ntpdate
rudder-agent
-nano
-selinux-policy
-selinux-policy-targeted

我重新安装了很多次才找到这个问题,并通过谷歌搜索发现很多人将 --nobase 和防火墙 --enabled --port 结合起来设置。

另外,仅供参考:将 iptables 添加到包列表没有什么不同。 - 它是自动添加的。

如果你感到疑惑,那么最终应用程序的软件供应商可能不允许启用 SELinux。

防火墙输出1

这是添加基础后的输出:

[host]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https 
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:domain 
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:tftp 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:25150 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:25151 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:mysql 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

防火墙输出2

这是我使用--nobase时的情况:

[host]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

问题

  • 我不知道其他人是不是没有检查,或者这是 CentOS 6.6 特有的错误,或者确切的触发参数是什么。
  • @base 中的哪些包似乎与安装期间的 iptables 配置相关?

是的,基本上,我只是想填补那个缺失的依赖关系。如果找不到它,我会将 iptables 配置置于操作系统安装之外的某些东西的控制之下。我想避免这种情况,这样防火墙配置在第一次启动时就已到位,并由默认机制生成,而不是某些插件。

答案1

您需要添加system-config-firewall-base软件包,该软件包提供了lokkit在 kickstart 期间配置防火墙所使用的命令。

RHEL/CentOS 6.6 之前的版本自动包含此包,请参阅https://bugs.centos.org/view.php?id=7956https://bugzilla.redhat.com/show_bug.cgi?id=1161682以讨论该问题。

相关内容