Linux 强化中 CIS 基准规则的实施,我们在其中一条规则“确保设置防火墙默认区域(自动)”中存在问题

Linux 强化中 CIS 基准规则的实施,我们在其中一条规则“确保设置防火墙默认区域(自动)”中存在问题

• 我们正在根据CIS 基准规则进行Linux 操作系统强化。 • 我们使用此命令提示符来验证我们的规则“确保设置firewalld 默认区域(自动)”:

输入命令:

防火墙cmd --get-default-zone

输出命令:

firewall-cmd --set-default-zone=public 防火墙设置为公共

  • 我们在 ansible 的帮助下配置了控制器机器,并尝试在命令提示符中获取值。
  • 但在命令提示符下,我们无法使用 ansible 脚本获取输出,因为“防火墙设置为公共”。

您能帮助我们编写 ansible 脚本来获得所需的输出吗?

答案1

从这里现有的语法中,我立即得到的印象是对英语的误解和/或误用。

“确保设置了firewalld默认区域(自动)”

发布 CIS 规则的链接或实际措辞......

firewalld是标准的linux防火墙;已经是了自动化的因为所有网络接口都分配给默认区域,默认区域最初是民众。如果您不喜欢public区域配置,您可以编辑它,或者创建一个新区域,然后将您的新区域设为默认区域,其中引用/etc/firewalld/firewalld.conf DefaultZone=public/etc/firewalld/zones/public.xml.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-working_with_zones

5.7.3. 更改默认区域

系统管理员在其配置文件中将区域分配给网络接口。如果接口未分配到特定区域,则会分配到默认区域。每次重新启动firewalld服务后,firewalld都会加载默认区域的设置并使其处于活动状态。

答案2

这可能是 CIS 基准文档中的误解或格式错误。

Firewall is set to be public实际上并不是命令的输出firewall-cmd --set-default-zone=public,而是该命令的预期效果的描述。

如果您的 Ansible 脚本运行该命令firewall-cmd --set-default-zone=public并且命令退出且没有任何错误,则防火墙默认区域已成功设置为public

为了确认这一点,您的脚本可以运行该命令firewall-cmd --get-default-zone并验证它是否返回public

相关内容