"계정" PAM 단계를 의도적으로 지연하는 방법은 무엇입니까?

"계정" PAM 단계를 의도적으로 지연하는 방법은 무엇입니까?

내 OpenSSH 서버는 사용자 이름에 대한 사전 공격으로 공격을 받고 있으며 단순히 , 또는 이와 유사한 방법을 사용하여 사용자 이름을 제거하는 대신 pam_tally2( fail2ban또는 솔직히 다양한 포럼에서 계속 던져지는 추악한 "포트 변경" 조언) 공격자를 혼란스럽게 하고 싶습니다. 시간을 낭비하게 됩니다(대본 시간일지라도 적어도 그것은일부다른 사람을 공격하는 데 사용할 수 없는 CPU 및 포트 할당 낭비)

그래서 제 생각은 accountPAM 단계에 일종의 지연을 도입하는 것입니다(OpenSSHd 이전이기를 바랍니다).할 수 있는또는 "이 사용자는 존재하지 않습니다"라고 응답할 수도 있지만 pam_faildelay불행히도 모듈의 직관적인 선택은 auth이를 지원만 하며 이는 통계적으로 공격받은 거의 모든 "계정"이 실제로 존재하지 않기 때문에 결코 달성되지 않습니다.

또한 실제로 내가 원하는지 확실하지 않습니다.실패하다지연 무조건 지연인 것 같아요앞으로정보가 최대한 누출되지 않도록 여기에서 계정을 확인하는 것이 더 좋습니다.

이것이 pam_just_delay_right_here명백하고 구현하기 쉬운 것처럼 들리며(PAM 내부에 대해 전혀 모르지만) 아무것도 찾을 수 없다는 점을 감안할 때 잘못된 것을 찾고 있는 것이 틀림없다고 확신하며 도움을 받으십시오. 이 기능을 구성/구현하는 방법에 대해 알아보세요.


편집하다:

pam_exec /bin/sleep아래 @roaima가 제안한 솔루션을 구현 하고 추가 테스트를 한 결과 실제로 " account대신 auth" 아이디어가 잘못된 것으로 나타났습니다.하다auth분명히 이런 일이 전에 일어났기 때문에 필요했습니다 account. 사용하려고 하면 어떻게든 faildelay실행되지 않습니다. 내 생각엔 sshd가 초기에 "잘못된 사용자"를 감지하거나 "올바른 사용자 + 잘못된 비밀번호"로만 작동하기 때문에 모듈 스택을 오해하고 있는 것 같습니다. 그러나 pam_exec sleep전체 스택이 auth제대로 작동하기 전에 무조건 추가(PID에 대한 낭비 값은 "괜찮음"이지만 모든 로그인 시도는 3개의 sshd 프로세스를 생성하므로 신경 쓰지 않음)저것안전한 PAM 모듈을 작성하기 위해 자신을 신뢰하는 것과 같습니다)

관련 정보