如何使用 Ansible 和 CIS 标准将挂载 /var/tmp 绑定到 /tmp

如何使用 Ansible 和 CIS 标准将挂载 /var/tmp 绑定到 /tmp

我正在根据 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'

问题:

  1. “/tmp /var/tmp none none 0 0”真的是正确的预期输出吗?我有一个 nessus 审计文件,需要“/tmp /var/tmp none bind 0 0” 哪一个是正确的?
  2. 就目前情况而言,这两个任务不是幂等的。 mount 模块运行并修改 fstab 文件,然后 lineinfile 模块重写 fstab 文件中更改的内容。每次播放时,两个任务都会运行并进行更改。有办法补救吗?
  3. 这是纠正此控制的正确方法吗?我不确定是否有更干净的方法来解决这个问题。

谢谢。

答案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     
% 

相关内容