보안 취약점 U-3 pam_faillock

728x90

안녕하세요!

오늘은 보안 취약점 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



이상입니다.

감사합니다!

천사불여일행(千思不如一行) : 천번 생각하는 것보다 한번 행동하는 것이 더 중요하다.

기기일약 불능십보 노마십가 공재불사(騏驥一躍 不能十步 駑馬十駕 功在不舍): 천리마가 한번 크게 뛴다고 하더라도 열 걸음을 나아갈 수 없고 노둔한 말일지라도 열흘 달리면 역시 거기에 미칠 수가 있다.
일의 성과는 멈추지 않고 계속하는 데 있다. (순자, 권학편)

 

728x90
반응형

'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