[컴][리눅스] Linux에서 Login 실패 시 로그인 제한하기



일정 횟수 이상 실패시 제한 / 계정 잠그기


Linux에서 Login 실패 시 로그인 제한하기

리눅스에서 계정에 관한 대부분의 설정은 /etc/login.defs에서 가능

pam_tally2 로 로그인 실패시 계정 제한

PAM (Pluggable Authentication Modules)

# vi /etc/pam.d/password-auth

아래 파일을 보면 대충 어떻게 설정하는지 알 수 있다. 3번 로그인 실패하면 20분(1200초)동안 잠그게 된다.
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200
...
account     required      pam_unix.so
account     required      pam_tally2.so

~
~
~
~


pam_tally2

user id 의 failure count 를 확인할 수 있다.
# pam_tally2 --user=my_user_id

잠겨버린 계정을 해제
# pam_tally2 --user=my_user_id --reset



pam_faillock 을 사용해서 계정 잠그기

pam_fillock 은 pam_tolly2 의 login 실패기능에 대한 기능향상 버전이다. (참고) 그래서 이녀석을 쓰면 훨씬 다양한 정보를 얻을 수 있다.

설정

아래 내용을 2개의 파일 모두에 넣으면 된다. 순서가 중요하다.

# vi /etc/pam.d/password-auth
# vi /etc/pam.d/system-auth

auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth        sufficient    pam_unix.so nullok try_first_pass
auth        [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600

...

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so
account     required      pam_faillock.so


root 계정도 잠그기

만약 root 도 일정 실패 이후에 잠그고 싶다면 even_deny_root 를 추가하면 된다.
pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=600

sshd restart

그리고 sshd 를 restart 해줘야 한다.
systemctl restart sshd

실패한 로그인 시도 확인

faillock --user my_user_id


'faillock' 를 치면, 실패한 로그인 전체 목록을 볼 수 있다.

실패로그 삭제

user 의 인증실패로그(authentication failure log)를 삭제하려면 아래처럼 하면 된다.
faillock --user aaronkilik --reset



References

  1. How to Lock User Accounts After Failed Login Attempts
  2. Use Pam_Tally2 to Lock and Unlock SSH Failed Login Attempts
  3. Linux ETC - Login 실패시 계정 잠그기 및 PAM 설정



댓글 없음:

댓글 쓰기