Information
The Operating System (OS) must configure SELinux context type to allow the use of a non-default faillock tally directory.
By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account.
From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be re-enabled after system reboot. If that is undesirable, a different tally directory must be set with the "dir" option.
SELinux, enforcing a targeted policy, will require any non-default tally directory's security context type to match the default directory's security context type. Without updating the security context type, the pam_faillock module will not write failed login attempts to the non-default tally directory.
Solution
Configure RHEL 8 to allow the use of a non-default faillock tally directory while SELinux enforces a targeted policy.
Create a non-default faillock tally directory (if it does not already exist) with the following example:
# mkdir /var/log/faillock
Update the /etc/selinux/targeted/contexts/files/file_contexts.local with faillog_t context type for the non-default faillock tally directory with the following command:
# semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?"
Next, update the context type of the non-default faillock directory/subdirectories and files with the following command:
# restorecon -R -v /var/log/faillock