4
0
Fork 0

Merge pull request #279 from ansible-lockdown/pr_273_alternative

pwquality 5.3.3.2.x logic updates
This commit is contained in:
uk-bolly 2025-01-22 17:21:28 +00:00 committed by GitHub
commit 469478e64e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 54 additions and 40 deletions

View file

@ -177,14 +177,14 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
grub2_path: /etc/grub2-efi.cfg grub2_path: /etc/grub2-efi.cfg
- name: "PRELIM | Discover Gnome Desktop Environment" - name: "PRELIM | AUDIT | Discover Gnome Desktop Environment"
tags: tags:
- always - always
ansible.builtin.stat: ansible.builtin.stat:
path: /usr/share/gnome/gnome-version.xml path: /usr/share/gnome/gnome-version.xml
register: prelim_gnome_present register: prelim_gnome_present
- name: "PRELIM | Install dconf if gui installed" - name: "PRELIM | PATCH | Install dconf if gui installed"
when: when:
- rhel9cis_gui - rhel9cis_gui
tags: tags:
@ -243,6 +243,14 @@
mode: 'go-rwx' mode: 'go-rwx'
state: touch state: touch
- name: "PRELIM | AUDIT | Capture pam security related files"
tags: always
ansible.builtin.find:
paths:
- /etc/security/pwquality.conf.d/
patterns: '*.conf'
register: prelim_pam_pwquality_confs
- name: "PRELIM | AUDIT | Gather UID 0 accounts other than root" - name: "PRELIM | AUDIT | Gather UID 0 accounts other than root"
when: rhel9cis_rule_5_4_2_1 when: rhel9cis_rule_5_4_2_1
tags: tags:
@ -326,7 +334,7 @@
changed_when: false changed_when: false
register: prelim_uid_max_id register: prelim_uid_max_id
- name: "PRELIM | AUDIT | set_facts for interactive uid/gid" - name: "PRELIM | AUDIT | Set Fact for interactive uid/gid"
ansible.builtin.set_fact: ansible.builtin.set_fact:
prelim_min_int_uid: "{{ prelim_uid_min_id.stdout }}" prelim_min_int_uid: "{{ prelim_uid_min_id.stdout }}"
prelim_max_int_uid: "{{ prelim_uid_max_id.stdout }}" prelim_max_int_uid: "{{ prelim_uid_max_id.stdout }}"

View file

@ -14,14 +14,15 @@
when: when:
- item != rhel9cis_passwd_difok_file - item != rhel9cis_passwd_difok_file
- rhel9cis_disruption_high - rhel9cis_disruption_high
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: 'difok\s*=\s*\d+\b' regexp: 'difok\s*=\s*\d+\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- /etc/pam.d/*-auth - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.1 | PATCH | Ensure password number of changed characters is configured | Ensure difok file exists" - name: "5.3.3.2.1 | PATCH | Ensure password number of changed characters is configured | Ensure difok file exists"
ansible.builtin.template: ansible.builtin.template:
@ -70,14 +71,15 @@
when: when:
- item != rhel9cis_passwd_minlen_file - item != rhel9cis_passwd_minlen_file
- rhel9cis_disruption_high - rhel9cis_disruption_high
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: 'minlen\s*=\s*\d+\b' regexp: 'minlen\s*=\s*\d+\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- '/etc/pam.d/*-auth' - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.2 | PATCH | Ensure minimum password length is configured | Ensure minlen file exists" - name: "5.3.3.2.2 | PATCH | Ensure minimum password length is configured | Ensure minlen file exists"
ansible.builtin.template: ansible.builtin.template:
@ -126,14 +128,15 @@
when: when:
- item != rhel9cis_passwd_complex_file - item != rhel9cis_passwd_complex_file
- rhel9cis_disruption_high - rhel9cis_disruption_high
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: '(minclass|[dulo]credit)\s*=\s*(-\d|\d+)\b' regexp: '(minclass|[dulo]credit)\s*=\s*(-\d|\d+)\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- '/etc/pam.d/*-auth' - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.3 | PATCH | Ensure password complexity is configured | Ensure complexity file exists" - name: "5.3.3.2.3 | PATCH | Ensure password complexity is configured | Ensure complexity file exists"
ansible.builtin.template: ansible.builtin.template:
@ -180,14 +183,15 @@
block: block:
- name: "5.3.3.2.4 | PATCH | Ensure password same consecutive characters is configured | Remove maxrepeat settings from conf files except expected file" - name: "5.3.3.2.4 | PATCH | Ensure password same consecutive characters is configured | Remove maxrepeat settings from conf files except expected file"
when: item != rhel9cis_passwd_maxrepeat_file when: item != rhel9cis_passwd_maxrepeat_file
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: 'maxrepeat\s*=\s*\d+\b' regexp: 'maxrepeat\s*=\s*\d+\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- '/etc/pam.d/*-auth' - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.4 | PATCH | Ensure password same consecutive characters is configured | Ensure maxrepeat file exists" - name: "5.3.3.2.4 | PATCH | Ensure password same consecutive characters is configured | Ensure maxrepeat file exists"
ansible.builtin.template: ansible.builtin.template:
@ -236,14 +240,15 @@
when: when:
- item != rhel9cis_passwd_maxsequence_file - item != rhel9cis_passwd_maxsequence_file
- rhel9cis_disruption_high - rhel9cis_disruption_high
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: 'maxsequence\s*=\s*\d+\b' regexp: 'maxsequence\s*=\s*\d+\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- '/etc/pam.d/*-auth' - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.5 | PATCH | Ensure password maximum sequential characters is configured | Ensure maxsequence file exists" - name: "5.3.3.2.5 | PATCH | Ensure password maximum sequential characters is configured | Ensure maxsequence file exists"
ansible.builtin.template: ansible.builtin.template:
@ -291,14 +296,15 @@
- name: "5.3.3.2.6 | PATCH | Ensure password dictionary check is enabled | Remove dictcheck settings from conf files except expected file" - name: "5.3.3.2.6 | PATCH | Ensure password dictionary check is enabled | Remove dictcheck settings from conf files except expected file"
when: when:
- item != rhel9cis_passwd_dictcheck_file - item != rhel9cis_passwd_dictcheck_file
ansible.builtin.replace: ansible.builtin.lineinfile:
path: "{{ item }}" path: "{{ item }}"
regexp: 'dictcheck\s*=\s*\d+\b' regexp: 'dictcheck\s*=\s*\d+\b'
replace: '' state: absent
with_fileglob: loop:
- '/etc/security/pwquality.conf' - /etc/security/pwquality.conf
- '/etc/security/pwquality.conf.d/*.conf' - /etc/pam.d/system-auth
- '/etc/pam.d/*-auth' - /etc/pam.d/password-auth
- "{{ prelim_pam_pwquality_confs.files | default([]) }}"
- name: "5.3.3.2.6 | PATCH | Ensure password dictionary check is enabled | Ensure dictcheck file exists" - name: "5.3.3.2.6 | PATCH | Ensure password dictionary check is enabled | Ensure dictcheck file exists"
ansible.builtin.template: ansible.builtin.template:

View file

@ -23,7 +23,7 @@ After=swap.target
What=tmpfs What=tmpfs
Where=/tmp Where=/tmp
Type=tmpfs Type=tmpfs
Options=mode=1777,strictatime,{% if rhel9cis_rule_1_1_2_2 %}nodev,{% endif %}{% if rhel9cis_rule_1_1_2_4 %}nosuid,{% endif %}{% if rhel9cis_rule_1_1_2_3 %}noexec{% endif %} Options=mode=1777,strictatime,{% 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 %}
# Make 'systemctl enable tmp.mount' work: # Make 'systemctl enable tmp.mount' work:
[Install] [Install]