안녕하세요!
오늘은 보안 취약점 U-3 pam_faillock 대하여 알아보겠습니다.
보안 취약점 U-3 pam_faillock
pam_faillock는 RHEL 8.x 이후 기본 계정 보안 모듈로, 로그인 실패에 대한 잠금 및 해제를 관리합니다. 이를 통해 시스템 보안을 강화하며, 구성 시 system-auth와 password-auth 파일에 적절한 라인을 추가하고 옵션을 세부적으로 설정하여 원하는 정책을 구현합니다.
RHEL 8.x 및 파생 OS(예: Rocky Linux 8.9)에서 보안 인증 관리 모듈로 pam_tally2 대신 pam_faillock를 사용하도록 변경되었습니다.
pam_faillock는 로그인 실패 시 계정 잠금 및 자동 해제와 같은 기능을 제공하며, 사용자 계정 보안을 강화합니다.
설정 파일 변경
/etc/pam.d/system-auth 및 /etc/pam.d/password-auth 파일에 특정 라인을 추가 및 수정하여 계정 잠금 정책을 설정합니다.
설정 파일을 변경할 때 라인추가 위치가 바뀌면 안되니 주의합니다.
1) vi /etc/pam.d/system-auth
# Generated by authselect on Tue May 7 00:56:35 2024
# Do not modify this file manually.
auth required pam_env.so
# 라인 추가
auth required pam_faillock.so preauth silent audit deny=5
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
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
~
auth required pam_faillock.so preauth silent audit deny=5
auth [default=die] pam_faillock.so authfail audit deny=5
preauth는 사전 인증 단계에서 실패 횟수를 기록합니다.
authfail은 인증 실패 후의 작업을 정의합니다.
account required pam_faillock.so
2) vi pam.d/password-auth
# Generated by authselect on Mon Jun 15 04:15:03 2020
# Do not modify this file manually.
auth required pam_env.so
# 라인 추가
auth required pam_faillock.so preauth silent audit deny=5
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
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
# 라인 추가
auth required pam_faillock.so deny=5 onerr=fail
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
auth required pam_faillock.so preauth silent audit deny=5
auth required pam_faillock.so deny=5 onerr=fail
onerr=fail은 모듈 실행 중 에러가 발생하면 인증을 거부합니다.
account required pam_faillock.so
주요 옵션 설명
audit: 로그 기록 활성화 (사용자 감사).
deny=5: 5회 로그인 실패 시 계정 잠금.
unlock_time=600: 10분(600초) 후 계정 자동 잠금 해제.
even_deny_root: root 계정에도 동일 정책 적용.
silent: 메시지 출력 비활성화(보안 강화).
테스트
잠금 확인 및 해제
로그인 실패 기록 확인: faillock --user [사용자 이름]
잠금 해제: faillock --user [사용자 이름] --reset
이상입니다.
감사합니다!
천사불여일행(千思不如一行) : 천번 생각하는 것보다 한번 행동하는 것이 더 중요하다.
기기일약 불능십보 노마십가 공재불사(騏驥一躍 不能十步 駑馬十駕 功在不舍): 천리마가 한번 크게 뛴다고 하더라도 열 걸음을 나아갈 수 없고 노둔한 말일지라도 열흘 달리면 역시 거기에 미칠 수가 있다.
일의 성과는 멈추지 않고 계속하는 데 있다. (순자, 권학편)
'Linux(리눅스)' 카테고리의 다른 글
Mock Server (3) | 2024.11.15 |
---|---|
nmcli 명령어 정리 (2) | 2024.11.14 |
fstrim (리눅스 파일을 삭제했지만 용량이 줄어들지 않는다...) (0) | 2024.11.06 |
Rocky 9.3 NFS (1) | 2024.03.18 |
Rocky 9.3 NTP (0) | 2024.03.12 |