• 我们正在根据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
.
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
。