퍼블릭 클라우드
Amazon Linux 2에서 pam_faillock 모듈을 사용해서 계정 잠금 정책을 설정하는 방법
변군이글루
2025. 8. 18. 15:36
반응형
Amazon Linux 2에서 pam_faillock 모듈을 사용해서 계정 잠금 정책을 설정하는 방법
테스트 환경
cat /etc/os-release | egrep PRETTY_NAME
PRETTY_NAME="Amazon Linux 2"
PAM 모듈 존재 확인
ls -l /usr/lib64/security/pam_faillock.so
-rwxr-xr-x 1 root root 15440 Sep 25 2020 /usr/lib64/security/pam_faillock.so
sshd가 PAM을 사용하는지 확인(기본 yes)
grep -E '^[# ]*UsePAM' /etc/ssh/sshd_config
UsePAM yes
백업
- system-auth
sudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth_$(date '+%Y%m%d-%H%M%S')
- password-auth
sudo cp /etc/pam.d/password-auth /etc/pam.d/password-auth_$(date '+%Y%m%d-%H%M%S')
728x90
PAM 설정 수정
/etc/pam.d/system-auth와 /etc/pam.d/password-auth 두 파일의 auth/account 섹션을 수정합니다.
system-auth
vim /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
### 로그인 시도 전에 미리 확인 (실패 기록 누적)
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=300
auth sufficient pam_unix.so try_first_pass nullok
### 실패 시 faillock에 기록
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=300
### 성공 시 faillock 초기화
auth sufficient pam_faillock.so authsucc
auth required pam_deny.so
account required pam_unix.so
### faillock 계정 정책 적용
account required pam_faillock.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
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
더보기
cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass nullok
auth required pam_deny.so
account required pam_unix.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
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
password-auth
vim /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
### 로그인 시도 전에 미리 확인 (실패 기록 누적)
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=300
auth sufficient pam_unix.so try_first_pass nullok
### 실패 시 faillock에 기록
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=300
### 성공 시 faillock 초기화
auth sufficient pam_faillock.so authsucc
auth required pam_deny.so
account required pam_unix.so
### faillock 계정 정책 적용
account required pam_faillock.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
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
더보기
cat /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass nullok
auth required pam_deny.so
account required pam_unix.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
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
- 로그인 실패 5회 → 계정 잠금 (deny=5)
- 잠금 유지 5분 (unlock_time=300)
- preauth → 로그인 전 실패 기록 확인
- authfail → 실패 시 기록 누적
- authsucc → 성공 시 실패 기록 초기화
- audit → 실패 시 감사 로그 기록
잠금 정책 테스트
현재 실패 카운트 확인
sudo faillock
실패 기록 확인
sudo faillock --user ec2-user
ec2-user:
When Type Source Valid
실패 기록 초기화(잠금 해제)
sudo faillock --user ec2-user --reset
728x90
반응형