pam_tally2는 SSH에 대한 실패를 계산하지 않습니다.

pam_tally2는 SSH에 대한 실패를 계산하지 않습니다.

줄을 추가했어요

auth required pam_tally2.so deny=3 unlock_time=180

/etc/pam.d/login파일에 저장하면 tty에서는 괜찮고 멋집니다. 3번의 시도 후에는 testuser일시 중지됩니다.

그러나 동일한 줄은 /etc/pam.d/sshd아무런 효과가 없습니다.

xieerqi:$ ssh testuser@localhost
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).

xieerqi:$ ssh testuser@localhost                                                                                           
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).

3번의 시도 실패 후에도 볼 수 있듯이 사용자는 여전히 비밀번호 입력을 시도할 수 있습니다.

ssh3회 경고 후 사용자를 차단하려면 어떻게 해야 하나요 ?

답변1

SSH의 경우 pam과 다른 것을 사용하는 것이 더 나을 수 있습니다. iptables와 파일을 통해 만들어진 훌륭한 솔루션이 있습니다 sshd_config. 이는 원하는 것을 얻을 수 있는 한 가지 방법일 뿐이며 문서에 따르면 일반적으로 비밀번호 인증 방법 확인 대신 SSH 키를 사용하는 것이 좋습니다.https://help.ubuntu.com/community/SSH/OpenSSH/구성.

  1. /etc/ssh/sshd_config줄 추가를 변경해야합니다

    MaxAuthTries 1
    
  2. 다음 방화벽 규칙을 만들어야 합니다.

    • 새 체인 생성

      iptables -N SSHATTACK   
      iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7  
      iptables -A SSHATACK -j DROP  
      
    • 120초 내에 3개 이상의 연결을 설정하는 각 IP 주소를 120초 동안 차단합니다. 네 번째 연결 시도의 경우 요청은 가능한 SSH 공격을 기록하고 최종적으로 요청을 삭제하는 SSHATTACK 체인에 위임됩니다.

      iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set     
      iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK    
      
  3. 파일에 대한 시도를 확인할 수 있습니다 /var/log/syslog.

답변2

일반적인 관행은 fail2banpam 수준 대신 네트워크 수준에서 작동하고 sshd.

어쨌든, 인증 실패 후 올바른 비밀번호를 입력해 보셨나요? 받아들여지나요? 무엇이 로그인되어 있나요 /var/log/auth.log?

sshd서버는 사용자가 존재하지 않거나 일시 중단되거나 잠긴 경우에도 항상 모든 pam 스택을 실행하여 사이드 채널(예: 기존 사용자 식별)을 사용하는 공격을 제거합니다. 이것이 당신이 겪고있는 문제입니다. 작동할 수 있지만 ssh보안 때문에 다시 볼 수는 없습니다 .

답변3

줄 순서를 변경해 보세요. PAM이 1개씩 실행합니다.
예:
/etc/pam.d/common-auth

auth    required                        pam_tally2.so deny=3 onerr=fail unlock_time=300 debug
auth    [success=1 default=ignore]      pam_unix.so nullok
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

나를 위해 일합니다.

관련 정보