5 회 이상 로그인 시도 후 사용자를 잠그는 방법은 무엇입니까?


12

5 회 이상 로그인 시도 후 사용자를 잠그는 방법은 무엇입니까?

나는 그것을하는 방법에 대한 몇 가지 배포판 / 버전을 수집했지만 테스트 할 수는 없습니다.

RHEL4 : 다음을 추가하여 :

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

에:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

RHEL4 : ???

SLES9 : 다음을 추가하여 :

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

에:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 또는 SLES10 : 다음을 추가하여

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

에:

/etc/pam.d/common-auth

그리고 다음을 추가하여 :

account required pam_tally.so

에:

/etc/pam.d/common-account

질문 : 5 번의 로그인 시도가 실패한 후 이것이 사용자를 잠그는 효과적인 방법인지 확인하십시오. 아니면 어떻게해야합니까?

추신:

/sbin/pam_tally --user USERNAME --reset

이 작업을 수행하기 전에 수행 할 유용한 작업입니까? 이것으로 루트 사용자를 잠글 수 있습니까? 사람들이 서버에서 자신을 잠글 수 있기 때문에 PAM을 편집하는 것은 매우 민감한 일입니다 (예 : 루트 사용자). 이 작업을 할 때 힌트가 있습니까?


탈리 모듈은 그것을하는 방법이지만, 원래의 모듈은 상당히 파손되고 직관적이지 않기 때문에 pam_tally2를 권장합니다. 또한 루트는 이런 방식으로 잠겨져 열려 있지만 다음을 통해 활성화해야합니다.no_magic_root
Bratchley

BTW, 루트 계정에 잠금을 설정하지 않는 것이 좋습니다. 즉, 계정 잠금과 같이 문제가 발생하고 공격자가 직접 벡터를 가지고 있지 않아야하는 탈출구입니다.
Bratchley

SLES10에도 no_magic_root가 필요합니까?
gasko peter

모든 GNU / Linux 배포판은 동일한 기본 업스트림 프로젝트 세트를 기반으로하므로 Novell이 사람들을 혼동하는 방식으로 pam_tally 모듈 버전을 변경하려고 시도하지 않는 한 SuSE에서는 다른 배포판과 동일해야합니다.
Bratchley

1
이것이 좋은 생각입니까? 이렇게하면 모든 사용자가 다른 사용자가 쉽게 로그인하지 못하게 할 수 있습니다. 높은 지연 시간을 사용하는 것이 IMO보다 실용적이지만 스스로 결정하십시오.
Marco

답변:


17

fail2ban을 살펴볼 수 있습니다. 설정된 횟수만큼의 시도 실패 후 계정을 잠그고 설정된 시간이 지나면 잠금 해제하도록 구성 할 수 있습니다.

http://www.fail2ban.org/wiki/index.php/Downloads

을 사용하는 것이 진지하다면 대신 pam_tally에 사용하고 싶을 pam_tally2것입니다. 최신 PAM 패키지와 함께 설치해야합니다. pam_tally2 를 사용하여 사용법을 볼 수 있습니다 .

다음은 시작하기위한 예입니다. pam 파일 의 auth 섹션 시작 부분에 다음을 추가하십시오 /etc/pam.d/password-auth.

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

동일한 파일에서 이것을 계정 섹션에 추가하십시오.

account     required      pam_tally2.so

위의 매개 변수는 다음과 같습니다.

  • file=/var/log/tallylog – 기본 로그 파일은 로그인 수를 유지하는 데 사용됩니다.
  • deny=3 – 3 번의 시도 후 액세스를 거부하고 사용자를 잠급니다.
  • even_deny_root – 정책은 루트 사용자에게도 적용됩니다.
  • unlock_time=1200 -20 분 (60 초 * 20 분 = 1200 초)

루트를 잠그지 않으려면 even_deny_rootmagic_root로 변경 하십시오 .

루트 계정을 잠그고 싶은지 의심 스럽다. 대신 루트 계정이 잠길 수 있지만 다른 계정보다 짧은 기간 동안 만 이와 같은 작업을 수행 할 수 있습니다.

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

루트 계정은 1 분 동안 만 잠기 게됩니다.

샘플 로그 파일은 다음과 같습니다.

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

pam_tally2 명령을 사용하여 잠긴 계정에 대해 문의 할 수 있습니다.

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

다음과 같이 제한을 해제 할 수 있습니다.

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

이제 계정이 pam_tally2에 다음과 같이 나타납니다.

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

참고 문헌


2

pam_tally2처음에 저를 혼동하지만 난 다음 이후를 알아 냈 man pam_tally2-

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

위의 문구는 약간 혼란 스럽 pam_tally2.so습니다. 실제로 줄만 추가하기 때문 입니다.

따라서 /etc/pam.d/login다른 모든 auth줄 아래에서 편집 하고 추가 할 수 있습니다 .

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

또는 /etc/pam.d/system-auth거기에 추가 할 수 있습니다.

서비스를 다시 부팅하거나 다시로드 할 필요가 없습니다. 새로운 로컬 로그인시 즉시 활성화됩니다.

참고 : 또는 다른 원격 서비스 pam_tally2에도 적용 sshd하려면 회선을 추가 /etc/pam.d/sshd하거나 및 / 또는/etc/pam.d/password-auth


작동하는지 확인하려면 유효한 사용자로 로그인에 실패한 다음 실행하십시오. pam_tally2

예를 들어, 이름이 jacobrun 인 사용자의 경우 :

  $ sudo pam_tally2 -u jacob

그리고 그것은 다음과 같이 출력됩니다 :

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

너무 많은 로그인 시도가 실패하고 계정이 잠긴 경우 계정을 수동으로 잠금 해제 할 수 있습니다.

  $ sudo pam_tally2 -u jacob --reset
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.