Ubuntu에서 콘솔, ssh등 계정 로그인 시도 임계값 초과 시 차단 설정방법
환경
OS : Ubuntu 22.04 LTS
사용 모듈 : faillock, pam.d
유의사항 : faillock은 24.04부터 공식 인정받아 24.04이전 버전은 패키지 설치부터 진행해야함
설정방법
1. 패키지 설치
apt update && apt install libpam-modules libpam-modules-bin
2. /etc/security/faillock.conf 설정
vim /etc/security/faillock.conf
# 로그인 시도 임계치
deny = 3
# 잠금 설정된 계정이 풀리는 시간
unlock_time = 900
3. /etc/pam.d/common-auth 설정
테스트 환경에선 편의를 위해 기존 common-auth파일 백업 및 삭제 후 진행
순서 매우 중요!
파일 내용 백업 후 삭제
# 1. (preauth) 비밀번호 입력 전에 계정이 잠겼는지 먼저 확인
auth required pam_faillock.so preauth audit silent
# 2. (pam_unix) 사용자에게 비밀번호를 물어봄
# (success=1 이면 3번 authfail을 건너뛰고 4번 permit으로 감)
auth [success=1 default=ignore] pam_unix.so nullok
# 3. (authfail) pam_unix 인증이 실패하면(비밀번호 틀리면) 실패 기록
auth [default=die] pam_faillock.so authfail audit
# 4. (permit) 1, 2, 3번을 통과하면 최종 인증 허용
auth required pam_permit.so
# (optional)
auth optional pam_cap.so
4. /etc/pam.d/common-account 설정
테스트 환경에선 편의를 위해 기존 common-auth파일 백업 및 삭제 후 진행
순서 매우 중요!
common-account에서는 옵션 값 따로 들어가지 않음
# 1. (pam_faillock) 계정이 잠겼는지 확인하고, 잠겼으면 접근을 거부
account required pam_faillock.so
# 2. (pam_unix) 계정이 유효한지(만료 등) 확인
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
# 3. (permit) 1, 2번을 통과하면 최종 계정 승인
account required pam_permit.so
# (optional)
account optional pam_time.so
참고) 계정 정보 확인방법(잠겼는지, 접속시도, 잠김계정 풀기 등)
# 전체 계정 정보 확인
faillock
# 특정 계정 정보 확인
faillock --user [user명]
# 전체 계정 잠금 초기화
faillock --reset
# 특정 계정 잠금 초기화
faillock --user [user명] --reset
No comments to display
No comments to display