Enforce usage of pam_wheel for su authentication

Classification:

compliance

Framework:

Control:

Description

To ensure that only users who are members of the wheel group can run commands with altered privileges through the su command, make sure that the following line exists in the file /etc/pam.d/su:

auth required pam_wheel.so use_uid

Rationale

The su program allows to run commands with a substitute user and group ID. It is commonly used to run commands as the root user. Limiting access to such command is considered a good security practice.

Remediation

Shell script

The following script can be run on the host to remediate the issue.

# Remediation is applicable only in certain platforms
if rpm --quiet -q pam; then

# uncomment the option if commented
 sed '/^[[:space:]]\*#[[:space:]]\*auth[[:space:]]\+required[[:space:]]\+pam\_wheel\.so[[:space:]]\+use\_uid$/s/^[[:space:]]\*#//' -i /etc/pam.d/su

else
 >&2 echo 'Remediation is not applicable, nothing was done'
fi

Ansible playbook

The following playbook can be run with Ansible to remediate the issue.

- name: Gather the package facts
 package\_facts:
 manager: auto
 tags:
 - CCE-85855-5
 - PCI-DSSv4-8.6.1
 - low\_complexity
 - low\_disruption
 - medium\_severity
 - no\_reboot\_needed
 - restrict\_strategy
 - use\_pam\_wheel\_for\_su

- name: Restrict usage of su command only to members of wheel group
 replace:
 path: /etc/pam.d/su
 regexp: ^[\s]\*#[\s]\*auth[\s]+required[\s]+pam\_wheel\.so[\s]+use\_uid$
 replace: auth required pam\_wheel.so use\_uid
 when: '"pam" in ansible\_facts.packages'
 tags:
 - CCE-85855-5
 - PCI-DSSv4-8.6.1
 - low\_complexity
 - low\_disruption
 - medium\_severity
 - no\_reboot\_needed
 - restrict\_strategy
 - use\_pam\_wheel\_for\_su

Warning

Members of “wheel” or GID 0 groups are checked by default if the group option is not set for pam_wheel.so module. Therefore, members of these groups should be manually checked or a different group should be informed according to the site policy.