0

我一直致力于在 CentOS8 上使用 Ansible、Molecule on Vagrant 自动化 CIS 基准测试指南。我一直在引用诸如https://github.com/MindPointGroup/RHEL7-CIS之类的 repos 的 ansible 脚本,并且在“1.1.6 确保 /var 存在单独的分区”这一点上遇到了问题。

运行诸如shell: mount | grep "on /var "似乎不会为 /var 和运行mount | grep -E '/var'返回sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs而不是预期创建单独分区的命令/dev/xvdg1 on /var type xfs (rw,relatime,data=ordered)

我尝试使用partedon ansible 为 /var 自动创建分区,但总是收到分区太小的错误消息。

我该怎么做才能确保 /var 位于单独的分区上?

4

2 回答 2

1

要捕获正确的路径,请运行:

安装 | grep -E "(^| )/var(|$)"

或者

安装 | grep -E "(^|\s)/var(\s|$)"

于 2020-11-06T12:11:56.767 回答
1

合规性有两个步骤,它们会反复重复。首先应用强化配置。然后查看/扫描。重复直到没有发现。

配置阶段:为确保/var挂载在单独的分区上,需要将原来的移动/var到另一个文件夹(例如/var_old)建一个新分区,挂载在/var,并将内容从移动/var_old/var。最好在系统启动到 live CD 的情况下执行此操作。实际上,最好从一开始就以这种方式构建系统。

审查/扫描阶段:
类似于其他答案中的建议:

mount | grep -E "(\s)/var(\s)"

应该做的工作。关键区别在于正则表达式 '"(\s)/var(\s)"`。

这意味着/var前后都有一个空格。使用mount命令,这是一个空格。

您也可以对 /etc/fstab 使用相同的表达式。grep -E "(\s)/var(\s)" /etc/fstab

Grepping againstmount不会告诉你挂载是持久的还是临时的。Grepping against/etc/fstab不会告诉你坐骑是否正常工作和活动。如果您这样做是为了合规,请确保使用 CIS 指南中建议的测试。

所以你的问题似乎是如何测试合规性,但如果你真的想知道如何合规,我也列出了。

您也可以编写一个 ansible playbook 来完成配置部分,但是在系统运行时尝试移动 /var 将非常复杂且不值得麻烦......除非您需要为数百个系统执行此操作。在这种情况下,我的建议是编写重新安装所有系统所需的剧本,并将 /var、/var/log/audit、/tmp 和 /home 全部放在单独的分区上。一旦你完成了这些,恭喜你,你已经在你的组织中建立了基础设施即代码。另一种方法是自动化我上面列出的过程。可行,但您将不得不手动启动到实时 CD 或网络映像,或者至少是恢复模式。

于 2020-11-06T13:46:30.970 回答