우분투 서버에서 일정 횟수 이상 비밀번호 입력에 실패한 사용자의 로그인을 차단하는 방법은 pam_tally2
또는 pam_faillock
모듈을 사용하는 방식이 있습니다. 이 방법들은 PAM(Pluggable Authentication Module)을 통해 로그인 시도를 관리하고 제어할 수 있도록 도와줍니다.
1. pam_tally2
를 사용한 로그인 차단
pam_tally2
는 로그인 시도 실패 횟수를 기록하고, 일정 횟수 이상 실패 시 로그인 계정을 잠글 수 있는 PAM 모듈입니다. 다만, pam_tally2
는 최신 배포판에서는 점차 **pam_faillock
**으로 대체되고 있기 때문에, 서버 환경에 따라 적합한 모듈을 선택해야 합니다.
- 설정 방법
pam_tally2
설치 확인
우분투에서는 보통 기본적으로 설치되어 있지만, 설치되지 않은 경우 아래 명령어로 설치할 수 있습니다:
sudo apt install libpam-modules
- PAM 설정 파일 수정
PAM 설정 파일을 열어 수정합니다:
sudo nano /etc/pam.d/common-auth
파일에 아래 줄을 추가하여 로그인 실패 시도를 기록하고 차단할 수 있도록 설정합니다:
auth required pam_tally2.so deny=5 onerr=fail unlock_time=600
여기서:
deny=5
: 비밀번호 입력을 5회 실패하면 계정이 잠깁니다.onerr=fail
: PAM 모듈에 오류가 발생할 경우 로그인을 차단합니다.unlock_time=600
: 10분 후(600초) 계정이 자동으로 잠금 해제됩니다.
- PAM 설정 적용
설정을 저장한 후, 사용자에게 적용되도록 변경 사항을 적용합니다.
- 계정 잠금 상태 확인 및 초기화
pam_tally2
명령어를 통해 실패한 시도나 계정 잠금 상태를 확인할 수 있습니다:
pam_tally2 --user=username
특정 사용자의 잠금을 해제하려면:
pam_tally2 --user=username --reset
2. pam_faillock
을 사용한 로그인 차단
pam_faillock
은 pam_tally2
보다 더 최신의 PAM 모듈로, 비밀번호 입력 실패 횟수를 제한하고 계정 잠금을 설정할 수 있습니다.
- 설정 방법
pam_faillock
설치
최신 배포판에서는 pam_faillock
이 이미 설치되어 있지만, 없는 경우 아래 명령어로 설치할 수 있습니다:
sudo apt install libpam-failock
- PAM 설정 파일 수정
PAM 설정 파일을 수정하여 로그인 실패 시도 제한을 설정합니다. 두 가지 파일을 수정해야 합니다.
- common-auth 파일 수정:
sudo nano /etc/pam.d/common-auth
아래 내용을 파일의 맨 위에 추가합니다:
auth required pam_faillock.so preauth silent deny=5 unlock_time=600
- common-account 파일 수정:
sudo nano /etc/pam.d/common-account
아래 내용을 파일의 맨 위에 추가합니다:
account required pam_faillock.so
- 설정 설명
deny=5
: 5회 이상 로그인 실패 시 계정을 잠급니다.unlock_time=600
: 10분 후 자동으로 계정 잠금이 해제됩니다.
- 로그 및 상태 확인
pam_faillock
을 통해 사용자의 잠금 상태를 확인하려면:
faillock --user=username
특정 사용자의 잠금을 해제하려면:
faillock --user=username --reset
『출처 – ChatGPT』