Ubuntu 로그인 시도 관리(pam_tally2, pam_faillock)

우분투 서버에서 일정 횟수 이상 비밀번호 입력에 실패한 사용자의 로그인을 차단하는 방법

우분투 서버에서 일정 횟수 이상 비밀번호 입력에 실패한 사용자의 로그인을 차단하는 방법은 pam_tally2 또는 pam_faillock 모듈을 사용하는 방식이 있습니다. 이 방법들은 PAM(Pluggable Authentication Module)을 통해 로그인 시도를 관리하고 제어할 수 있도록 도와줍니다.

1. pam_tally2를 사용한 로그인 차단

pam_tally2는 로그인 시도 실패 횟수를 기록하고, 일정 횟수 이상 실패 시 로그인 계정을 잠글 수 있는 PAM 모듈입니다. 다만, pam_tally2는 최신 배포판에서는 점차 **pam_faillock**으로 대체되고 있기 때문에, 서버 환경에 따라 적합한 모듈을 선택해야 합니다.

  • 설정 방법
  1. pam_tally2 설치 확인

우분투에서는 보통 기본적으로 설치되어 있지만, 설치되지 않은 경우 아래 명령어로 설치할 수 있습니다:

sudo apt install libpam-modules
  1. 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초) 계정이 자동으로 잠금 해제됩니다.
  1. PAM 설정 적용

설정을 저장한 후, 사용자에게 적용되도록 변경 사항을 적용합니다.

  1. 계정 잠금 상태 확인 및 초기화

pam_tally2 명령어를 통해 실패한 시도나 계정 잠금 상태를 확인할 수 있습니다:

pam_tally2 --user=username

특정 사용자의 잠금을 해제하려면:

pam_tally2 --user=username --reset

2. pam_faillock을 사용한 로그인 차단

pam_faillockpam_tally2보다 더 최신의 PAM 모듈로, 비밀번호 입력 실패 횟수를 제한하고 계정 잠금을 설정할 수 있습니다.

  • 설정 방법
  1. pam_faillock 설치

최신 배포판에서는 pam_faillock이 이미 설치되어 있지만, 없는 경우 아래 명령어로 설치할 수 있습니다:

sudo apt install libpam-failock
  1. 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
  1. 설정 설명
  • deny=5: 5회 이상 로그인 실패 시 계정을 잠급니다.
  • unlock_time=600: 10분 후 자동으로 계정 잠금이 해제됩니다.
  1. 로그 및 상태 확인

pam_faillock을 통해 사용자의 잠금 상태를 확인하려면:

faillock --user=username

특정 사용자의 잠금을 해제하려면:

faillock --user=username --reset

『출처 – ChatGPT』