원문출처 : https://junu19.tistory.com/17
참고 :
주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법 상세가이드
적용 OS : RHEL 8.6
U-03 (상) 1. 계정관리 > 1.3 계정 잠금 임계값 설정
8버전 부터는 pam_tally2가 더 이상 기본으로 사용되지 않으며 faillock로 이용하게 됩니다.
vi /etc/pam.d/system-auth
# Generated by authselect on Mon Jun 27 04:44:48 2022
# Do not modify this file manually.
auth required pam_env.so
# 아래 내용 추가
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth required pam_faildelay.so delay=2000000
auth sufficient pam_fprintd.so
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok
# 아래 내용 추가
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=600
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_usertype.so issystem
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
# 아래 내용 추가
account required pam_faillock.so
password requisite pam_pwquality.so local_users_only
password sufficient pam_unix.so sha512 shadow nullok use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
audit - 사용자(일반계정) 감사를 활성화
deny - 실패 횟수, deny=5 5회 로그인 실패 시 계정 잠금
unlock_time - 계정 잠금 유지 시간, unlock_time=600 600초가 지나면 자동 해제, 설정하지 않으면 faillock를 이용하여 수동으로 잠금해제 하여야함
even_deny_root - root 계정 적용할때 사용
vi /etc/pam.d/password-auth
# Generated by authselect on Mon Jun 27 04:44:48 2022
# Do not modify this file manually.
auth required pam_env.so
# 아래 내용 추가
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth required pam_faildelay.so delay=2000000
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok
# 아래 내용 추가
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=600
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_usertype.so issystem
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
# 아래 내용 추가
account required pam_faillock.so
password requisite pam_pwquality.so local_users_only
password sufficient pam_unix.so sha512 shadow nullok use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
# 로그인 실패 확인
faillock
maint:
When Type Source Valid
2022-06-29 08:41:27 RHOST 12.12.12.1 V
root:
When Type Source Valid
2022-06-28 13:49:45 TTY /dev/tty1 V
2022-06-28 13:17:04 TTY /dev/tty1 I
2022-06-28 13:17:09 TTY /dev/tty1 I
2022-06-28 13:49:52 TTY /dev/tty1 V
2022-06-28 13:49:57 TTY /dev/tty1 V
# 특정 사용자만 확인
faillock --user maint
maint:
When Type Source Valid
2022-06-29 08:41:27 RHOST 12.12.12.1 V
# 수동 계정 잠금 해제
faillock --user maint --reset
# 로그인 한 번이라도 실패 시 아래 경로에 기록
ls /var/run/faillock/
maint root