2022-01-07 09:06:18 +00:00
---
2023-01-13 10:04:16 +00:00
- name : "6.1.1 | PATCH | Ensure permissions on /etc/passwd are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/passwd
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0644'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_1
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.1
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.2 | PATCH | Ensure permissions on /etc/passwd- are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/passwd-
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0644'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_2
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.2
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.3 | PATCH | Ensure permissions on /etc/group are configured"
ansible.builtin.file :
2023-09-21 16:25:59 +01:00
path : /etc/group
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0644'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_3
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.3
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.4 | PATCH | Ensure permissions on /etc/group- are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/group-
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0644'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_4
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2023-01-13 10:04:16 +00:00
- permissionss
- rule_6.1.4
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.5 | PATCH | Ensure permissions on /etc/shadow are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/shadow
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0000'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_5
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.5
2022-01-07 09:06:18 +00:00
2022-03-30 16:18:11 +01:00
- name : "6.1.6 | PATCH | Ensure permissions on /etc/shadow- are configured"
2023-01-13 10:04:16 +00:00
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/shadow-
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0000'
2022-01-07 09:06:18 +00:00
when :
2022-03-30 16:18:11 +01:00
- rhel9cis_rule_6_1_6
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- permissions
- rule_6.1.6
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.7 | PATCH | Ensure permissions on /etc/gshadow are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/gshadow
2022-01-07 09:06:18 +00:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0000'
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_7
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2023-01-13 10:04:16 +00:00
- permissions
- rule_6.1.7
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.8 | PATCH | Ensure permissions on /etc/gshadow- are configured"
ansible.builtin.file :
2023-01-26 09:31:27 +00:00
path : /etc/gshadow-
2022-03-30 16:18:11 +01:00
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0000'
2022-03-30 16:18:11 +01:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_8
2022-03-30 16:18:11 +01:00
tags :
- level1-server
- level1-workstation
- patch
- permissions
2024-01-03 11:18:52 +01:00
- rule_6.1.8
2022-03-30 16:18:11 +01:00
2023-01-13 10:04:16 +00:00
- name : "6.1.9 | PATCH | Ensure no world writable files exist"
2022-01-07 09:06:18 +00:00
block :
2023-01-13 10:04:16 +00:00
- name : "6.1.9 | AUDIT | Ensure no world writable files exist | Get list of world-writable files"
ansible.builtin.shell : df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -0002
2022-01-07 09:06:18 +00:00
failed_when : false
changed_when : false
2023-01-24 11:02:32 +00:00
register : rhel_09_6_1_9_perms_results
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.9 | PATCH | Ensure no world writable files exist | Adjust world-writable files if they exist (Configurable)"
ansible.builtin.file :
2022-01-07 09:06:18 +00:00
path : '{{ item }}'
mode : o-w
state : touch
2023-01-25 09:47:26 +00:00
loop : "{{ rhel_09_6_1_9_perms_results.stdout_lines }}"
2022-01-07 09:06:18 +00:00
when :
2023-01-24 11:02:32 +00:00
- rhel_09_6_1_9_perms_results.stdout_lines is defined
2022-01-07 09:06:18 +00:00
- rhel9cis_no_world_write_adjust
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_9
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- patch
2022-03-30 16:18:11 +01:00
- files
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.9
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.10 | AUDIT | Ensure no unowned files or directories exist"
2022-01-07 09:06:18 +00:00
block :
2023-01-13 10:04:16 +00:00
- name : "6.1.10 | AUDIT | Ensure no unowned files or directories exist | Finding all unowned files or directories"
ansible.builtin.shell : find "{{ item.mount }}" -xdev -nouser
2022-01-07 09:06:18 +00:00
changed_when : false
2022-03-30 16:18:11 +01:00
failed_when : false
check_mode : false
2023-01-24 11:02:32 +00:00
register : rhel_09_6_1_10_audit
2023-09-06 08:44:23 +01:00
loop : "{{ ansible_facts.mounts }}"
2022-03-30 16:18:11 +01:00
loop_control :
label : "{{ item.mount }}"
2023-07-21 09:53:14 +02:00
when :
- item['device'].startswith('/dev')
- not 'bind' in item['options']
2022-01-07 09:06:18 +00:00
2023-04-12 13:05:26 +01:00
- name : "6.1.10 | AUDIT | Ensure no unowned files or directories exist | set fact"
ansible.builtin.set_fact :
rhel_09_6_1_10_unowned_files_found : true
loop : "{{ rhel_09_6_1_10_audit.results }}"
2023-07-21 09:53:14 +02:00
when :
- item | length > 0
2023-07-26 16:50:48 +01:00
- item.stdout is defined # skipped items are part of results list, but don't have the registered module properties
2023-07-21 09:53:14 +02:00
- item.stdout | length > 0
2023-04-12 13:05:26 +01:00
2023-01-13 10:04:16 +00:00
- name : "6.1.10 | AUDIT | Ensure no unowned files or directories exist | Displaying any unowned files or directories"
ansible.builtin.debug :
2024-02-20 15:43:43 +00:00
msg : "Warning!! Missing owner on items in {{ rhel_09_6_1_10_audit | community.general.json_query('results[*].stdout_lines[*]') | flatten }}" # noqa jinja[invalid]
2023-04-12 13:10:42 +01:00
when : rhel_09_6_1_10_unowned_files_found
2023-01-13 11:05:25 +00:00
- name : "6.1.10 | AUDIT | Ensure no unowned files or directories exist | warning"
2023-09-21 15:07:52 +01:00
ansible.builtin.import_tasks :
2023-09-21 15:35:35 +01:00
file : warning_facts.yml
2023-01-13 11:05:25 +00:00
vars :
warn_control_id : '6.1.10'
2023-04-12 13:10:42 +01:00
when : rhel_09_6_1_10_unowned_files_found
2023-04-12 13:05:26 +01:00
vars :
rhel_09_6_1_10_unowned_files_found : false
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_10
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
- audit
2022-03-30 16:18:11 +01:00
- files
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.10
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.11 | AUDIT | Ensure no ungrouped files or directories exist"
2022-01-07 09:06:18 +00:00
block :
2023-01-13 10:04:16 +00:00
- name : "6.1.11 | AUDIT | Ensure no ungrouped files or directories exist | Finding all ungrouped files or directories"
ansible.builtin.shell : find "{{ item.mount }}" -xdev -nogroup
2022-01-07 09:06:18 +00:00
check_mode : false
failed_when : false
changed_when : false
2023-01-24 11:02:32 +00:00
register : rhel_09_6_1_11_audit
2023-09-06 08:44:23 +01:00
loop : "{{ ansible_facts.mounts }}"
2022-03-30 16:18:11 +01:00
loop_control :
label : "{{ item.mount }}"
2023-07-21 09:53:14 +02:00
when :
- item['device'].startswith('/dev')
- not 'bind' in item['options']
2022-01-07 09:06:18 +00:00
2023-04-12 13:05:26 +01:00
- name : "6.1.11 | AUDIT | Ensure no ungrouped files or directories exist | set fact"
ansible.builtin.set_fact :
rhel_09_6_1_11_ungrouped_files_found : true
loop : "{{ rhel_09_6_1_11_audit.results }}"
2023-07-21 09:53:14 +02:00
when :
- item | length > 0
2023-07-26 16:50:48 +01:00
- item.stdout is defined # skipped items are part of results list, but don't have the registered module properties
2023-07-21 09:53:14 +02:00
- item.stdout | length > 0
2023-04-12 13:05:26 +01:00
2023-01-13 10:04:16 +00:00
- name : "6.1.11 | AUDIT | Ensure no ungrouped files or directories exist | Displaying all ungrouped files or directories"
ansible.builtin.debug :
2024-02-20 15:43:43 +00:00
msg : "Warning!! Missing group on items in {{ rhel_09_6_1_11_audit | community.general.json_query('results[*].stdout_lines[*]') | flatten }}" # noqa jinja[invalid]
2023-04-12 13:10:42 +01:00
when : rhel_09_6_1_11_ungrouped_files_found
2023-01-13 12:10:18 +00:00
2023-01-13 11:05:25 +00:00
- name : "6.1.11 | AUDIT | Ensure no ungrouped files or directories exist | warning"
2023-09-21 15:07:52 +01:00
ansible.builtin.import_tasks :
2023-09-21 15:35:35 +01:00
file : warning_facts.yml
2023-01-13 11:05:25 +00:00
vars :
warn_control_id : '6.1.11'
2023-04-12 13:10:42 +01:00
when : rhel_09_6_1_11_ungrouped_files_found
2023-04-12 13:05:26 +01:00
vars :
2024-02-06 18:46:30 +02:00
rhel_09_6_1_11_ungrouped_files_found : false
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_11
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
2022-03-30 16:18:11 +01:00
- audit
- files
- permissions
2023-01-13 10:04:16 +00:00
- rule_6.1.11
- name : "6.1.12 | PATCH | Ensure sticky bit is set on all world-writable directories"
ansible.builtin.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
changed_when : false
failed_when : false
when :
- rhel9cis_rule_6_1_12
tags :
- level1-server
- level1-workstation
- patch
- stickybits
- permissons
2024-01-03 11:18:52 +01:00
- rule_6.1.12
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.13 | AUDIT | Audit SUID executables"
2022-01-07 09:06:18 +00:00
block :
2023-01-13 10:04:16 +00:00
- name : "6.1.13 | AUDIT | Audit SUID executables | Find all SUID executables"
ansible.builtin.shell : df {{ item.mount }} -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -4000
2022-01-07 09:06:18 +00:00
failed_when : false
changed_when : false
2023-04-12 13:05:26 +01:00
register : rhel_09_6_1_13_suid_perms
2023-09-06 08:44:23 +01:00
loop : "{{ ansible_facts.mounts }}"
2022-03-30 16:18:11 +01:00
loop_control :
label : "{{ item.mount }}"
2022-01-07 09:06:18 +00:00
2023-04-12 13:05:26 +01:00
- name : "6.1.13 | AUDIT | Audit SUID executables | set fact SUID executables"
ansible.builtin.set_fact :
2023-04-13 09:23:10 +01:00
rhel9_6_1_13_suid_found : true
2023-04-12 13:05:26 +01:00
loop : "{{ rhel_09_6_1_13_suid_perms.results }}"
2023-07-21 09:53:14 +02:00
when :
- item | length > 0
2023-07-26 16:50:48 +01:00
- item.stdout is defined # skipped items are part of results list, but don't have the registered module properties
2023-07-21 09:53:14 +02:00
- item.stdout | length > 0
2023-04-12 13:05:26 +01:00
2023-01-13 10:04:16 +00:00
- name : "6.1.13 | AUDIT | Audit SUID executables | Alert SUID executables exist"
ansible.builtin.debug :
2024-02-20 15:43:43 +00:00
msg : "Warning!! SUID set on items in {{ rhel_09_6_1_13_suid_perms | community.general.json_query('results[*].stdout_lines[*]') | flatten }}" # noqa jinja[invalid]
2023-04-13 09:23:10 +01:00
when : rhel9_6_1_13_suid_found
2023-01-13 11:05:25 +00:00
- name : "6.1.13 | AUDIT | Audit SUID executables | Alert SUID executables exist | warning"
2023-09-21 15:07:52 +01:00
ansible.builtin.import_tasks :
2023-09-21 15:35:35 +01:00
file : warning_facts.yml
2023-01-13 11:05:25 +00:00
vars :
warn_control_id : '6.1.13'
2023-04-13 09:23:10 +01:00
when : rhel9_6_1_13_suid_found
2023-04-12 13:05:26 +01:00
vars :
2023-04-13 09:23:10 +01:00
rhel9_6_1_13_suid_found : false
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_13
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
2022-03-30 16:18:11 +01:00
- manual
2022-01-07 09:06:18 +00:00
- audit
2022-03-30 16:18:11 +01:00
- files
2023-01-13 10:04:16 +00:00
- rule_6.1.13
2022-01-07 09:06:18 +00:00
2023-01-13 10:04:16 +00:00
- name : "6.1.14 | AUDIT | Audit SGID executables"
2022-01-07 09:06:18 +00:00
block :
2023-01-13 10:04:16 +00:00
- name : "6.1.14 | AUDIT | Audit SGID executables | Find all SGID executables"
ansible.builtin.shell : df {{ item.mount }} -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -2000
2022-01-07 09:06:18 +00:00
failed_when : false
changed_when : false
2023-04-12 13:05:26 +01:00
register : rhel_09_6_1_14_sgid_perms
2023-09-06 08:44:23 +01:00
loop : "{{ ansible_facts.mounts }}"
2022-03-30 16:18:11 +01:00
loop_control :
label : "{{ item.mount }}"
2022-01-07 09:06:18 +00:00
2023-04-12 13:05:26 +01:00
- name : "6.1.14 | AUDIT | Audit SGID executables | Set fact SGID executables"
ansible.builtin.set_fact :
2023-04-13 09:23:10 +01:00
rhel9_6_1_14_sgid_found : true
2023-04-12 13:05:26 +01:00
loop : "{{ rhel_09_6_1_14_sgid_perms.results }}"
2023-07-21 09:53:14 +02:00
when :
- item | length > 0
2023-07-26 16:50:48 +01:00
- item.stdout is defined # skipped items are part of results list, but don't have the registered module properties
2023-07-21 09:53:14 +02:00
- item.stdout | length > 0
2023-04-12 13:05:26 +01:00
2023-01-13 10:04:16 +00:00
- name : "6.1.14 | AUDIT | Audit SGID executables | Alert SGID executables exist"
ansible.builtin.debug :
2024-02-20 15:43:43 +00:00
msg : "Warning!! SGID set on items in {{ rhel_09_6_1_14_sgid_perms | community.general.json_query('results[*].stdout_lines[*]') | flatten }}" # noqa jinja[invalid]
2023-04-13 09:23:10 +01:00
when : rhel9_6_1_14_sgid_found
2023-01-13 11:05:25 +00:00
- name : "6.1.14 | AUDIT | Audit SGID executables| warning"
2023-09-21 15:07:52 +01:00
ansible.builtin.import_tasks :
2023-09-21 15:35:35 +01:00
file : warning_facts.yml
2023-01-13 11:05:25 +00:00
vars :
warn_control_id : '6.1.14'
2023-04-13 09:23:10 +01:00
when : rhel9_6_1_14_sgid_found
2023-04-12 13:05:26 +01:00
vars :
2023-04-13 09:23:10 +01:00
rhel9_6_1_14_sgid_found : false
2022-01-07 09:06:18 +00:00
when :
2023-01-13 10:04:16 +00:00
- rhel9cis_rule_6_1_14
2022-01-07 09:06:18 +00:00
tags :
- level1-server
- level1-workstation
2022-03-30 16:18:11 +01:00
- manual
- audit
- files
2023-01-13 10:04:16 +00:00
- rule_6.1.14
- name : "6.1.15 | AUDIT | Audit system file permissions"
block :
- name : "6.1.15 | AUDIT | Audit system file permissions | Audit the packages"
ansible.builtin.shell : rpm -Va --nomtime --nosize --nomd5 --nolinkto
changed_when : false
failed_when : false
register : rhel9cis_6_1_15_packages_rpm
- name : "6.1.15 | AUDIT | Audit system file permissions | Create list and warning"
block :
- name : "6.1.15 | AUDIT | Audit system file permissions | Add file discrepancy list to system"
ansible.builtin.copy :
dest : "{{ rhel9cis_rpm_audit_file }}" # noqa template-instead-of-copy
content : "{{ rhel9cis_6_1_15_packages_rpm.stdout }}"
owner : root
group : root
2023-09-21 16:25:59 +01:00
mode : '0640'
2023-01-13 10:04:16 +00:00
- name : "6.1.15 | AUDIT | Audit system file permissions | Message out alert for package descrepancies"
ansible.builtin.debug :
msg : |
"Warning!! You have some package descrepancies issues.
The file list can be found in {{ rhel9cis_rpm_audit_file }}"
- name : "6.1.15 | AUDIT | Audit system file permissions | warning count"
2023-09-21 15:07:52 +01:00
ansible.builtin.import_tasks :
2023-09-21 15:35:35 +01:00
file : warning_facts.yml
2023-01-13 11:05:25 +00:00
vars :
warn_control_id : '6.1.15'
when : rhel9cis_6_1_15_packages_rpm.stdout|length > 0
2023-01-13 10:04:16 +00:00
when :
- rhel9cis_rule_6_1_15
tags :
- level2-server
- level2-workstation
- manual
- audit
- permissions
2022-03-30 16:18:11 +01:00
- rule_6.1.15