作为系统强化的一部分,我尝试在 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=7956和https://bugzilla.redhat.com/show_bug.cgi?id=1161682以讨论该问题。