forked from ansible-lockdown/RHEL9-CIS
section1 v2 initial
Signed-off-by: Mark Bolwell <mark.bollyuk@gmail.com>
This commit is contained in:
parent
cf4376f1f7
commit
8b58d71e4b
47 changed files with 2181 additions and 1707 deletions
|
|
@ -1,66 +1,303 @@
|
|||
---
|
||||
|
||||
- name: "1.1.1.1 | PATCH | Ensure mounting of squashfs filesystems is disabled"
|
||||
block:
|
||||
- name: "1.1.1.1 | PATCH | Ensure mounting of squashfs filesystems is disabled | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install squashfs(\\s|$)"
|
||||
line: "install squashfs /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.1 | PATCH | Ensure mounting of squashfs filesystems is disabled | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist squashfs(\\s|$)"
|
||||
line: "blacklist squashfs"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.1 | PATCH | Ensure mounting of squashfs filesystems is disabled | Disable squashfs"
|
||||
community.general.modprobe:
|
||||
name: squashfs
|
||||
state: absent
|
||||
when: not system_is_container
|
||||
|
||||
- name: "1.1.1.1 | PATCH | Ensure cramfs kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_1
|
||||
- rhel9cis_rule_1_1_1_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- rule_1.1.1.1
|
||||
- squashfs
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure mounting of udf filesystems is disabled"
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.1
|
||||
- cramfs
|
||||
block:
|
||||
- name: "1.1.1.2 | PATCH | Ensure mounting of udf filesystems is disable | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install udf(\\s|$)"
|
||||
line: "install udf /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
- name: "1.1.1.1 | PATCH | Ensure cramfs kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install cramfs(\\s|$)"
|
||||
line: "install cramfs /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure mounting of udf filesystems is disabled | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist udf(\\s|$)"
|
||||
line: "blacklist udf"
|
||||
create: true
|
||||
mode: '0600'
|
||||
- name: "1.1.1.1 | PATCH | Ensure cramfs kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist cramfs(\\s|$)"
|
||||
line: "blacklist cramfs"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure mounting of udf filesystems is disable | Disable udf"
|
||||
community.general.modprobe:
|
||||
name: udf
|
||||
state: absent
|
||||
when: not system_is_container
|
||||
- name: "1.1.1.1 | PATCH | Ensure cramfs kernel module is not available | Disable cramfs"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: cramfs
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure freevxfs kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_2
|
||||
- rhel9cis_rule_1_1_1_2
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- rule_1.1.1.2
|
||||
- udf
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.2
|
||||
- freevxfs
|
||||
block:
|
||||
- name: "1.1.1.2 | PATCH | Ensure freevxfs kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install freevxfs(\\s|$)"
|
||||
line: "install freevxfs /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure freevxfs kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist freevxfs(\\s|$)"
|
||||
line: "blacklist freevxfs"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.2 | PATCH | Ensure freevxfs kernel module is not available | Disable freevxfs"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: freevxfs
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.3 | PATCH | Ensure hfs kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.3
|
||||
- hfs
|
||||
block:
|
||||
- name: "1.1.1.3 | PATCH | Ensure hfs kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install hfs(\\s|$)"
|
||||
line: "install hfs /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.3 | PATCH | Ensure hfs kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist hfs(\\s|$)"
|
||||
line: "blacklist hfs"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.3 | PATCH | Ensure hfs kernel module is not available | Disable hfs"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: hfs
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.4 | PATCH | Ensure hfsplus kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.4
|
||||
- hfsplus
|
||||
block:
|
||||
- name: "1.1.1.4 | PATCH | Ensure hfsplus kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install hfsplus(\\s|$)"
|
||||
line: "install hfsplus /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.4 | PATCH | Ensure hfsplus kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist hfsplus(\\s|$)"
|
||||
line: "blacklist hfsplus"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.4 | PATCH | Ensure hfsplus kernel module is not available | Disable hfsplus"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: hfsplus
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.5 | PATCH | Ensure jffs2 kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.5
|
||||
- jffs2
|
||||
block:
|
||||
- name: "1.1.1.5 | PATCH | Ensure jffs2 kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install jffs2(\\s|$)"
|
||||
line: "install jffs2 /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.5 | PATCH | Ensure jffs2 kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist jffs2(\\s|$)"
|
||||
line: "blacklist jffs2"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.5 | PATCH | Ensure jffs2 kernel module is not available | Disable jffs2"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: jffs2
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.6 | PATCH | Ensure squashfs kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_6
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- rule_1.1.1.6
|
||||
- squashfs
|
||||
block:
|
||||
- name: "1.1.1.6 | PATCH | Ensure squashfs kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install squashfs(\\s|$)"
|
||||
line: "install squashfs /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.6 | PATCH | Ensure squashfs kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist squashfs(\\s|$)"
|
||||
line: "blacklist squashfs"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.6 | PATCH | Ensure squashfs kernel module is not available | Disable squashfs"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: squashfs
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.7 | PATCH | Ensure udf kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_7
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- rule_1.1.1.7
|
||||
- udf
|
||||
block:
|
||||
- name: "1.1.1.7 | PATCH | Ensure udf kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install udf(\\s|$)"
|
||||
line: "install udf /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.7 | PATCH | Ensure udf kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist udf(\\s|$)"
|
||||
line: "blacklist udf"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.7 | PATCH | Ensure udf kernel module is not available | Disable udf"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: udf
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.8 | PATCH | Ensure usb-storage kernel module is not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_8
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- rule_1.1.1.8
|
||||
- usb
|
||||
block:
|
||||
- name: "1.1.1.8 | PATCH | Ensure usb-storage kernel module is not available | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install usb-storage(\\s|$)"
|
||||
line: "install usb-storage /bin/true"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.8 | PATCH | Ensure usb-storage kernel module is not available | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist usb-storage(\\s|$)"
|
||||
line: "blacklist usb-storage"
|
||||
create: true
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.1.8 | PATCH | Ensure usb-storage kernel module is not available | Disable usb"
|
||||
when:
|
||||
- not system_is_container
|
||||
community.general.modprobe:
|
||||
name: usb-storage
|
||||
state: absent
|
||||
|
||||
- name: "1.1.1.9 | PATCH | Ensure unused filesystems kernel modules are not available"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_9
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.1.1.9
|
||||
- usb
|
||||
vars:
|
||||
warn_control_id: '1.1.1.9'
|
||||
block:
|
||||
- name: "1.1.1.9 | PATCH | Ensure unused filesystems kernel modules are not available | Add discovery script"
|
||||
ansible.builtin.template:
|
||||
src: fs_with_cves.sh
|
||||
dest: /var/fs_with_cves.sh
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0744'
|
||||
|
||||
- name: "1.1.1.9 | AUDIT | Ensure unused filesystems kernel modules are not available | Run discovery script"
|
||||
ansible.builtin.shell: /var/fs_with_cves.sh
|
||||
changed_when: false
|
||||
failed_when: discovered_fs_modules_loaded.rc not in [ 0, 99 ]
|
||||
register: discovered_fs_modules_loaded
|
||||
|
||||
- name: "1.1.1.9 | AUDIT | Ensure unused filesystems kernel modules are not available | Output Warning"
|
||||
when: discovered_fs_modules_loaded.stdout | length > 0
|
||||
ansible.builtin.debug:
|
||||
msg: |
|
||||
"Warning!! Discovered loaded Filesystem modules that need attention. This is a manual task
|
||||
{{ discovered_fs_modules_loaded.stdout_lines}}"
|
||||
|
||||
- name: "1.1.1.9 | AUDIT | Ensure unused filesystems kernel modules are not available | Capture Warning"
|
||||
when: discovered_fs_modules_loaded.stdout | length > 0
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
|
|
|||
83
tasks/section_1/cis_1.1.2.1.x.yml
Normal file
83
tasks/section_1/cis_1.1.2.1.x.yml
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.1.1 | PATCH | Ensure /tmp is a separate partition"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_1_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.2.1.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.1.1'
|
||||
required_mount: '/tmp'
|
||||
block:
|
||||
- name: "1.1.2.1.1 | PATCH | Ensure /tmp is a separate partition | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.1.1 | PATCH | Ensure /tmp is a separate partition | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
# via fstab
|
||||
- name: |
|
||||
"1.1.2.1.2 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"1.1.2.1.3 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
"1.1.2.1.4 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
ansible.posix.mount:
|
||||
name: /tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_1_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_1_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_1_4 %}noexec{% endif %}
|
||||
notify: Remount tmp
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
when:
|
||||
- item.mount == "/tmp"
|
||||
- not rhel9cis_tmp_svc
|
||||
- rhel9cis_rule_1_1_2_1_2 or
|
||||
rhel9cis_rule_1_1_2_1_3 or
|
||||
rhel9cis_rule_1_1_2_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.2.1.2
|
||||
- rule_1.1.2.1.3
|
||||
- rule_1.1.2.1.4
|
||||
|
||||
# via systemd
|
||||
- name: |
|
||||
"1.1.2.1.1 | PATCH | Ensure /tmp is configured"
|
||||
"1.1.2.1.2 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"1.1.2.1.3 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
"1.1.2.1.4 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
when:
|
||||
- rhel9cis_tmp_svc
|
||||
- rhel9cis_rule_1_1_2_1_1 or
|
||||
rhel9cis_rule_1_1_2_1_2 or
|
||||
rhel9cis_rule_1_1_2_1_3 or
|
||||
rhel9cis_rule_1_1_2_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.2.1.1
|
||||
- rule_1.1.2.1.2
|
||||
- rule_1.1.2.1.3
|
||||
- rule_1.1.2.1.4
|
||||
ansible.builtin.template:
|
||||
src: etc/systemd/system/tmp.mount.j2
|
||||
dest: /etc/systemd/system/tmp.mount
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Systemd restart tmp.mount
|
||||
|
||||
54
tasks/section_1/cis_1.1.2.2.x.yml
Normal file
54
tasks/section_1/cis_1.1.2.2.x.yml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
|
||||
# Skips if mount is absent
|
||||
- name: "1.1.2.2.1 | AUDIT | Ensure /dev/shm is a separate partition"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_2_2_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.2.2.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.2.1'
|
||||
block:
|
||||
- name: "1.1.2.2.1 | AUDIT | Ensure /dev/shm is a separate partition | check exists"
|
||||
ansible.builtin.shell: mount -l | grep -w /dev/shm
|
||||
changed_when: false
|
||||
register: rhel9cis_1_8_1_1_mount_check
|
||||
|
||||
- name: "1.1.2.2.1 | AUDIT | Ensure /dev/shm is a separate partition"
|
||||
when: rhel9cis_1_8_1_1_mount_check.rc == 1
|
||||
block:
|
||||
- name: "1.1.2.2.1 | AUDIT | Ensure /dev/shm is a separate partition | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.2.1 | AUDIT | Ensure separate partition exists for /home | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
- name: |
|
||||
"1.1.2.2.2 | PATCH | Ensure nodev option set on /dev/shm partition
|
||||
1.1.2.2.3 | PATCH | Ensure nosuid option set on /dev/shm partition
|
||||
1.1.2.2.4 | PATCH | Ensure noexec option set on /dev/shm partition"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_2_2_2 or
|
||||
rhel9cis_rule_1_1_2_2_3 or
|
||||
rhel9cis_rule_1_1_2_2_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.2.2.2
|
||||
- rule_1.1.2.2.3
|
||||
- rule_1.1.2.2.4
|
||||
ansible.posix.mount:
|
||||
name: /dev/shm
|
||||
src: tmpfs
|
||||
fstype: tmpfs
|
||||
state: mounted
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_2_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_2_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_2_4 %}noexec{% endif %}
|
||||
notify: Change_requires_reboot
|
||||
49
tasks/section_1/cis_1.1.2.3.x.yml
Normal file
49
tasks/section_1/cis_1.1.2.3.x.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.3.1 | AUDIT | Ensure separate partition exists for /home"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_3_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1_1_2.3.1
|
||||
- skip_ansible_lint
|
||||
vars:
|
||||
warn_control_id: '1.1.2.3.1'
|
||||
required_mount: '/home'
|
||||
block:
|
||||
- name: "1.1.2.3.1 | AUDIT | Ensure separate partition exists for /home | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.3.1 | AUDIT | Ensure separate partition exists for /home | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
- name: |
|
||||
"1.1.2.3.2 | PATCH | Ensure nodev option set on /home partition
|
||||
1.1.2.3.3 | PATCH | Ensure nosuid option set on /home partition"
|
||||
when:
|
||||
- item.mount == "/home"
|
||||
- rhel9cis_rule_1_1_2_3_2 or
|
||||
rhel9cis_rule_1_1_2_3_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.3.2
|
||||
- rule_1_1_2.3.3
|
||||
ansible.builtin.mount:
|
||||
name: /home
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_3_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_3_3 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
49
tasks/section_1/cis_1.1.2.4.x.yml
Normal file
49
tasks/section_1/cis_1.1.2.4.x.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.4.1 | AUDIT | Ensure separate partition exists for /var"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_4_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.4.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.4.1'
|
||||
required_mount: '/var'
|
||||
block:
|
||||
- name: "1.1.2.4.1 | AUDIT | Ensure separate partition exists for /var | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.4.1 | AUDIT | Ensure separate partition exists for /var | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
# skips if mount is absent
|
||||
- name: |
|
||||
"1.1.2.4.2 | PATCH | Ensure nodev option set on /var partition"
|
||||
"1.1.2.4.3 | PATCH | Ensure nosuid option set on /var partition"
|
||||
when:
|
||||
- item.mount == "/var"
|
||||
- rhel9cis_rule_1_1_2_4_2 or
|
||||
rhel9cis_rule_1_1_2_4_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.4.2
|
||||
- rule_1_1_2.4.3
|
||||
ansible.builtin.mount:
|
||||
name: /var
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_4_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_4_3 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
53
tasks/section_1/cis_1.1.2.5.x.yml
Normal file
53
tasks/section_1/cis_1.1.2.5.x.yml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
---
|
||||
|
||||
# Skips if mount is absent
|
||||
- name: "1.1.2.5.1 | AUDIT | Ensure separate partition exists for /var/tmp"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_5_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1_1_2.5.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.5.1'
|
||||
required_mount: '/var/tmp'
|
||||
block:
|
||||
- name: "1.1.2.5.1 | AUDIT | Ensure separate partition exists for /var/tmp | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.5.1 | AUDIT | Ensure separate partition exists for /var/tmp | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
# skips if mount is absent
|
||||
- name: |
|
||||
"1.1.2.5.2 | PATCH | Ensure nodev option set on /var/tmp partition"
|
||||
"1.1.2.5.3 | PATCH | Ensure nosuid option set on /var/tmp partition"
|
||||
"1.1.2.5.4 | PATCH | Ensure noexec option set on /var/tmp partition"
|
||||
when:
|
||||
- item.mount == "/var/tmp"
|
||||
- rhel9cis_rule_1_1_2_5_2 or
|
||||
rhel9cis_rule_1_1_2_5_3 or
|
||||
rhel9cis_rule_1_1_2_5_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.5.2
|
||||
- rule_1_1_2.5.3
|
||||
- rule_1_1_2.5.4
|
||||
ansible.builtin.mount:
|
||||
name: /var/tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_5_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_5_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_5_4 %}noexec{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
51
tasks/section_1/cis_1.1.2.6.x.yml
Normal file
51
tasks/section_1/cis_1.1.2.6.x.yml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.6.1 | AUDIT | Ensure separate partition exists for /var/log"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_6_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1_1_2.6.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.6.1'
|
||||
required_mount: '/var/log'
|
||||
block:
|
||||
- name: "1.1.2.6.1 | AUDIT | Ensure separate partition exists for /var/log | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.6.1 | AUDIT | Ensure separate partition exists for /var/log | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
- name: |
|
||||
"1.1.2.6.2 | PATCH | Ensure nodev option set on /var/log partition"
|
||||
"1.1.2.6.3 | PATCH | Ensure nosuid option set on /var/log partition"
|
||||
"1.1.2.6.4 | PATCH | Ensure noexec option set on /var/log partition"
|
||||
when:
|
||||
- item.mount == "/var/log"
|
||||
- rhel9cis_rule_1_1_2_6_2 or
|
||||
rhel9cis_rule_1_1_2_6_3 or
|
||||
rhel9cis_rule_1_1_2_6_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.6.2
|
||||
- rule_1_1_2.6.3
|
||||
- rule_1_1_2.6.4
|
||||
ansible.builtin.mount:
|
||||
name: /var/log
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_6_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_6_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_6_4 %}noexec{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
51
tasks/section_1/cis_1.1.2.7.x.yml
Normal file
51
tasks/section_1/cis_1.1.2.7.x.yml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.7.1 | AUDIT | Ensure separate partition exists for /var/log/audit"
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_7_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1_1_2.7.1
|
||||
vars:
|
||||
warn_control_id: '1.1.2.7.1'
|
||||
required_mount: '/var/log/audit'
|
||||
block:
|
||||
- name: "1.1.2.7.1 | AUDIT | Ensure separate partition exists for /var/log/audit | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.7.1 | AUDIT | Ensure separate partition exists for /var/log/audit | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
- name: |
|
||||
"1.1.2.7.2 | PATCH | Ensure nodev option set on /var/log/audit partition"
|
||||
"1.1.2.7.3 | PATCH | Ensure nosuid option set on /var/log/audit partition"
|
||||
"1.1.2.7.4 | PATCH | Ensure noexec option set on /var/log/audit partition"
|
||||
ansible.builtin.mount:
|
||||
name: /var/log/audit
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_7_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_7_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_7_4 %}noexec{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/var/log/audit"
|
||||
- rhel9cis_rule_1_1_2_7_2 or
|
||||
rhel9cis_rule_1_1_2_7_3 or
|
||||
rhel9cis_rule_1_1_2_7_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1_1_2.7.2
|
||||
- rule_1_1_2.7.3
|
||||
- rule_1_1_2.7.4
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.2.1 | PATCH | Ensure /tmp is a separate partition"
|
||||
block:
|
||||
- name: "1.1.2.1 | PATCH | Ensure /tmp is a separate partition | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.2.1 | PATCH | Ensure /tmp is a separate partition | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
vars:
|
||||
warn_control_id: '1.1.2.1'
|
||||
required_mount: '/tmp'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_2_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.2.1
|
||||
|
||||
# via fstab
|
||||
- name: |
|
||||
"1.1.2.2 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"1.1.2.3 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
"1.1.2.4 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
ansible.posix.mount:
|
||||
name: /tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_2_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_3 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_2_4 %}nosuid{% endif %}
|
||||
notify: Remount tmp
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
when:
|
||||
- item.mount == "/tmp"
|
||||
- not rhel9cis_tmp_svc
|
||||
- rhel9cis_rule_1_1_2_2 or
|
||||
rhel9cis_rule_1_1_2_3 or
|
||||
rhel9cis_rule_1_1_2_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.2.2
|
||||
- rule_1.1.2.3
|
||||
- rule_1.1.2.4
|
||||
|
||||
# via systemd
|
||||
- name: |
|
||||
"1.1.2.1 | PATCH | Ensure /tmp is configured"
|
||||
"1.1.2.2 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"1.1.2.3 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
"1.1.2.4 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
ansible.builtin.template:
|
||||
src: etc/systemd/system/tmp.mount.j2
|
||||
dest: /etc/systemd/system/tmp.mount
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Systemd restart tmp.mount
|
||||
when:
|
||||
- rhel9cis_tmp_svc
|
||||
- rhel9cis_rule_1_1_2_1 or
|
||||
rhel9cis_rule_1_1_2_2 or
|
||||
rhel9cis_rule_1_1_2_3 or
|
||||
rhel9cis_rule_1_1_2_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.2.1
|
||||
- rule_1.1.2.2
|
||||
- rule_1.1.2.3
|
||||
- rule_1.1.2.4
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.3.1 | AUDIT | Ensure separate partition exists for /var"
|
||||
block:
|
||||
- name: "1.1.3.1 | AUDIT | Ensure separate partition exists for /var | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.3.1 | AUDIT | Ensure separate partition exists for /var | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
vars:
|
||||
warn_control_id: '1.1.3.1'
|
||||
required_mount: '/var'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_3_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.3.1
|
||||
|
||||
# skips if mount is absent
|
||||
- name: |
|
||||
"1.1.3.2 | PATCH | Ensure nodev option set on /var partition"
|
||||
"1.1.3.3 | PATCH | Ensure nosuid option set on /var partition"
|
||||
ansible.builtin.mount:
|
||||
name: /var
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_3_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_3_3 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/var"
|
||||
- rhel9cis_rule_1_1_3_2 or
|
||||
rhel9cis_rule_1_1_3_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- skip_ansible_lint
|
||||
- rule_1.1.3.2
|
||||
- rule_1.1.3.3
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
---
|
||||
|
||||
# Skips if mount is absent
|
||||
- name: "1.1.4.1 | AUDIT | Ensure separate partition exists for /var/tmp"
|
||||
block:
|
||||
- name: "1.1.4.1 | AUDIT | Ensure separate partition exists for /var/tmp | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.4.1 | AUDIT | Ensure separate partition exists for /var/tmp | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
vars:
|
||||
warn_control_id: '1.1.4.1'
|
||||
required_mount: '/var/tmp'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_4_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.4.1
|
||||
|
||||
# skips if mount is absent
|
||||
- name: |
|
||||
"1.1.4.2 | PATCH | Ensure noexec option set on /var/tmp partition"
|
||||
"1.1.4.3 | PATCH | Ensure nosuid option set on /var/tmp partition"
|
||||
"1.1.4.4 | PATCH | Ensure nodev option set on /var/tmp partition"
|
||||
ansible.builtin.mount:
|
||||
name: /var/tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_4_2 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_4_3 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_4_4 %}nodev{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/var/tmp"
|
||||
- rhel9cis_rule_1_1_4_2 or
|
||||
rhel9cis_rule_1_1_4_3 or
|
||||
rhel9cis_rule_1_1_4_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- skip_ansible_lint
|
||||
- rule_1.1.4.2
|
||||
- rule_1.1.4.3
|
||||
- rule_1.1.4.4
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.5.1 | AUDIT | Ensure separate partition exists for /var/log"
|
||||
block:
|
||||
- name: "1.1.5.1 | AUDIT | Ensure separate partition exists for /var/log | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.5.1 | AUDIT | Ensure separate partition exists for /var/log | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
vars:
|
||||
warn_control_id: '1.1.5.1'
|
||||
required_mount: '/var/log'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_5_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.5.1
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: |
|
||||
"1.1.5.2 | PATCH | Ensure nodev option set on /var/log partition"
|
||||
"1.1.5.3 | PATCH | Ensure noexec option set on /var/log partition"
|
||||
"1.1.5.4 | PATCH | Ensure nosuid option set on /var/log partition"
|
||||
ansible.builtin.mount:
|
||||
name: /var/log
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_5_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_5_3 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_5_4 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/var/log"
|
||||
- rhel9cis_rule_1_1_5_2 or
|
||||
rhel9cis_rule_1_1_5_3 or
|
||||
rhel9cis_rule_1_1_5_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- skip_ansible_lint
|
||||
- rule_1.1.5.2
|
||||
- rule_1.1.5.3
|
||||
- rule_1.1.5.4
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.6.1 | AUDIT | Ensure separate partition exists for /var/log/audit"
|
||||
block:
|
||||
- name: "1.1.6.1 | AUDIT | Ensure separate partition exists for /var/log/audit | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.6.1 | AUDIT | Ensure separate partition exists for /var/log/audit | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
vars:
|
||||
warn_control_id: '1.1.6.1'
|
||||
required_mount: '/var/log/audit'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_6_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.6.1
|
||||
|
||||
- name: |
|
||||
"1.1.6.2 | PATCH | Ensure noexec option set on /var/log/audit partition"
|
||||
"1.1.6.3 | PATCH | Ensure nodev option set on /var/log/audit partition"
|
||||
"1.1.6.4 | PATCH | Ensure nosuid option set on /var/log/audit partition"
|
||||
ansible.builtin.mount:
|
||||
name: /var/log/audit
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_6_2 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_6_3 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_6_4 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/var/log/audit"
|
||||
- rhel9cis_rule_1_1_6_2 or
|
||||
rhel9cis_rule_1_1_6_3 or
|
||||
rhel9cis_rule_1_1_6_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- skip_ansible_lint
|
||||
- rule_1.1.6.2
|
||||
- rule_1.1.6.3
|
||||
- rule_1.1.6.4
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.7.1 | AUDIT | Ensure separate partition exists for /home"
|
||||
block:
|
||||
- name: "1.1.7.1 | AUDIT | Ensure separate partition exists for /home | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.7.1 | AUDIT | Ensure separate partition exists for /home | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
vars:
|
||||
warn_control_id: '1.1.7.1'
|
||||
required_mount: '/home'
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- rhel9cis_rule_1_1_7_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.7.1
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: |
|
||||
"1.1.7.2 | PATCH | Ensure nodev option set on /home partition
|
||||
1.1.7.3 | PATCH | Ensure nosuid option set on /home partition"
|
||||
ansible.builtin.mount:
|
||||
name: /home
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_7_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_7_3 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_facts.mounts }}"
|
||||
loop_control:
|
||||
label: "{{ item.device }}"
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- item.mount == "/home"
|
||||
- rhel9cis_rule_1_1_7_2 or
|
||||
rhel9cis_rule_1_1_7_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.7.2
|
||||
- rule_1.1.7.3
|
||||
- skip_ansible_lint
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
---
|
||||
|
||||
# Skips if mount is absent
|
||||
- name: "1.1.8.1 | AUDIT | Ensure /dev/shm is a separate partition"
|
||||
block:
|
||||
- name: "1.1.8.1 | AUDIT | Ensure /dev/shm is a separate partition | check exists"
|
||||
ansible.builtin.shell: mount -l | grep -w /dev/shm
|
||||
changed_when: false
|
||||
register: rhel9cis_1_8_1_1_mount_check
|
||||
|
||||
- name: "1.1.8.1 | AUDIT | Ensure /dev/shm is a separate partition"
|
||||
block:
|
||||
- name: "1.1.8.1 | AUDIT | Ensure /dev/shm is a separate partition | Absent"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
|
||||
- name: "1.1.8.1 | AUDIT | Ensure separate partition exists for /home | Present"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
when: rhel9cis_1_8_1_1_mount_check.rc == 1
|
||||
|
||||
vars:
|
||||
warn_control_id: '1.1.8.1'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_8_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.8.1
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: |
|
||||
"1.1.8.2 | PATCH | Ensure nodev option set on /dev/shm partition | Set nodev option
|
||||
1.1.8.3 | PATCH | Ensure noexec option set on /dev/shm partition | Set nosuid option
|
||||
1.1.8.4 | PATCH | Ensure nosuid option set on /dev/shm partition | Set noexec option"
|
||||
ansible.posix.mount:
|
||||
name: /dev/shm
|
||||
src: tmpfs
|
||||
fstype: tmpfs
|
||||
state: mounted
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_8_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_8_3 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_8_4 %}nosuid{% endif %}
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- rhel9cis_rule_1_1_8_2 or
|
||||
rhel9cis_rule_1_1_8_3 or
|
||||
rhel9cis_rule_1_1_8_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.8.2
|
||||
- rule_1.1.8.3
|
||||
- rule_1.1.8.4
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.1.9 | PATCH | Disable USB Storage"
|
||||
block:
|
||||
- name: "1.1.9 | PATCH | Disable USB Storage | Edit modprobe config"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install usb-storage(\\s|$)"
|
||||
line: "install usb-storage /bin/true"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0600'
|
||||
|
||||
- name: "1.1.9 | PATCH | Disable USB Storage | Edit modprobe config"
|
||||
community.general.modprobe:
|
||||
name: usb-storage
|
||||
state: absent
|
||||
when: not system_is_container
|
||||
|
||||
- name: "1.1.9 | PATCH | Disable USB Storage | blacklist"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/modprobe.d/blacklist.conf
|
||||
regexp: "^(#)?blacklist usb-storage(\\s|$)"
|
||||
line: "blacklist usb-storage"
|
||||
create: true
|
||||
mode: '0600'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_9
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- removable_storage
|
||||
- rule_1.1.9
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.10 | PATCH | Ensure system-wide crypto policy is not legacy"
|
||||
block:
|
||||
- name: "1.10 | PATCH | Ensure system-wide crypto policy is not legacy | set_fact"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_full_crypto_policy: "{{ rhel9cis_crypto_policy }}{% if rhel9cis_crypto_policy_module | length > 0 %}:{{ rhel9cis_crypto_policy_module }}{% endif %}"
|
||||
|
||||
- name: "1.10 | PATCH | Ensure system-wide crypto policy is not legacy"
|
||||
ansible.builtin.shell: |
|
||||
update-crypto-policies --set "{{ rhel9cis_full_crypto_policy }}"
|
||||
update-crypto-policies
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- rhel9cis_system_wide_crypto_policy.stdout != rhel9cis_full_crypto_policy
|
||||
when:
|
||||
- rhel9cis_rule_1_10
|
||||
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- no system_is_ec2
|
||||
- patch
|
||||
- rule_1.10
|
||||
121
tasks/section_1/cis_1.2.1.x.yml
Normal file
121
tasks/section_1/cis_1.2.1.x.yml
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
---
|
||||
|
||||
- name: "1.2.1.1 | AUDIT | Ensure GPG keys are configured"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_1_1
|
||||
- ansible_facts.distribution == "RedHat" or
|
||||
ansible_facts.distribution == "Rocky" or
|
||||
ansible_facts.distribution == "AlmaLinux"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- patch
|
||||
- rule_1.2.1.1
|
||||
block:
|
||||
- name: "1.2.1.1 | AUDIT | Ensure GPG keys are configured | list installed pubkey keys"
|
||||
ansible.builtin.shell: "rpm -qa | grep {{ os_gpg_key_pubkey_name }}"
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: os_installed_pub_keys
|
||||
|
||||
- name: "1.2.1.1 | AUDIT | Ensure GPG keys are configured | Query found keys"
|
||||
ansible.builtin.shell: 'rpm -q --queryformat "%{PACKAGER} %{VERSION}\\n" {{ os_gpg_key_pubkey_name }} | grep "{{ os_gpg_key_pubkey_content }}"'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: os_gpg_key_check
|
||||
when: os_installed_pub_keys.rc == 0
|
||||
|
||||
- name: "1.2.1.1 | AUDIT | Ensure GPG keys are configured | expected keys fail"
|
||||
when:
|
||||
- os_installed_pub_keys.rc == 1 or
|
||||
os_gpg_key_check.rc == 1
|
||||
ansible.builtin.fail:
|
||||
msg: Installed GPG Keys do not meet expected values or expected keys are not installed
|
||||
|
||||
- name: "1.2.1.2 | PATCH | Ensure gpgcheck is globally activated"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_1_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.2.1.2
|
||||
block:
|
||||
- name: "1.2.1.2 | AUDIT | Ensure gpgcheck is globally activated | Find repos"
|
||||
ansible.builtin.find:
|
||||
paths: /etc/yum.repos.d
|
||||
patterns: "*.repo"
|
||||
register: yum_repos
|
||||
|
||||
- name: "1.2.1.2 | PATCH | Ensure gpgcheck is globally activated | Update yum.repos"
|
||||
ansible.builtin.replace:
|
||||
name: "{{ item.path }}"
|
||||
regexp: "^gpgcheck=0"
|
||||
replace: "gpgcheck=1"
|
||||
loop: "{{ yum_repos.files }}"
|
||||
loop_control:
|
||||
label: "{{ item.path }}"
|
||||
|
||||
- name: "1.2.1.3 | AUDIT | Ensure repo_gpgcheck is globally activated"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_1_3
|
||||
- rhel9cis_rule_enable_repogpg
|
||||
- not rhel9cis_rhel_default_repo
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- audit
|
||||
- rule_1.2.1.3
|
||||
block:
|
||||
- name: "1.2.1.3 | PATCH | Ensure repo_gpgcheck is globally activated | dnf.conf"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dnf/dnf.conf
|
||||
regexp: '^repo_gpgcheck'
|
||||
line: repo_gpgcheck=1
|
||||
|
||||
- name: "1.2.1.3 | AUDIT| Ensure repo_gpgcheck is globally activated | get repo files"
|
||||
ansible.builtin.find:
|
||||
paths: /etc/yum.repos.d
|
||||
patterns: "*.repo"
|
||||
register: repo_files
|
||||
|
||||
- name: "1.2.1.3 | PATCH | Ensure repo_gpgcheck is globally activated | amend repo files"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ item.path }}"
|
||||
regexp: '^repo_gpgcheck( |)=( |)0'
|
||||
replace: repo_gpgcheck=1
|
||||
loop: "{{ repo_files.files }}"
|
||||
loop_control:
|
||||
label: "{{ item.path }}"
|
||||
|
||||
- name: "1.2.1.4 | AUDIT | Ensure package manager repositories are configured"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- audit
|
||||
- rule_1.2.1.4
|
||||
- skip_ansible_lint
|
||||
vars:
|
||||
warn_control_id: '1.2.1.4'
|
||||
block:
|
||||
- name: "1.2.1.4 | AUDIT | Ensure package manager repositories are configured | Get repo list"
|
||||
ansible.builtin.shell: dnf repolist
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: dnf_configured
|
||||
check_mode: false
|
||||
|
||||
- name: "1.2.1.4 | AUDIT | Ensure package manager repositories are configured | Display repo list"
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
- "Warning!! Below are the configured repos. Please review and make sure all align with site policy"
|
||||
- "{{ dnf_configured.stdout_lines }}"
|
||||
|
||||
- name: "1.2.1.4 | AUDIT | Ensure package manager repositories are configured | Warn Count"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
---
|
||||
|
||||
- name: "1.9 | PATCH | Ensure updates, patches, and additional security software are installed"
|
||||
- name: "1.2.2.1 | PATCH | Ensure updates, patches, and additional security software are installed"
|
||||
ansible.builtin.package:
|
||||
name: "*"
|
||||
state: latest
|
||||
notify: Change_requires_reboot
|
||||
when:
|
||||
- rhel9cis_rule_1_9
|
||||
- rhel9cis_rule_1_2_2_1
|
||||
- not system_is_ec2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.9
|
||||
- rule_1.2.2.1
|
||||
- skip_ansible_lint
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.2.1 | AUDIT | Ensure GPG keys are configured"
|
||||
block:
|
||||
- name: "1.2.1 | AUDIT | Ensure GPG keys are configured | list installed pubkey keys"
|
||||
ansible.builtin.shell: "rpm -qa | grep {{ os_gpg_key_pubkey_name }}"
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: os_installed_pub_keys
|
||||
|
||||
- name: "1.2.1 | AUDIT | Ensure GPG keys are configured | Query found keys"
|
||||
ansible.builtin.shell: 'rpm -q --queryformat "%{PACKAGER} %{VERSION}\\n" {{ os_gpg_key_pubkey_name }} | grep "{{ os_gpg_key_pubkey_content }}"'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: os_gpg_key_check
|
||||
when: os_installed_pub_keys.rc == 0
|
||||
|
||||
- name: "1.2.1 | AUDIT | Ensure GPG keys are configured | expected keys fail"
|
||||
ansible.builtin.fail:
|
||||
msg: Installed GPG Keys do not meet expected values or expected keys are not installed
|
||||
when:
|
||||
- os_installed_pub_keys.rc == 1 or
|
||||
os_gpg_key_check.rc == 1
|
||||
when:
|
||||
- rhel9cis_rule_1_2_1
|
||||
- ansible_facts.distribution == "RedHat" or
|
||||
ansible_facts.distribution == "Rocky" or
|
||||
ansible_facts.distribution == "AlmaLinux"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- patch
|
||||
- rule_1.2.1
|
||||
|
||||
- name: "1.2.2 | PATCH | Ensure gpgcheck is globally activated"
|
||||
block:
|
||||
- name: "1.2.2 | AUDIT | Ensure gpgcheck is globally activated | Find repos"
|
||||
ansible.builtin.find:
|
||||
paths: /etc/yum.repos.d
|
||||
patterns: "*.repo"
|
||||
register: yum_repos
|
||||
|
||||
- name: "1.2.2 | PATCH | Ensure gpgcheck is globally activated | Update yum.repos"
|
||||
ansible.builtin.replace:
|
||||
name: "{{ item.path }}"
|
||||
regexp: "^gpgcheck=0"
|
||||
replace: "gpgcheck=1"
|
||||
loop: "{{ yum_repos.files }}"
|
||||
loop_control:
|
||||
label: "{{ item.path }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.2.2
|
||||
|
||||
- name: "1.2.3 | AUDIT | Ensure package manager repositories are configured"
|
||||
block:
|
||||
- name: "1.2.3 | AUDIT | Ensure package manager repositories are configured | Get repo list"
|
||||
ansible.builtin.shell: dnf repolist
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: dnf_configured
|
||||
check_mode: false
|
||||
|
||||
- name: "1.2.3 | AUDIT | Ensure package manager repositories are configured | Display repo list"
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
- "Warning!! Below are the configured repos. Please review and make sure all align with site policy"
|
||||
- "{{ dnf_configured.stdout_lines }}"
|
||||
|
||||
- name: "1.2.3 | AUDIT | Ensure package manager repositories are configured | Warn Count"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
vars:
|
||||
warn_control_id: '1.2.3'
|
||||
when:
|
||||
- rhel9cis_rule_1_2_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- audit
|
||||
- rule_1.2.3
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: "1.2.4 | AUDIT | Ensure repo_gpgcheck is globally activated"
|
||||
block:
|
||||
- name: "1.2.4 | PATCH | Ensure repo_gpgcheck is globally activated | dnf.conf"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dnf/dnf.conf
|
||||
regexp: '^repo_gpgcheck'
|
||||
line: repo_gpgcheck=1
|
||||
|
||||
- name: "1.2.4 | AUDIT| Ensure repo_gpgcheck is globally activated | get repo files"
|
||||
ansible.builtin.find:
|
||||
paths: /etc/yum.repos.d
|
||||
patterns: "*.repo"
|
||||
register: repo_files
|
||||
|
||||
- name: "1.2.4 | PATCH | Ensure repo_gpgcheck is globally activated | amend repo files"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ item.path }}"
|
||||
regexp: '^repo_gpgcheck( |)=( |)0'
|
||||
replace: repo_gpgcheck=1
|
||||
loop: "{{ repo_files.files }}"
|
||||
loop_control:
|
||||
label: "{{ item.path }}"
|
||||
|
||||
when:
|
||||
- rhel9cis_rule_1_2_4
|
||||
- rhel9cis_rule_enable_repogpg
|
||||
- not rhel9cis_rhel_default_repo
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- manual
|
||||
- audit
|
||||
- rule_1.2.4
|
||||
136
tasks/section_1/cis_1.3.1.x.yml
Normal file
136
tasks/section_1/cis_1.3.1.x.yml
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
---
|
||||
|
||||
- name: "1.3.1.1 | PATCH | Ensure SELinux is installed"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_1
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.3.1.1
|
||||
ansible.builtin.package:
|
||||
name: libselinux
|
||||
state: present
|
||||
|
||||
- name: "1.3.1.2 | PATCH | Ensure SELinux is not disabled in bootloader configuration"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_2
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.3.1.2
|
||||
ansible.builtin.replace:
|
||||
path: /etc/default/grub
|
||||
regexp: '{{ item }}'
|
||||
replace: ''
|
||||
loop:
|
||||
- selinux=0
|
||||
- enforcing=0
|
||||
register: selinux_grub_patch
|
||||
ignore_errors: true # noqa ignore-errors
|
||||
notify: Grub2cfg
|
||||
|
||||
# State set to enforcing because control 1.3.1.5 requires enforcing to be set
|
||||
- name: "1.3.1.3 | PATCH | Ensure SELinux policy is configured"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_3
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.3.1.3
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: "{{ rhel9cis_selinux_enforce }}"
|
||||
|
||||
- name: "1.3.1.4 | PATCH | Ensure the SELinux state is not disabled"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_4
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.3.1.4
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: "{{ rhel9cis_selinux_enforce }}"
|
||||
|
||||
- name: "1.3.1.5 | PATCH | Ensure the SELinux state is enforcing"
|
||||
when:
|
||||
- rhel9cis_selinux_enforce == 'enforcing'
|
||||
- rhel9cis_rule_1_3_1_5
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.3.1.5
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: enforcing
|
||||
|
||||
- name: "1.3.1.6 | AUDIT | Ensure no unconfined services exist"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_6
|
||||
- not rhel9cis_selinux_disable
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- services
|
||||
- rule_1.3.1.6
|
||||
vars:
|
||||
warn_control_id: '1.3.1.6'
|
||||
block:
|
||||
- name: "1.3.1.6 | AUDIT | Ensure no unconfined services exist | Find the unconfined services"
|
||||
ansible.builtin.shell: ps -eZ | grep unconfined_service_t | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'
|
||||
register: rhelcis_1_3_1_6_unconf_services
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
|
||||
- name: "1.3.1.6 | AUDIT | Ensure no unconfined services exist | Message on unconfined services"
|
||||
when: rhelcis_1_3_1_6_unconf_services.stdout | length > 0
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! You have unconfined services: {{ rhelcis_1_3_1_6_unconf_services.stdout_lines }}"
|
||||
|
||||
- name: "1.3.1.6 | AUDIT | Ensure no unconfined services exist | warning count"
|
||||
when: rhelcis_1_3_1_6_unconf_services.stdout | length > 0
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
|
||||
- name: "1.3.1.7 | PATCH | Ensure the MCS Translation Service (mcstrans) is not installed"
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_7
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.3.1.7
|
||||
ansible.builtin.package:
|
||||
name: mcstrans
|
||||
state: absent
|
||||
|
||||
- name: "1.3.1.8 | PATCH | Ensure SETroubleshoot is not installed"
|
||||
ansible.builtin.package:
|
||||
name: setroubleshoot
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1_8
|
||||
- "'setroubleshoot' in ansible_facts.packages"
|
||||
tags:
|
||||
- level1-server
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.3.1.8
|
||||
|
|
@ -1,44 +1,43 @@
|
|||
---
|
||||
|
||||
- name: "1.4.1 | PATCH | Ensure bootloader password is set"
|
||||
ansible.builtin.copy:
|
||||
dest: /boot/grub2/user.cfg
|
||||
content: "GRUB2_PASSWORD={{ rhel9cis_bootloader_password_hash }}" # noqa template-instead-of-copy
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0600'
|
||||
notify: Grub2cfg
|
||||
when:
|
||||
- rhel9cis_set_boot_pass
|
||||
- rhel9cis_rule_1_4_1
|
||||
- rhel9cis_set_boot_pass
|
||||
- rhel9cis_rule_1_4_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.4.1
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.4.1
|
||||
ansible.builtin.copy:
|
||||
dest: /boot/grub2/user.cfg
|
||||
content: "GRUB2_PASSWORD={{ rhel9cis_bootloader_password_hash }}" # noqa template-instead-of-copy
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0600'
|
||||
notify: Grub2cfg
|
||||
|
||||
- name: "1.4.2 | PATCH | Ensure permissions on bootloader config are configured"
|
||||
block:
|
||||
- name: "1.4.2 | PATCH | Ensure permissions on bootloader config are configured"
|
||||
ansible.builtin.file:
|
||||
path: "/boot/grub2/{{ item.path }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "{{ item.mode }}"
|
||||
state: touch
|
||||
modification_time: preserve
|
||||
access_time: preserve
|
||||
loop:
|
||||
- { path: 'grub.cfg', mode: '0700' }
|
||||
- { path: 'grubenv', mode: '0600' }
|
||||
- { path: 'user.cfg', mode: '0600' }
|
||||
|
||||
when:
|
||||
- rhel9cis_rule_1_4_2
|
||||
- rhel9cis_rule_1_4_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.4.2
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.4.2
|
||||
block:
|
||||
- name: "1.4.2 | PATCH | Ensure permissions on bootloader config are configured"
|
||||
ansible.builtin.file:
|
||||
path: "/boot/grub2/{{ item.path }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "{{ item.mode }}"
|
||||
state: touch
|
||||
modification_time: preserve
|
||||
access_time: preserve
|
||||
loop:
|
||||
- { path: 'grub.cfg', mode: '0700' }
|
||||
- { path: 'grubenv', mode: '0600' }
|
||||
- { path: 'user.cfg', mode: '0600' }
|
||||
|
|
|
|||
|
|
@ -1,48 +1,66 @@
|
|||
---
|
||||
|
||||
- name: "1.5.1 | PATCH | Ensure core dump storage is disabled"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/systemd/coredump.conf
|
||||
regexp: '^Storage\s*=\s*(?!none).*'
|
||||
line: 'Storage=none'
|
||||
notify: Systemd daemon reload
|
||||
- name: "1.5.1 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
when:
|
||||
- rhel9cis_rule_1_5_1
|
||||
- systemd_coredump.stat.exists
|
||||
- rhel9cis_rule_1_5_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.5.1
|
||||
|
||||
- name: "1.5.2 | PATCH | Ensure core dump backtraces are disabled"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/systemd/coredump.conf
|
||||
regexp: '^ProcessSizeMax\s*=\s*.*[1-9]$'
|
||||
line: 'ProcessSizeMax=0'
|
||||
when:
|
||||
- rhel9cis_rule_1_5_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- sysctl
|
||||
- rule_1.5.2
|
||||
|
||||
- name: "1.5.3 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- sysctl
|
||||
- rule_1.5.1
|
||||
block:
|
||||
- name: "1.5.3 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_sysctl_update: true
|
||||
- name: "1.5.1 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_sysctl_update: true
|
||||
|
||||
- name: "1.5.3 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
ansible.builtin.debug:
|
||||
msg: "Control being set via Handler 'update sysctl' which writes to /etc/sysctl.d/60-kernel_sysctl.conf"
|
||||
- name: "1.5.1 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
ansible.builtin.debug:
|
||||
msg: "Control being set via Handler 'update sysctl' which writes to /etc/sysctl.d/60-kernel_sysctl.conf"
|
||||
|
||||
- name: "1.5.2 | PATCH | Ensure ptrace_scope is restricted"
|
||||
when:
|
||||
- rhel9cis_rule_1_5_3
|
||||
- rhel9cis_rule_1_5_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- sysctl
|
||||
- rule_1.5.3
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- sysctl
|
||||
- rule_1.5.2
|
||||
block:
|
||||
- name: "1.5.2 | PATCH | Ensure ptrace_scope is restricted"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_sysctl_update: true
|
||||
|
||||
- name: "1.5.2 | PATCH | Ensure ptrace_scope is restricted"
|
||||
ansible.builtin.debug:
|
||||
msg: "Control being set via Handler 'update sysctl' which writes to /etc/sysctl.d/60-kernel_sysctl.conf"
|
||||
|
||||
- name: "1.5.3 | PATCH | Ensure core dump backtraces are disabled"
|
||||
when:
|
||||
- rhel9cis_rule_1_5_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- sysctl
|
||||
- rule_1.5.3
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/systemd/coredump.conf
|
||||
regexp: '^ProcessSizeMax\s*=\s*.*[1-9]$'
|
||||
line: 'ProcessSizeMax=0'
|
||||
|
||||
- name: "1.5.4 | PATCH | Ensure core dump storage is disabled"
|
||||
when:
|
||||
- rhel9cis_rule_1_5_4
|
||||
- systemd_coredump.stat.exists
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.5.4
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/systemd/coredump.conf
|
||||
regexp: '^Storage\s*=\s*(?!none).*'
|
||||
line: 'Storage=none'
|
||||
notify: Systemd daemon reload
|
||||
|
|
|
|||
|
|
@ -1,130 +0,0 @@
|
|||
---
|
||||
|
||||
- name: "1.6.1.1 | PATCH | Ensure SELinux is installed"
|
||||
ansible.builtin.package:
|
||||
name: libselinux
|
||||
state: present
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.6.1.1
|
||||
|
||||
- name: "1.6.1.2 | PATCH | Ensure SELinux is not disabled in bootloader configuration"
|
||||
ansible.builtin.replace:
|
||||
path: /etc/default/grub
|
||||
regexp: '{{ item }}'
|
||||
replace: ''
|
||||
loop:
|
||||
- selinux=0
|
||||
- enforcing=0
|
||||
register: selinux_grub_patch
|
||||
ignore_errors: true # noqa ignore-errors
|
||||
notify: Grub2cfg
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.6.1.2
|
||||
|
||||
# State set to enforcing because control 1.6.1.5 requires enforcing to be set
|
||||
- name: "1.6.1.3 | PATCH | Ensure SELinux policy is configured"
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: "{{ rhel9cis_selinux_enforce }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.6.1.3
|
||||
|
||||
- name: "1.6.1.4 | PATCH | Ensure the SELinux state is not disabled"
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: "{{ rhel9cis_selinux_enforce }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.6.1.4
|
||||
|
||||
- name: "1.6.1.5 | PATCH | Ensure the SELinux state is enforcing"
|
||||
ansible.posix.selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: enforcing
|
||||
when:
|
||||
- rhel9cis_selinux_enforce == 'enforcing'
|
||||
- rhel9cis_rule_1_6_1_5
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.6.1.5
|
||||
|
||||
- name: "1.6.1.6 | AUDIT | Ensure no unconfined services exist"
|
||||
block:
|
||||
- name: "1.6.1.6 | AUDIT | Ensure no unconfined services exist | Find the unconfined services"
|
||||
ansible.builtin.shell: ps -eZ | grep unconfined_service_t | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'
|
||||
register: rhelcis_1_6_1_6_unconf_services
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
|
||||
- name: "1.6.1.6 | AUDIT | Ensure no unconfined services exist | Message on unconfined services"
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning!! You have unconfined services: {{ rhelcis_1_6_1_6_unconf_services.stdout_lines }}"
|
||||
when: rhelcis_1_6_1_6_unconf_services.stdout | length > 0
|
||||
|
||||
- name: "1.6.1.6 | AUDIT | Ensure no unconfined services exist | warning count"
|
||||
ansible.builtin.import_tasks:
|
||||
file: warning_facts.yml
|
||||
when: rhelcis_1_6_1_6_unconf_services.stdout | length > 0
|
||||
vars:
|
||||
warn_control_id: '1.6.1.6'
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_6
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- audit
|
||||
- services
|
||||
- rule_1.6.1.6
|
||||
|
||||
- name: "1.6.1.7 | PATCH | Ensure SETroubleshoot is not installed"
|
||||
ansible.builtin.package:
|
||||
name: setroubleshoot
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_7
|
||||
- "'setroubleshoot' in ansible_facts.packages"
|
||||
tags:
|
||||
- level1-server
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.6.1.7
|
||||
|
||||
- name: "1.6.1.8 | PATCH | Ensure the MCS Translation Service (mcstrans) is not installed"
|
||||
ansible.builtin.package:
|
||||
name: mcstrans
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1_8
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.6.1.8
|
||||
163
tasks/section_1/cis_1.6.x.yml
Normal file
163
tasks/section_1/cis_1.6.x.yml
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
---
|
||||
|
||||
- name: "1.6.1 | AUDIT | Ensure system-wide crypto policy is not legacy"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.1
|
||||
ansible.builtin.debug:
|
||||
msg: "Captured in prelim to ensure not LEGACY. Runs handler to update"
|
||||
changed_when: true
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.2 | PATCH | Ensure system wide crypto policy is not set in sshd configuration"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.2
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/sysconfig/sshd
|
||||
regexp: ^CRYPTO_POLICY\s*=
|
||||
state: absent
|
||||
notify: Restart sshd
|
||||
|
||||
- name: "1.6.3 | PATCH | Ensure system wide crypto policy disables sha1 hash and signature support"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_3
|
||||
- "'NO-SHA1' not in rhel9cis_crypto_policy_module"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.3
|
||||
block:
|
||||
- name: "1.6.3 | PATCH | Ensure system wide crypto policy disables sha1 hash and signature support | Add submodule exclusion"
|
||||
ansible.builtin.template:
|
||||
src: etc/crypto-policies/policies/modules/NO-SHA1.pmod.j2
|
||||
dest: /etc/crypto-policies/policies/modules/NO-SHA1.pmod
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0640'
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.3 | PATCH | Ensure system wide crypto policy disables sha1 hash and signature support | submodule to crypto policy modules"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_crypto_policy_module: "{{ rhel9cis_crypto_policy_module + ':NO-SHA1' }}"
|
||||
|
||||
- name: "1.6.4 | PATCH | Ensure system wide crypto policy disables macs less than 128 bits"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_4
|
||||
- "'NO-WEAKMAC' not in rhel9cis_crypto_policy_module"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.4
|
||||
block:
|
||||
- name: "1.6.4 | PATCH | Ensure system wide crypto policy disables macs less than 128 bits | Add submodule exclusion"
|
||||
ansible.builtin.template:
|
||||
src: etc/crypto-policies/policies/modules/NO-WEAKMAC.pmod.j2
|
||||
dest: /etc/crypto-policies/policies/modules/NO-WEAKMAC.pmod
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0640'
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.4 | PATCH | Ensure system wide crypto policy disables macs less than 128 bits | submodule to crypto policy modules"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_crypto_policy_module: "{{ rhel9cis_crypto_policy_module + ':NO-WEAKMAC' }}"
|
||||
|
||||
|
||||
- name: "1.6.5 | PATCH | Ensure system wide crypto policy disables cbc for ssh"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_5
|
||||
- "'NO-SSHCBC' not in rhel9cis_crypto_policy_module"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.5
|
||||
block:
|
||||
- name: "1.6.5 | PATCH | Ensure system wide crypto policy disables cbc for ssh | Add submodule exclusion"
|
||||
ansible.builtin.template:
|
||||
src: etc/crypto-policies/policies/modules/NO-SSHCBC.pmod.j2
|
||||
dest: /etc/crypto-policies/policies/modules/NO-SSHCBC.pmod
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0640'
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.5 | PATCH | Ensure system wide crypto policy disables cbc for ssh | submodule to crypto policy modules"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_crypto_policy_module: "{{ rhel9cis_crypto_policy_module + ':NO-SSHCBC' }}"
|
||||
|
||||
- name: "1.6.6 | PATCH | Ensure system wide crypto policy disables chacha20-poly1305 for ssh"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_6
|
||||
- "'NO-SSHCHACHA20' not in rhel9cis_crypto_policy_module"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.6
|
||||
block:
|
||||
- name: "1.6.6 | PATCH | Ensure system wide crypto policy disables chacha20-poly1305 for ssh | Add submodule exclusion"
|
||||
ansible.builtin.template:
|
||||
src: etc/crypto-policies/policies/modules/NO-SSHCHACHA20.pmod.j2
|
||||
dest: /etc/crypto-policies/policies/modules/NO-SSHCHACHA20.pmod
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0640'
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.6 | PATCH | Ensure system wide crypto policy disables chacha20-poly1305 for ssh | submodule to crypto policy modules"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_crypto_policy_module: "{{ rhel9cis_crypto_policy_module + ':NO-SSHCHACHA20' }}"
|
||||
|
||||
- name: "1.6.7 | PATCH | Ensure system wide crypto policy disables EtM for ssh"
|
||||
when:
|
||||
- rhel9cis_rule_1_6_7
|
||||
- "'NO-SSHETM' not in rhel9cis_crypto_policy_module"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- automated
|
||||
- patch
|
||||
- rule_1.6.7
|
||||
block:
|
||||
- name: "1.6.7 | PATCH | Ensure system wide crypto policy disables EtM for ssh | Add submodule exclusion"
|
||||
ansible.builtin.template:
|
||||
src: etc/crypto-policies/policies/modules/NO-SSHETM.pmod.j2
|
||||
dest: /etc/crypto-policies/policies/modules/NO-SSHETM.pmod
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0640'
|
||||
notify:
|
||||
- Update Crypto Policy
|
||||
- Set Crypto Policy
|
||||
|
||||
- name: "1.6.7 | PATCH | Ensure system wide crypto policy disables EtM for ssh | submodule to crypto policy modules"
|
||||
ansible.builtin.set_fact:
|
||||
rhel9cis_crypto_policy_module: "{{ rhel9cis_crypto_policy_module + ':NO-SSHETM' }}"
|
||||
|
|
@ -1,93 +1,93 @@
|
|||
---
|
||||
|
||||
- name: "1.7.1 | PATCH | Ensure message of the day is configured properly"
|
||||
ansible.builtin.template:
|
||||
src: etc/motd.j2
|
||||
dest: /etc/motd
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1
|
||||
- rhel9cis_rule_1_7_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.7.1
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.7.1
|
||||
ansible.builtin.template:
|
||||
src: etc/motd.j2
|
||||
dest: /etc/motd
|
||||
owner: root
|
||||
group: root
|
||||
mode: u-x,go-wx
|
||||
|
||||
- name: "1.7.2 | PATCH | Ensure local login warning banner is configured properly"
|
||||
ansible.builtin.template:
|
||||
src: etc/issue.j2
|
||||
dest: /etc/issue
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_2
|
||||
- rhel9cis_rule_1_7_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.7.2
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.7.2
|
||||
ansible.builtin.template:
|
||||
src: etc/issue.j2
|
||||
dest: /etc/issue
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: "1.7.3 | PATCH | Ensure remote login warning banner is configured properly"
|
||||
ansible.builtin.template:
|
||||
src: etc/issue.net.j2
|
||||
dest: /etc/issue.net
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_3
|
||||
- rhel9cis_rule_1_7_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.7.3
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.7.3
|
||||
ansible.builtin.template:
|
||||
src: etc/issue.net.j2
|
||||
dest: /etc/issue.net
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: "1.7.4 | PATCH | Ensure permissions on /etc/motd are configured"
|
||||
ansible.builtin.file:
|
||||
path: /etc/motd
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_4
|
||||
- rhel9cis_rule_1_7_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.4
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.4
|
||||
ansible.builtin.file:
|
||||
path: /etc/motd
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: "1.7.5 | PATCH | Ensure permissions on /etc/issue are configured"
|
||||
ansible.builtin.file:
|
||||
path: /etc/issue
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_5
|
||||
- rhel9cis_rule_1_7_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.5
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.5
|
||||
ansible.builtin.file:
|
||||
path: /etc/issue
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: "1.7.6 | PATCH | Ensure permissions on /etc/issue.net are configured"
|
||||
ansible.builtin.file:
|
||||
path: /etc/issue.net
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when:
|
||||
- rhel9cis_rule_1_7_6
|
||||
- rhel9cis_rule_1_7_6
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.6
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.7.6
|
||||
ansible.builtin.file:
|
||||
path: /etc/issue.net
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
|
|
|||
|
|
@ -1,264 +1,265 @@
|
|||
---
|
||||
|
||||
- name: "1.8.1 | PATCH | Ensure GNOME Display Manager is removed"
|
||||
ansible.builtin.package:
|
||||
name: gdm
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1
|
||||
- "'gdm' in ansible_facts.packages"
|
||||
- not rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_1
|
||||
- "'gdm' in ansible_facts.packages"
|
||||
- not rhel9cis_gui
|
||||
tags:
|
||||
- level2-server
|
||||
- patch
|
||||
- gui
|
||||
- gdm
|
||||
- rule_1.8.1
|
||||
- level2-server
|
||||
- patch
|
||||
- gui
|
||||
- gdm
|
||||
- rule_1.8.1
|
||||
ansible.builtin.package:
|
||||
name: gdm
|
||||
state: absent
|
||||
|
||||
- name: "1.8.2 | PATCH | Ensure GDM login banner is configured"
|
||||
block:
|
||||
- name: "1.8.2 | PATCH | Ensure GDM login banner is configured | gdm profile"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dconf/profile/gdm
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
loop:
|
||||
- { regexp: 'user-db', line: 'user-db:user' }
|
||||
- { regexp: 'system-db', line: 'system-db:gdm' }
|
||||
- { regexp: 'file-db', line: 'file-db:/usr/share/gdm/greeter-dconf-defaults' }
|
||||
|
||||
- name: "1.8.2 | PATCH | Ensure GDM login banner is configured | gdm profile"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/gdm.d/01-banner-message.j2
|
||||
dest: /etc/dconf/db/gdm.d/01-banner-message
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_2
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_2
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- gdm
|
||||
- rule_1.8.2
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- gdm
|
||||
- rule_1.8.2
|
||||
block:
|
||||
- name: "1.8.2 | PATCH | Ensure GDM login banner is configured | gdm profile"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dconf/profile/gdm
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
loop:
|
||||
- { regexp: 'user-db', line: 'user-db:user' }
|
||||
- { regexp: 'system-db', line: 'system-db:gdm' }
|
||||
- { regexp: 'file-db', line: 'file-db:/usr/share/gdm/greeter-dconf-defaults' }
|
||||
|
||||
- name: "1.8.2 | PATCH | Ensure GDM login banner is configured | gdm profile"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/gdm.d/01-banner-message.j2
|
||||
dest: /etc/dconf/db/gdm.d/01-banner-message
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
|
||||
- name: "1.8.3 | PATCH | Ensure GDM disable-user-list option is enabled"
|
||||
when:
|
||||
- rhel9cis_rule_1_8_3
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.3
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ item.file }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
path: "{{ item.file }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
loop:
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'user-db', line: 'user-db:user' }
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'system-db', line: 'system-db:gdm' }
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'file-db', line: 'file-db:/usr/share/gdm/greeter-dconf-defaults'}
|
||||
- { file: '/etc/dconf/db/gdm.d/00-login-screen', regexp: '\[org\/gnome\/login-screen\]', line: '[org/gnome/login-screen]' }
|
||||
- { file: '/etc/dconf/db/gdm.d/00-login-screen', regexp: 'disable-user-list=', line: 'disable-user-list=true' }
|
||||
when:
|
||||
- rhel9cis_rule_1_8_3
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.3
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'user-db', line: 'user-db:user' }
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'system-db', line: 'system-db:gdm' }
|
||||
- { file: '/etc/dconf/profile/gdm', regexp: 'file-db', line: 'file-db:/usr/share/gdm/greeter-dconf-defaults'}
|
||||
- { file: '/etc/dconf/db/gdm.d/00-login-screen', regexp: '\[org\/gnome\/login-screen\]', line: '[org/gnome/login-screen]' }
|
||||
- { file: '/etc/dconf/db/gdm.d/00-login-screen', regexp: 'disable-user-list=', line: 'disable-user-list=true' }
|
||||
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle"
|
||||
block:
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | User profile"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dconf/profile/user
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
loop:
|
||||
- { regexp: '^user-db', line: 'user-db:user' }
|
||||
- { regexp: '^system-db', line: 'system-db:local' }
|
||||
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | Make db directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | Make conf file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-screensaver.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-screensaver"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_4
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_4
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.4
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.4
|
||||
block:
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | User profile"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/dconf/profile/user
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
create: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
loop:
|
||||
- { regexp: '^user-db', line: 'user-db:user' }
|
||||
- { regexp: '^system-db', line: 'system-db:local' }
|
||||
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | Make db directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.4 | PATCH | Ensure GDM screen locks when the user is idle | Make conf file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-screensaver.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-screensaver"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.5 | PATCH | Ensure GDM screen locks cannot be overridden"
|
||||
block:
|
||||
- name: "1.8.5 | PATCH | Ensure GDM screen locks cannot be overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.5 | PATCH | Ensure GDM screen locks cannot be overridden | Make lock file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-screensaver_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-screensaver"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_5
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_5
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.5
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.5
|
||||
block:
|
||||
- name: "1.8.5 | PATCH | Ensure GDM screen locks cannot be overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.5 | PATCH | Ensure GDM screen locks cannot be overridden | Make lock file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-screensaver_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-screensaver"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.6 | PATCH | Ensure GDM automatic mounting of removable media is disabled"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-media-automount.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-media-automount"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_6
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_6
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.6
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.6
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-media-automount.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-media-automount"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.7 | PATCH | Ensure GDM disabling automatic mounting of removable media is not overridden"
|
||||
block:
|
||||
- name: "1.8.7 | PATCH | Ensure GDM disabling automatic mounting of removable media is not overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.7 | PATCH | Ensure GDM disabling automatic mounting of removable media is not overridden | Make lock file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-automount_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-automount_lock"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_7
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_7
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.7
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.7
|
||||
block:
|
||||
- name: "1.8.7 | PATCH | Ensure GDM disabling automatic mounting of removable media is not overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.7 | PATCH | Ensure GDM disabling automatic mounting of removable media is not overridden | Make lock file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-automount_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-automount_lock"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.8 | PATCH | Ensure GDM autorun-never is enabled"
|
||||
block:
|
||||
- name: "1.8.8 | PATCH | Ensure GDM autorun-never is enabled | Make directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.8 | PATCH | Ensure GDM autorun-never is enabled | Make conf file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-media-autorun.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-media-autorun"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_8
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_8
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.8
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.8
|
||||
block:
|
||||
- name: "1.8.8 | PATCH | Ensure GDM autorun-never is enabled | Make directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.8 | PATCH | Ensure GDM autorun-never is enabled | Make conf file"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-media-autorun.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/00-media-autorun"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.9 | PATCH | Ensure GDM autorun-never is not overridden"
|
||||
block:
|
||||
- name: "1.8.9 | PATCH | Ensure GDM autorun-never is not overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.9 | PATCH | Ensure GDM autorun-never is not overridden | Make lockfile"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-autorun_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-autorun_lock"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
when:
|
||||
- rhel9cis_rule_1_8_9
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_9
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.9
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.9
|
||||
block:
|
||||
- name: "1.8.9 | PATCH | Ensure GDM autorun-never is not overridden | Make lock directory"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
state: directory
|
||||
|
||||
- name: "1.8.9 | PATCH | Ensure GDM autorun-never is not overridden | Make lockfile"
|
||||
ansible.builtin.template:
|
||||
src: etc/dconf/db/00-autorun_lock.j2
|
||||
dest: "/etc/dconf/db/{{ rhel9cis_dconf_db_name }}.d/locks/00-autorun_lock"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Reload dconf
|
||||
|
||||
- name: "1.8.10 | PATCH | Ensure XDMCP is not enabled"
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/gdm/custom.conf
|
||||
regexp: 'Enable=true'
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_8_10
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_10
|
||||
- rhel9cis_gui
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.10
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- gui
|
||||
- rule_1.8.10
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/gdm/custom.conf
|
||||
regexp: 'Enable=true'
|
||||
state: absent
|
||||
|
|
|
|||
|
|
@ -2,76 +2,64 @@
|
|||
|
||||
- name: "SECTION | 1.1.1.x | Disable unused filesystems"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.1.x.yml
|
||||
file: cis_1.1.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.2.x | Configure /tmp"
|
||||
- name: "SECTION | 1.1.2.1.x | Configure /tmp"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.2.x.yml
|
||||
file: cis_1.1.2.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.3.x | Configure /var"
|
||||
- name: "SECTION | 1.1.2.2.x | Configure /dev/shm"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.3.x.yml
|
||||
file: cis_1.1.2.2.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.4.x | Configure /var/tmp"
|
||||
- name: "SECTION | 1.1.2.3.x | Configure /home"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.4.x.yml
|
||||
file: cis_1.1.2.3.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.5.x | Configure /var/log"
|
||||
- name: "SECTION | 1.1.2.4.x | Configure /var"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.5.x.yml
|
||||
file: cis_1.1.2.4.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.6.x | Configure /var/log/audit"
|
||||
- name: "SECTION | 1.1.2.5.x | Configure /var/tmp"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.6.x.yml
|
||||
file: cis_1.1.2.5.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.7.x | Configure /home"
|
||||
- name: "SECTION | 1.1.2.6.x | Configure /var/log"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.7.x.yml
|
||||
file: cis_1.1.2.6.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.8.x | Configure /dev/shm"
|
||||
- name: "SECTION | 1.1.2.7.x | Configure /var/log/audit"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.8.x.yml
|
||||
file: cis_1.1.2.7.x.yml
|
||||
|
||||
- name: "SECTION | 1.1.x | Disable various mounting"
|
||||
- name: "SECTION | 1.2.1.x | Configure Package Repositories"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.1.x.yml
|
||||
file: cis_1.2.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.2 | Configure Software Updates"
|
||||
- name: "SECTION | 1.2.2.x | Configure Package Updates"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.2.x.yml
|
||||
file: cis_1.2.2.x.yml
|
||||
|
||||
- name: "SECTION | 1.3 | Filesystem Integrity Checking"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.3.x.yml
|
||||
when: rhel9cis_config_aide
|
||||
- name: "SECTION | 1.3.1 | Configure SELinux"
|
||||
ansible.builtin.include_tasks:
|
||||
file: cis_1.3.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.4 | Secure Boot Settings"
|
||||
- name: "SECTION | 1.4 | Configure Bootloader"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.4.x.yml
|
||||
file: cis_1.4.x.yml
|
||||
|
||||
- name: "SECTION | 1.5 | Additional Process Hardening"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.5.x.yml
|
||||
file: cis_1.5.x.yml
|
||||
|
||||
- name: "SECTION | 1.6 | Mandatory Access Control"
|
||||
ansible.builtin.include_tasks:
|
||||
file: cis_1.6.1.x.yml
|
||||
when: not rhel9cis_selinux_disable
|
||||
- name: "SECTION | 1.6 | Configure system wide crypto policy"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.6.x.yml
|
||||
|
||||
- name: "SECTION | 1.7 | Command Line Warning Banners"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.7.x.yml
|
||||
file: cis_1.7.x.yml
|
||||
|
||||
- name: "SECTION | 1.8 | Gnome Display Manager"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.8.x.yml
|
||||
|
||||
- name: "SECTION | 1.9 | Updates and Patches"
|
||||
ansible.builtin.import_tasks:
|
||||
file: cis_1.9.yml
|
||||
|
||||
- name: "SECTION | 1.10 | Crypto policies"
|
||||
ansible.builtin.include_tasks:
|
||||
file: cis_1.10.yml
|
||||
when:
|
||||
- not system_is_ec2
|
||||
file: cis_1.8.x.yml
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue