我正在根据 CIS 基准标准强化 centos6.7 虚拟机。我使用 Ansible 尽可能地实现自动化。
我使用的强化文档是(第12-13页): https://benchmarks.cisecurity.org/tools2/linux/CIS_CentOS_Linux_6_Benchmark_v1.1.0.pdf
我正在尝试实现控制 1.1.6,它具有以下 2 个检查和期望:
# grep -e "^/tmp" /etc/fstab | grep /var/tmp
/tmp /var/tmp none none 0 0
# mount | grep -e "^/tmp" | grep /var/tmp
/tmp on /var/tmp type none (rw,bind)
为了尝试完成此任务,我编写了 2 个任务:
mount:
name: /var/tmp
src: /tmp
fstype: none
opts: rw,bind
state:mounted
和
lineinfile:
dest: /etc/fstab
state: present
regexp: '^\/tmp'
line: '/tmp /var/tmp none bind 0 0'
问题:
- “/tmp /var/tmp none none 0 0”真的是正确的预期输出吗?我有一个 nessus 审计文件,需要“/tmp /var/tmp none bind 0 0” 哪一个是正确的?
- 就目前情况而言,这两个任务不是幂等的。 mount 模块运行并修改 fstab 文件,然后 lineinfile 模块重写 fstab 文件中更改的内容。每次播放时,两个任务都会运行并进行更改。有办法补救吗?
- 这是纠正此控制的正确方法吗?我不确定是否有更干净的方法来解决这个问题。
谢谢。
答案1
这是 PDF 的“审核”部分中的一个拼写错误,因为“none none”条目会导致错误,而“none bind”(来自“Remediation”部分)则有效:
% grep /var/tmp /etc/fstab
/tmp /var/tmp none none 0 0
% sudo mount -a
mount: unknown filesystem type 'none'
% sudo ed /etc/fstab
832
/\/var\/tmp
/tmp /var/tmp none none 0 0
s/none 0/bind 0
/tmp /var/tmp none bind 0 0
w
832
q
% sudo mount -a
%