forked from ansible-lockdown/RHEL9-CIS
Initial
Signed-off-by: Mark Bolwell <mark.bollyuk@gmail.com>
This commit is contained in:
commit
a54b5216eb
87 changed files with 7693 additions and 0 deletions
102
tasks/section_1/cis_1.1.1.x.yml
Normal file
102
tasks/section_1/cis_1.1.1.x.yml
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
|
||||
- name: "1.1.1.1 | L1 | PATCH | Ensure mounting of cramfs filesystems is disabled"
|
||||
block:
|
||||
- name: "1.1.1.1 | L1 | PATCH | Ensure mounting of cramfs filesystems is disabled | Edit modprobe config"
|
||||
lineinfile:
|
||||
dest: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install cramfs(\\s|$)"
|
||||
line: "install cramfs /bin/true"
|
||||
create: yes
|
||||
mode: 0600
|
||||
|
||||
- name: "1.1.1.1 | L1 | PATCH | Ensure mounting of cramfs filesystems is disabled | Disable cramfs"
|
||||
modprobe:
|
||||
name: cramfs
|
||||
state: absent
|
||||
when: ansible_connection != 'docker'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.1.1.1
|
||||
- cramfs
|
||||
|
||||
- name: "1.1.1.2 | L2 | PATCH | Ensure mounting of vFAT filesystems is limited"
|
||||
block:
|
||||
- name: "1.1.1.2 | L2 | PATCH | Ensure mounting of vFAT filesystems is limited | Edit modprobe config"
|
||||
lineinfile:
|
||||
dest: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install vfat(\\s|$)"
|
||||
line: "install vfat /bin/true"
|
||||
create: yes
|
||||
mode: 0600
|
||||
|
||||
- name: "1.1.1.2 | L2 | PATCH | Ensure mounting of vFAT filesystems is limited | Disable vFAT"
|
||||
modprobe:
|
||||
name: vfat
|
||||
state: absent
|
||||
when: ansible_connection != 'docker'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_2
|
||||
- rhel9cis_legacy_boot
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.1.1.2
|
||||
- vfat
|
||||
|
||||
- name: "1.1.1.3 | L1 | PATCH | Ensure mounting of squashfs filesystems is disabled"
|
||||
block:
|
||||
- name: "1.1.1.3 | L1 | PATCH | Ensure mounting of squashfs filesystems is disabled | Edit modprobe config"
|
||||
lineinfile:
|
||||
dest: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install squashfs(\\s|$)"
|
||||
line: "install squashfs /bin/true"
|
||||
create: yes
|
||||
mode: 0600
|
||||
|
||||
- name: "1.1.1.3 | L1 | PATCH | Ensure mounting of squashfs filesystems is disabled | Disable squashfs"
|
||||
modprobe:
|
||||
name: squashfs
|
||||
state: absent
|
||||
when: ansible_connection != 'docker'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.1.1.3
|
||||
- squashfs
|
||||
|
||||
- name: "1.1.1.4 | L1 | PATCH | Ensure mounting of udf filesystems is disabled"
|
||||
block:
|
||||
- name: "1.1.1.4 | L1 | PATCH | Ensure mounting of udf filesystems is disable | Edit modprobe config"
|
||||
lineinfile:
|
||||
dest: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install udf(\\s|$)"
|
||||
line: "install udf /bin/true"
|
||||
create: yes
|
||||
mode: 0600
|
||||
|
||||
- name: "1.1.1.4 | L1 | PATCH | Ensure mounting of udf filesystems is disable | Disable udf"
|
||||
modprobe:
|
||||
name: udf
|
||||
state: absent
|
||||
when: ansible_connection != 'docker'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.1.1.4
|
||||
- udf
|
||||
363
tasks/section_1/cis_1.1.x.yml
Normal file
363
tasks/section_1/cis_1.1.x.yml
Normal file
|
|
@ -0,0 +1,363 @@
|
|||
---
|
||||
|
||||
- name: |
|
||||
"SCORED | 1.1.2 | PATCH | Ensure /tmp is configured"
|
||||
"SCORED | 1.1.3 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"SCORED | 1.1.4 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
"SCORED | 1.1.5 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
"via fstab"
|
||||
mount:
|
||||
name: /tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_3 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_4 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_5 %}nosuid{% endif %}
|
||||
notify: remount tmp
|
||||
loop: "{{ ansible_mounts }}"
|
||||
when:
|
||||
- item.mount == "/tmp"
|
||||
- not rhel9cis_tmp_svc
|
||||
- rhel9cis_rule_1_1_2 or
|
||||
rhel9cis_rule_1_1_3 or
|
||||
rhel9cis_rule_1_1_4 or
|
||||
rhel9cis_rule_1_1_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.3
|
||||
- rule_1.1.4
|
||||
- rule_1.1.5
|
||||
|
||||
- name: |
|
||||
"SCORED | 1.1.2 | PATCH | Ensure /tmp is configured"
|
||||
"SCORED | 1.1.3 | PATCH | Ensure nodev option set on /tmp partition"
|
||||
"SCORED | 1.1.4 | PATCH | Ensure nosuid option set on /tmp partition"
|
||||
"SCORED | 1.1.5 | PATCH | Ensure noexec option set on /tmp partition"
|
||||
"via systemd"
|
||||
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 or
|
||||
rhel9cis_rule_1_1_3 or
|
||||
rhel9cis_rule_1_1_4 or
|
||||
rhel9cis_rule_1_1_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.3
|
||||
- rule_1.1.4
|
||||
- rule_1.1.5
|
||||
|
||||
- name: "1.1.6 | L2 | AUDIT | Ensure separate partition exists for /var"
|
||||
block:
|
||||
- name: "1.1.6 | L2 | AUDIT | Ensure separate partition exists for /var | Absent"
|
||||
debug:
|
||||
msg: "Warning! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
register: var_mount_absent
|
||||
changed_when: var_mount_absent.skipped is undefined
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- name: "1.1.6 | L2 | AUDIT | Ensure separate partition exists for /var | Present"
|
||||
debug:
|
||||
msg: "Congratulations: {{ required_mount }} exists."
|
||||
when:
|
||||
- required_mount in mount_names
|
||||
vars:
|
||||
required_mount: '/var'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_6
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.6
|
||||
|
||||
- name: "1.1.7 | L2 | AUDIT | Ensure separate partition exists for /var/tmp | skips if mount absent"
|
||||
block:
|
||||
- name: "1.1.7 | L2 | AUDIT | Ensure separate partition exists for /var/tmp | Absent"
|
||||
debug:
|
||||
msg: "Warning! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
register: var_tmp_mount_absent
|
||||
changed_when: var_tmp_mount_absent.skipped is undefined
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- name: "1.1.7 | L2 | AUDIT | Ensure separate partition exists for /var/tmp | Present"
|
||||
debug:
|
||||
msg: "Congratulations: {{ required_mount }} exists."
|
||||
register: var_tmp_mount_present
|
||||
when:
|
||||
- required_mount in mount_names
|
||||
vars:
|
||||
required_mount: '/var/tmp'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_7
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.7
|
||||
|
||||
- name: |
|
||||
"1.1.8 | L1 | PATCH | Ensure nodev option set on /var/tmp partition | skips if mount absent"
|
||||
"1.1.9 | L1 | PATCH | Ensure nosuid option set on /var/tmp partition | skips if mount absent"
|
||||
"1.1.10 | L1 | PATCH | Ensure noexec option set on /var/tmp partition | skips if mount absent"
|
||||
mount:
|
||||
name: /var/tmp
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_10 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_8 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_9 %}nosuid{% endif %}
|
||||
loop: "{{ ansible_mounts }}"
|
||||
when:
|
||||
- var_tmp_mount_present is defined
|
||||
- item.mount == "/var/tmp"
|
||||
- rhel9cis_rule_1_1_7 # This is required so the check takes place
|
||||
- rhel9cis_rule_1_1_8 or
|
||||
rhel9cis_rule_1_1_9 or
|
||||
rhel9cis_rule_1_1_10
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: "1.1.11 | L2 | AUDIT | Ensure separate partition exists for /var/log"
|
||||
block:
|
||||
- name: "1.1.11 | L2 | AUDIT | Ensure separate partition exists for /var/log | Absent"
|
||||
debug:
|
||||
msg: "Warning! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
register: var_log_mount_absent
|
||||
changed_when: var_log_mount_absent.skipped is undefined
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- name: "1.1.11 | L2 | AUDIT | Ensure separate partition exists for /var/log | Present"
|
||||
debug:
|
||||
msg: "Congratulations: {{ required_mount }} exists."
|
||||
when:
|
||||
- required_mount in mount_names
|
||||
vars:
|
||||
required_mount: '/var/log'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_11
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.11
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: "1.1.12 | L2 | AUDIT | Ensure separate partition exists for /var/log/audit"
|
||||
block:
|
||||
- name: "1.1.12 | L2 | AUDIT | Ensure separate partition exists for /var/log/audit | Absent"
|
||||
debug:
|
||||
msg: "Warning! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
register: var_log_audit_mount_absent
|
||||
changed_when: var_log_audit_mount_absent.skipped is undefined
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- name: "1.1.12 | L2 | AUDIT | Ensure separate partition exists for /var/log/audit | Present"
|
||||
debug:
|
||||
msg: "Congratulations: {{ required_mount }} exists."
|
||||
when:
|
||||
- required_mount in mount_names
|
||||
vars:
|
||||
required_mount: '/var/log/audit'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_12
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.12
|
||||
|
||||
|
||||
- name: "1.1.13 | L2 | AUDIT | Ensure separate partition exists for /home"
|
||||
block:
|
||||
- name: "1.1.13 | L2 | AUDIT | Ensure separate partition exists for /home | Absent"
|
||||
debug:
|
||||
msg: "Warning! {{ required_mount }} doesn't exist. This is a manual task"
|
||||
register: home_mount_absent
|
||||
changed_when: home_mount_absent.skipped is undefined
|
||||
when:
|
||||
- required_mount not in mount_names
|
||||
- name: "1.1.13 | L2 | AUDIT | Ensure separate partition exists for /home | Present"
|
||||
debug:
|
||||
msg: "Congratulations: {{ required_mount }} exists."
|
||||
register: home_mount_present
|
||||
when:
|
||||
- required_mount in mount_names
|
||||
vars:
|
||||
required_mount: '/home'
|
||||
when:
|
||||
- rhel9cis_rule_1_1_13
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.13
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: "1.1.14 | L1 | PATCH | Ensure nodev option set on /home partition | skips if mount absent"
|
||||
mount:
|
||||
name: /home
|
||||
src: "{{ item.device }}"
|
||||
fstype: "{{ item.fstype }}"
|
||||
state: present
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_14 %}nodev{% endif %}
|
||||
loop: "{{ ansible_mounts }}"
|
||||
when:
|
||||
- home_mount_present is defined
|
||||
- item.mount == "/home"
|
||||
- rhel9cis_rule_1_1_14
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.13
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: |
|
||||
"1.1.15 | L1 | PATCH | Ensure nodev option set on /dev/shm partition | skips if mount absent
|
||||
1.1.16 | L1 | PATCH | Ensure nosuid option set on /dev/shm partition | skips if mount absent
|
||||
1.1.17 | L1 | PATCH | Ensure noexec option set on /dev/shm partition | skips if mount absent"
|
||||
block:
|
||||
- name: |
|
||||
"1.1.15 | L1 | AUDIT | Ensure nodev option set on /dev/shm partition | Check for /dev/shm existence
|
||||
1.1.16 | L1 | AUDIT | Ensure nosuid option set on /dev/shm partition | Check for /dev/shm existence
|
||||
1.1.17 | L1 | AUDIT | Ensure noexec option set on /dev/shm partition | Check for /dev/shm existence"
|
||||
shell: mount -l | grep -E '\s/dev/shm\s'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
check_mode: no
|
||||
register: rhel9cis_1_1_15_dev_shm_status
|
||||
|
||||
- name: |
|
||||
"1.1.15 | L1 | PATCH | Ensure nodev option set on /dev/shm partition | skips if mount absent
|
||||
1.1.16 | L1 | PATCH | Ensure nosuid option set on /dev/shm partition | skips if mount absent
|
||||
1.1.17 | L1 | PATCH | Ensure noexec option set on /dev/shm partition | skips if mount absent"
|
||||
mount:
|
||||
name: /dev/shm
|
||||
src: tmpfs
|
||||
fstype: tmpfs
|
||||
state: mounted
|
||||
opts: defaults,{% if rhel9cis_rule_1_1_17 %}noexec,{% endif %}{% if rhel9cis_rule_1_1_15 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_16 %}nosuid{% endif %}
|
||||
when: "'dev/shm' in rhel9cis_1_1_15_dev_shm_status.stdout"
|
||||
when:
|
||||
- rhel9cis_rule_1_1_15 or
|
||||
rhel9cis_rule_1_1_16 or
|
||||
rhel9cis_rule_1_1_17
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- mounts
|
||||
- rule_1.1.15
|
||||
- rule_1.1.16
|
||||
- rule_1.1.17
|
||||
|
||||
- name: |
|
||||
"1.1.18 | L1 | PATCH | Ensure nodev option set on removable media partitions"
|
||||
"1.1.19 | L1 | PATCH | Ensure nosuid option set on removable media partitions"
|
||||
"1.1.20 | L1 | PATCH | Ensure noexec option set on removable media partitions"
|
||||
debug:
|
||||
msg: "--> Not relevant"
|
||||
changed_when: false
|
||||
when:
|
||||
- rhel9cis_rule_1_1_18 or
|
||||
rhel9cis_rule_1_1_19 or
|
||||
rhel9cis_rule_1_1_20
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- notscored
|
||||
- audit
|
||||
- mounts
|
||||
- rule_1.1.18
|
||||
- rule_1.1.19
|
||||
- rule_1.1.20
|
||||
|
||||
- name: "1.1.21 | L1 | PATCH | Ensure sticky bit is set on all world-writable directories"
|
||||
shell: df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type d -perm -0002 2>/dev/null | xargs chmod a+t
|
||||
args:
|
||||
warn: no
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
when:
|
||||
- rhel9cis_rule_1_1_21
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- stickybits
|
||||
- permissons
|
||||
- rule_1.1.21
|
||||
|
||||
- name: "1.1.22 | L1 | PATCH | Disable Automounting"
|
||||
service:
|
||||
name: autofs
|
||||
enabled: no
|
||||
when:
|
||||
- not rhel9cis_allow_autofs
|
||||
- "'autofs' in ansible_facts.packages"
|
||||
- rhel9cis_rule_1_1_22
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- automounting
|
||||
- rule_1.1.22
|
||||
|
||||
- name: "1.1.23 | L1 | PATCH | Disable USB Storage"
|
||||
block:
|
||||
- name: "1.1.23 | L1 | PATCH | Disable USB Storage | Edit modprobe config"
|
||||
lineinfile:
|
||||
dest: /etc/modprobe.d/CIS.conf
|
||||
regexp: "^(#)?install usb-storage(\\s|$)"
|
||||
line: "install usb-storage /bin/true"
|
||||
create: yes
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0600
|
||||
|
||||
- name: "1.1.23 | L1 | PATCH | Disable USB Storage | Edit modprobe config"
|
||||
modprobe:
|
||||
name: usb-storage
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_1_23
|
||||
tags:
|
||||
- level1-server
|
||||
- level2-workstation
|
||||
- patch
|
||||
- mounts
|
||||
- removable_storage
|
||||
- rule_1.1.23
|
||||
15
tasks/section_1/cis_1.10.yml
Normal file
15
tasks/section_1/cis_1.10.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
|
||||
- name: "1.10 | L1 | PATCH | Ensure system-wide crypto policy is not legacy"
|
||||
shell: |
|
||||
update-crypto-policies --set "{{ rhel9cis_crypto_policy }}"
|
||||
update-crypto-policies
|
||||
when:
|
||||
- rhel9cis_rule_1_10
|
||||
- system_wide_crypto_policy['stdout'] == 'LEGACY'
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- no system_is_ec2
|
||||
- patch
|
||||
- rule_1.10
|
||||
15
tasks/section_1/cis_1.11.yml
Normal file
15
tasks/section_1/cis_1.11.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
|
||||
- name: "1.11 | L2 | PATCH | Ensure system-wide crypto policy is FUTURE or FIPS"
|
||||
shell: |
|
||||
update-crypto-policies --set "{{ rhel9cis_crypto_policy }}"
|
||||
update-crypto-policies
|
||||
when:
|
||||
- rhel9cis_rule_1_11
|
||||
- system_wide_crypto_policy['stdout'] not in rhel9cis_allowed_crypto_policies
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- not system_is_ec2
|
||||
- patch
|
||||
- rule_1.11
|
||||
100
tasks/section_1/cis_1.2.x.yml
Normal file
100
tasks/section_1/cis_1.2.x.yml
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
|
||||
- name: "1.2.1 | L1 | PATCH | Ensure Red Hat Subscription Manager connection is configured"
|
||||
redhat_subscription:
|
||||
state: present
|
||||
username: "{{ rhel9cis_rh_sub_user }}"
|
||||
password: "{{ rhel9cis_rh_sub_password }}"
|
||||
auto_attach: true
|
||||
no_log: true
|
||||
when:
|
||||
- ansible_distribution == "RedHat"
|
||||
- rhel9cis_rhnsd_required
|
||||
- rhel9cis_rule_1_2_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- notscored
|
||||
- patch
|
||||
- rule_1.2.1
|
||||
- skip_ansible_lint # Added as no_log still errors on ansuible-lint
|
||||
|
||||
- name: "1.2.2 | L1 | PATCH | Disable the rhnsd Daemon"
|
||||
service:
|
||||
name: rhnsd
|
||||
state: stopped
|
||||
enabled: no
|
||||
masked: true
|
||||
when:
|
||||
- ansible_distribution == "RedHat"
|
||||
- rhnsd_service_status.stdout == "loaded" and not rhel9cis_rhnsd_required
|
||||
- rhel9cis_rule_1_2_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- notscored
|
||||
- patch
|
||||
- rule_1.2.2
|
||||
|
||||
- name: "1.2.3 | L1 | AUDIT | Ensure GPG keys are configured"
|
||||
command: gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-{{ ansible_distribution|lower }}-release
|
||||
when:
|
||||
- rhel9cis_rule_1_2_3
|
||||
- ansible_distribution == "RedHat"
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- notscored
|
||||
- patch
|
||||
- rule_1.2.3
|
||||
|
||||
- name: "1.2.4 | L1 | PATCH | Ensure gpgcheck is globally activated"
|
||||
block:
|
||||
- name: "1.2.4 | L1 | AUDIT | Ensure gpgcheck is globally activated | Find repos"
|
||||
find:
|
||||
paths: /etc/yum.repos.d
|
||||
patterns: "*.repo"
|
||||
register: yum_repos
|
||||
changed_when: false
|
||||
|
||||
- name: "1.2.4 | L1 | PATCH | Ensure gpgcheck is globally activated | Update yum.repos"
|
||||
replace:
|
||||
name: "{{ item.path }}"
|
||||
regexp: "^gpgcheck=0"
|
||||
replace: "gpgcheck=1"
|
||||
with_items:
|
||||
- "{{ yum_repos.files }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.2.4
|
||||
|
||||
- name: "1.2.5 | L1 | Ensure package manager repositories are configured"
|
||||
block:
|
||||
- name: "1.2.5 | L1 | AUDIT | Ensure package manager repositories are configured | Get repo list"
|
||||
command: dnf repolist
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: dnf_configured
|
||||
check_mode: no
|
||||
args:
|
||||
warn: false
|
||||
|
||||
- name: "1.2.5 | L1 | AUDIT | Ensure package manager repositories are configured | Display repo list"
|
||||
debug:
|
||||
msg:
|
||||
- "Alert! Below are the configured repos. Please review and make sure all align with site policy"
|
||||
- "{{ dnf_configured.stdout_lines }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_2_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- notscored
|
||||
- patch
|
||||
- rule_1.2.5
|
||||
- skip_ansible_lint
|
||||
44
tasks/section_1/cis_1.3.x.yml
Normal file
44
tasks/section_1/cis_1.3.x.yml
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
|
||||
- name: "1.3.1 | L1 | PATCH | Ensure sudo is installed"
|
||||
package:
|
||||
name: sudo
|
||||
state: present
|
||||
when:
|
||||
- rhel9cis_rule_1_3_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- sudo
|
||||
- patch
|
||||
- rule_1.3.1
|
||||
|
||||
- name: "1.3.2 | L1 | PATCH | Ensure sudo commands use pty"
|
||||
lineinfile:
|
||||
dest: /etc/sudoers
|
||||
line: "Defaults use_pty"
|
||||
state: present
|
||||
when:
|
||||
- rhel9cis_rule_1_3_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.3.2
|
||||
|
||||
- name: "1.3.3 | L1 | PATCH | Ensure sudo log file exists"
|
||||
lineinfile:
|
||||
dest: /etc/sudoers
|
||||
regexp: '^Defaults logfile='
|
||||
line: 'Defaults logfile="{{ rhel9cis_varlog_location }}"'
|
||||
state: present
|
||||
when:
|
||||
- rhel9cis_rule_1_3_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.3.3
|
||||
50
tasks/section_1/cis_1.4.x.yml
Normal file
50
tasks/section_1/cis_1.4.x.yml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
|
||||
- name: "1.4.1 | L1 | PATCH | Ensure AIDE is installed"
|
||||
block:
|
||||
- name: "1.4.1 | L1 | PATCH | Ensure AIDE is installed | Install AIDE"
|
||||
package:
|
||||
name: aide
|
||||
state: present
|
||||
|
||||
- name: "1.4.1 | L1 | PATCH | Ensure AIDE is installed | Configure AIDE"
|
||||
command: /usr/sbin/aide --init -B 'database_out=file:/var/lib/aide/aide.db.gz'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
async: 45
|
||||
poll: 0
|
||||
args:
|
||||
creates: /var/lib/aide/aide.db.gz
|
||||
when: not ansible_check_mode
|
||||
when:
|
||||
- rhel9cis_config_aide
|
||||
- rhel9cis_rule_1_4_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- aide
|
||||
- patch
|
||||
- rule_1.4.1
|
||||
|
||||
- name: "1.4.2 | L1 | PATCH | Ensure filesystem integrity is regularly checked"
|
||||
cron:
|
||||
name: Run AIDE integrity check
|
||||
cron_file: "{{ rhel9cis_aide_cron['cron_file'] }}"
|
||||
user: "{{ rhel9cis_aide_cron['cron_user'] }}"
|
||||
minute: "{{ rhel9cis_aide_cron['aide_minute'] | default('0') }}"
|
||||
hour: "{{ rhel9cis_aide_cron['aide_hour'] | default('5') }}"
|
||||
day: "{{ rhel9cis_aide_cron['aide_day'] | default('*') }}"
|
||||
month: "{{ rhel9cis_aide_cron['aide_month'] | default('*') }}"
|
||||
weekday: "{{ rhel9cis_aide_cron['aide_weekday'] | default('*') }}"
|
||||
job: "{{ rhel9cis_aide_cron['aide_job'] }}"
|
||||
when:
|
||||
- rhel9cis_rule_1_4_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- aide
|
||||
- file_integrity
|
||||
- patch
|
||||
- rule_1.4.2
|
||||
76
tasks/section_1/cis_1.5.x.yml
Normal file
76
tasks/section_1/cis_1.5.x.yml
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
|
||||
- name: "1.5.1 | L1 | PATCH | Ensure permissions on bootloader config are configured"
|
||||
block:
|
||||
- name: "1.5.1 | L1 | PATCH | Ensure permissions on bootloader config are configured"
|
||||
file:
|
||||
path: "{{ grub_cfg.stat.lnk_source }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0600
|
||||
|
||||
- name: "1.5.1 | L1 | PATCH | Ensure permissions on bootloader config are configured | UEFI"
|
||||
mount:
|
||||
name: /boot/efi
|
||||
src: "UUID={{ item.uuid }}"
|
||||
fstype: vfat
|
||||
state: present
|
||||
opts: defaults,umask=0027,fmask=0077,uid=0,gid=0
|
||||
passno: '0'
|
||||
loop: "{{ ansible_mounts }}"
|
||||
when:
|
||||
- not rhel9cis_legacy_boot
|
||||
- item.mount == "/boot/efi"
|
||||
when:
|
||||
- rhel9cis_rule_1_5_1
|
||||
- grub_cfg.stat.exists
|
||||
- grub_cfg.stat.islnk
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.5.1
|
||||
|
||||
- name: "1.5.2 | L1 | PATCH | Ensure bootloader password is set"
|
||||
copy:
|
||||
dest: /boot/grub2/user.cfg
|
||||
content: "GRUB2_PASSWORD={{ rhel9cis_bootloader_password_hash }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0600
|
||||
notify: grub2cfg
|
||||
when:
|
||||
- rhel9cis_set_boot_pass
|
||||
- grub_pass is defined and grub_pass.passhash is defined
|
||||
- grub_pass.passhash | length > 0
|
||||
- rhel9cis_rule_1_5_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- grub
|
||||
- patch
|
||||
- rule_1.5.2
|
||||
|
||||
- name: "1.5.3 | L1 | PATCH | Ensure authentication required for single user mode"
|
||||
block:
|
||||
- name: "1.5.3 | L1 | PATCH | Ensure authentication required for single user mode | Emergency service"
|
||||
lineinfile:
|
||||
dest: /usr/lib/systemd/system/emergency.service
|
||||
regexp: '/sbin/sulogin'
|
||||
line: 'ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency'
|
||||
|
||||
- name: "1.5.3 | L1 | PATCH | Ensure authentication required for single user mode | Rescue service"
|
||||
lineinfile:
|
||||
dest: /usr/lib/systemd/system/rescue.service
|
||||
regexp: '/sbin/sulogin'
|
||||
line: 'ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue'
|
||||
when:
|
||||
- rhel9cis_rule_1_5_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.5.3
|
||||
54
tasks/section_1/cis_1.6.x.yml
Normal file
54
tasks/section_1/cis_1.6.x.yml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
|
||||
- name: "1.6.1 | L1 | PATCH | Ensure core dumps are restricted"
|
||||
block:
|
||||
- name: "1.6.1 | L1 | Ensure core dumps are restricted | Update limits.conf file"
|
||||
lineinfile:
|
||||
state: present
|
||||
dest: /etc/security/limits.conf
|
||||
regexp: '^#?\\*.*core'
|
||||
line: '* hard core 0'
|
||||
insertbefore: '^# End of file'
|
||||
|
||||
- name: "1.6.1 | L1 | PATCH | Ensure core dumps are restricted | Set active kernel parameter"
|
||||
debug:
|
||||
msg: "Control being set via Handler 'update sysctl' which writes to /etc/sysctl.d/99-sysctl.conf"
|
||||
notify:
|
||||
- update sysctl
|
||||
|
||||
- name: "1.6.1 | L1 | PATCH | Ensure core dumps are restricted | if systemd coredump"
|
||||
lineinfile:
|
||||
path: /etc/systemd/coredump.conf
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.regexp }}{{ item.line }}"
|
||||
state: present
|
||||
with_items:
|
||||
- {'regexp': 'Storage=', 'line': 'none'}
|
||||
- {'regexp': 'ProcessSizeMax=', 'line': '0'}
|
||||
notify:
|
||||
- systemd_daemon_reload
|
||||
when:
|
||||
- systemd_coredump.stat.exists
|
||||
when:
|
||||
- rhel9cis_rule_1_6_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- sysctl
|
||||
- patch
|
||||
- rule_1.6.1
|
||||
|
||||
- name: "1.6.2 | L1 | PATCH | Ensure address space layout randomization (ASLR) is enabled"
|
||||
debug:
|
||||
msg: "Control being set via Handler 'update sysctl' which writes to /etc/sysctl.d/99-sysctl.conf"
|
||||
notify:
|
||||
- update sysctl
|
||||
when:
|
||||
- rhel9cis_rule_1_6_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.6.2
|
||||
115
tasks/section_1/cis_1.7.1.x.yml
Normal file
115
tasks/section_1/cis_1.7.1.x.yml
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
---
|
||||
|
||||
- name: "1.7.1.1 | L2 | PATCH | Ensure SELinux is installed"
|
||||
package:
|
||||
name: libselinux
|
||||
state: present
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1_1
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.7.1.1
|
||||
|
||||
- name: "1.7.1.2 | L2 | PATCH | Ensure SELinux is not disabled in bootloader configuration"
|
||||
replace:
|
||||
dest: /etc/default/grub
|
||||
regexp: '(selinux|enforcing)\s*=\s*0\s*'
|
||||
replace: ''
|
||||
register: selinux_grub_patch
|
||||
ignore_errors: yes
|
||||
notify: grub2cfg
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1_2
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.7.1.2
|
||||
|
||||
- name: "1.7.1.3 | L2 | PATCH | Ensure SELinux policy is configured"
|
||||
selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: enforcing
|
||||
when:
|
||||
- not rhel9cis_selinux_disable
|
||||
- rhel9cis_rule_1_7_1_3
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.7.1.3
|
||||
|
||||
- name: "1.7.1.4 | L2 | PATCH | Ensure the SELinux state is enforcing"
|
||||
selinux:
|
||||
conf: /etc/selinux/config
|
||||
policy: "{{ rhel9cis_selinux_pol }}"
|
||||
state: enforcing
|
||||
when:
|
||||
- not rhel9cis_selinux_disable
|
||||
- rhel9cis_rule_1_7_1_4
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.7.1.4
|
||||
|
||||
- name: "1.7.1.5 | L2 | AUDIT | Ensure no unconfined daemons exist"
|
||||
block:
|
||||
- name: "1.7.1.5 | L2 | AUDIT | Ensure no unconfined daemons exist | Find the unconfined daemons"
|
||||
shell: ps -eZ | grep unconfined_service_t | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'
|
||||
register: rhelcis_1_7_1_5_unconf_daemons
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
|
||||
- name: "1.7.1.5 | L2 | AUDIT | Ensure no unconfined daemons exist | Message on no unconfined daemones"
|
||||
debug:
|
||||
msg: "Good News! There are no unconfined daemons found on your system"
|
||||
when: rhelcis_1_7_1_5_unconf_daemons.stdout | length == 0
|
||||
|
||||
- name: "1.7.1.5 | L2 | AUDIT | Ensure no unconfined daemons exist | Message on unconfined daemones"
|
||||
debug:
|
||||
msg: "Warning! You have unconfined daemons: {{ rhelcis_1_7_1_5_unconf_daemons.stdout_lines }}"
|
||||
when: rhelcis_1_7_1_5_unconf_daemons.stdout | length > 0
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1_5
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- audit
|
||||
- rule_1.7.1.5
|
||||
|
||||
- name: "1.7.1.6 | L2 | PATCH | Ensure SETroubleshoot is not installed"
|
||||
package:
|
||||
name: setroubleshoot
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1_6
|
||||
- "'setroubleshoot' in ansible_facts.packages"
|
||||
tags:
|
||||
- level2-server
|
||||
- scored
|
||||
- selinux
|
||||
- patch
|
||||
- rule_1.7.1.6
|
||||
|
||||
- name: "1.7.1.7 | L2 | PATCH | Ensure the MCS Translation Service (mcstrans) is not installed"
|
||||
package:
|
||||
name: mcstrans
|
||||
state: absent
|
||||
when:
|
||||
- rhel9cis_rule_1_7_1_7
|
||||
tags:
|
||||
- level2-server
|
||||
- level2-workstation
|
||||
- scored
|
||||
- patch
|
||||
- rule_1.7.1.7
|
||||
96
tasks/section_1/cis_1.8.1.x.yml
Normal file
96
tasks/section_1/cis_1.8.1.x.yml
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
---
|
||||
|
||||
- name: "1.8.1.1 | L1 | PATCH | Ensure message of the day is configured properly"
|
||||
template:
|
||||
src: etc/motd.j2
|
||||
dest: /etc/motd
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_1
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.8.1.1
|
||||
|
||||
- name: "1.8.1.2 | L1 | PATCH | Ensure local login warning banner is configured properly"
|
||||
template:
|
||||
src: etc/issue.j2
|
||||
dest: /etc/issue
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.8.1.2
|
||||
|
||||
- name: "1.8.1.3 | L1 | PATCH | Ensure remote login warning banner is configured properly"
|
||||
template:
|
||||
src: etc/issue.net.j2
|
||||
dest: /etc/issue.net
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_3
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- banner
|
||||
- patch
|
||||
- rule_1.8.1.3
|
||||
|
||||
- name: "1.8.1.4 | L1 | PATCH | Ensure permissions on /etc/motd are configured"
|
||||
file:
|
||||
dest: /etc/motd
|
||||
state: file
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_4
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.8.1.4
|
||||
|
||||
- name: "1.8.1.5 | L1 | PATCH | Ensure permissions on /etc/issue are configured"
|
||||
file:
|
||||
dest: /etc/issue
|
||||
state: file
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_5
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.8.1.5
|
||||
|
||||
- name: "1.8.1.6 | L1 | PATCH | Ensure permissions on /etc/issue.net are configured"
|
||||
file:
|
||||
dest: /etc/issue.net
|
||||
state: file
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when:
|
||||
- rhel9cis_rule_1_8_1_6
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- perms
|
||||
- patch
|
||||
- rule_1.8.1.6
|
||||
27
tasks/section_1/cis_1.8.2.yml
Normal file
27
tasks/section_1/cis_1.8.2.yml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
|
||||
- name: "1.8.2 | L1 | PATCH | Ensure GDM login banner is configured"
|
||||
lineinfile:
|
||||
dest: "{{ item.file }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
state: present
|
||||
create: yes
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
with_items:
|
||||
- { 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/01-banner-message', regexp: '\[org\/gnome\/login-screen\]', line: '[org/gnome/login-screen]' }
|
||||
- { file: '/etc/dconf/db/gdm.d/01-banner-message', regexp: 'banner-message-enable', line: 'banner-message-enable=true' }
|
||||
- { file: '/etc/dconf/db/gdm.d/01-banner-message', regexp: 'banner-message-text', line: "banner-message-text='{{ rhel9cis_warning_banner }}' " }
|
||||
when:
|
||||
- rhel9cis_gui
|
||||
- rhel9cis_rule_1_8_2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.8.2
|
||||
15
tasks/section_1/cis_1.9.yml
Normal file
15
tasks/section_1/cis_1.9.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
|
||||
- name: "1.9 | L1 | PATCH | Ensure updates, patches, and additional security software are installed"
|
||||
package:
|
||||
name: "*"
|
||||
state: latest
|
||||
when:
|
||||
- rhel9cis_rule_1_9
|
||||
- not system_is_ec2
|
||||
tags:
|
||||
- level1-server
|
||||
- level1-workstation
|
||||
- patch
|
||||
- rule_1.9
|
||||
- skip_ansible_lint
|
||||
42
tasks/section_1/main.yml
Normal file
42
tasks/section_1/main.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
|
||||
- name: "SECTION | 1.1 | FileSystem Configurations\n
|
||||
SECTION | 1.1.1.x | Disable unused filesystems"
|
||||
include: cis_1.1.1.x.yml
|
||||
- include: cis_1.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.2 | Configure Software Updates"
|
||||
include: cis_1.2.x.yml
|
||||
|
||||
- name: "SECTION | 1.3 | Configure sudo"
|
||||
include: cis_1.3.x.yml
|
||||
|
||||
- name: "SECTION | 1.4 | Filesystem Integrity"
|
||||
include: cis_1.4.x.yml
|
||||
when: rhel9cis_config_aide
|
||||
|
||||
- name: "SECTION | 1.5 | Secure Boot Settings"
|
||||
include: cis_1.5.x.yml
|
||||
|
||||
- name: "SECTION | 1.6 | Additional Process Hardening"
|
||||
include: cis_1.6.x.yml
|
||||
|
||||
- name: "SECTION | 1.7 | bootloader and Mandatory Access Control"
|
||||
include: cis_1.7.1.x.yml
|
||||
when: not rhel9cis_selinux_disable
|
||||
|
||||
- name: "SECTION | 1.8 | Warning Banners"
|
||||
include: cis_1.8.1.x.yml
|
||||
|
||||
- name: "SECTION | 1.9 | Updated and Patches"
|
||||
include: cis_1.9.yml
|
||||
|
||||
- name: "SECTION | 1.10 | Crypto policies"
|
||||
include: cis_1.10.yml
|
||||
when:
|
||||
- not system_is_ec2
|
||||
|
||||
- name: "SECTION | 1.11 | FIPS/FUTURE Crypto policies"
|
||||
include: cis_1.11.yml
|
||||
when:
|
||||
- not system_is_ec2
|
||||
Loading…
Add table
Add a link
Reference in a new issue