-
Notifications
You must be signed in to change notification settings - Fork 706
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement rule 5.3.2.4 Ensure pam_pwhistory module is enabled
- Loading branch information
1 parent
dfdd193
commit 8d97a79
Showing
7 changed files
with
106 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
...-pam/locking_out_password_attempts/accounts_password_pam_pwhistory_enabled/bash/shared.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# platform = multi_platform_ubuntu | ||
|
||
conf_name=cac_pwhistory | ||
conf_path="/usr/share/pam-configs" | ||
|
||
if [ ! -f "$conf_path"/"$conf_name" ]; then | ||
if [ -f "$conf_path"/pwhistory ]; then | ||
cp "$conf_path"/pwhistory "$conf_path"/"$conf_name" | ||
sed -i '/Default: yes/a Priority: 1025\ | ||
Conflicts: pwhistory' "$conf_path"/"$conf_name" | ||
else | ||
cat << EOF > "$conf_path"/"$conf_name" | ||
Name: pwhistory password history checking | ||
Default: yes | ||
Priority: 1024 | ||
Password-Type: Primary | ||
Password: requisite pam_pwhistory.so remember=24 enforce_for_root try_first_pass use_authtok | ||
EOF | ||
fi | ||
fi | ||
|
||
DEBIAN_FRONTEND=noninteractive pam-auth-update |
27 changes: 27 additions & 0 deletions
27
...pam/locking_out_password_attempts/accounts_password_pam_pwhistory_enabled/oval/shared.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<def-group> | ||
<definition class="compliance" id="{{{ rule_id }}}" version="2"> | ||
{{{ oval_metadata("The passwords to remember should be set correctly.") }}} | ||
<criteria operator="AND" comment="Check if pam_pwhistory.so is properly enabled"> | ||
<!-- | ||
pam_pwhistory.so parameters can be defined directly in pam files or, in newer versions, | ||
in /etc/security/pwhistory.conf. The last is the recommended option when available. Also, | ||
is the option used by auselect tool. However, regardless the approach, a minimal | ||
declaration is common in pam files. --> | ||
<criterion test_ref="test_accounts_password_pam_pwhistory_remember_common_password" | ||
comment="pam_pwhistory.so is properly defined in password section of common-password"/> | ||
</criteria> | ||
</definition> | ||
|
||
<!-- is pam_pwhistory.so enabled? --> | ||
<ind:textfilecontent54_test id="test_accounts_password_pam_pwhistory_remember_common_password" check="all" | ||
check_existence="at_least_one_exists" version="1" comment="Check pam_pwhistory.so presence in /etc/pam.d/common-password"> | ||
<ind:object object_ref="object_accounts_password_pam_pwhistory_remember_common_password"/> | ||
</ind:textfilecontent54_test> | ||
|
||
<ind:textfilecontent54_object id="object_accounts_password_pam_pwhistory_remember_common_password" | ||
version="1"> | ||
<ind:filepath>/etc/pam.d/common-password</ind:filepath> | ||
<ind:pattern operation="pattern match">^[\s]*password[\s]+((?:\[success=\d+\s+default=ignore\])|(?:requisite)|(?:required))[\s]+pam_pwhistory\.so[\s]+.*$</ind:pattern> | ||
<ind:instance datatype="int">1</ind:instance> | ||
</ind:textfilecontent54_object> | ||
</def-group> |
20 changes: 20 additions & 0 deletions
20
...counts-pam/locking_out_password_attempts/accounts_password_pam_pwhistory_enabled/rule.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
documentation_complete: true | ||
|
||
|
||
title: 'Ensure pam_pwhistory module is enabled' | ||
|
||
description: |- | ||
The <tt>pam_pwhistory.so</tt> module is part of the Pluggable Authentication Modules (PAM) | ||
framework designed to increase password security. It works by storing a history of previously | ||
used passwords for each user, ensuring users cannot alternate between the same passwords too frequently. | ||
<br /><br /> | ||
This module is incompatible with Kerberos. Furthermore, its usage with <tt>NIS</tt> or <tt>LDAP</tt> is | ||
generally impractical, as other machines can not access local password histories. | ||
rationale: |- | ||
Enforcing strong passwords increases the difficulty and resources required | ||
for password compromise. | ||
severity: medium | ||
|
||
platform: package[pam] |
15 changes: 15 additions & 0 deletions
15
...ing_out_password_attempts/accounts_password_pam_pwhistory_enabled/tests/commented.fail.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/bash | ||
# platform = multi_platform_ubuntu | ||
|
||
config_file=/usr/share/pam-configs/tmp_pwhistory | ||
cat << EOF > "$config_file" | ||
Name: pwhistory password history checking | ||
Default: yes | ||
Priority: 1024 | ||
Password-Type: Primary | ||
Password: requisite # pam_pwhistory.so remember=24 enforce_for_root try_first_pass use_authtok | ||
EOF | ||
|
||
DEBIAN_FRONTEND=noninteractive pam-auth-update | ||
|
||
rm "$config_file" |
15 changes: 15 additions & 0 deletions
15
...cking_out_password_attempts/accounts_password_pam_pwhistory_enabled/tests/correct.pass.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/bash | ||
# platform = multi_platform_ubuntu | ||
|
||
config_file=/usr/share/pam-configs/tmp_pwhistory | ||
cat << EOF > "$config_file" | ||
Name: pwhistory password history checking | ||
Default: yes | ||
Priority: 1024 | ||
Password-Type: Primary | ||
Password: requisite pam_pwhistory.so remember=24 enforce_for_root try_first_pass use_authtok | ||
EOF | ||
|
||
DEBIAN_FRONTEND=noninteractive pam-auth-update | ||
|
||
rm "$config_file" |
6 changes: 6 additions & 0 deletions
6
...cking_out_password_attempts/accounts_password_pam_pwhistory_enabled/tests/missing.fail.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
# platform = multi_platform_ubuntu | ||
|
||
rm /usr/share/pam-configs/*pwhistory | ||
|
||
DEBIAN_FRONTEND=noninteractive pam-auth-update |