Você precisará adicionar as seguintes linhas a /etc/pam.d/sshd
:
auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800
account required pam_tally2.so
Adicione-os nas linhas 3 e 6, conforme indicado abaixo:
#%PAM-1.0
auth required pam_sepermit.so
auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800
auth include password-auth
account required pam_nologin.so
account required pam_tally2.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
Verifique também se UsePAM yes
está definido em /etc/ssh/sshd_config
Isso bloqueará um usuário ssh por 30 minutos após seis tentativas de autenticação com falha.
Se seguirmos as Guia oficial de segurança do RHEL 6 , podemos fazer isso sem alterar /etc/pam.d/sshd
.
Editamos os dois /etc/pam.d/system-auth
e /etc/pam.d/password-auth
, substituindo
auth sufficient pam_unix.so nullok try_first_pass
com
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
E, em ambos os arquivos, adicionamos essa linha ao topo da seção "conta":
account required pam_faillock.so
Isso fornecerá a funcionalidade de bloqueio de conta para usuários do console, usuários de proteção de tela e assim por diante.
Se você examinar /etc/pam.d/sshd
, verá que ele usa password-auth
e, portanto, os usuários do ssh terão a mesma funcionalidade de bloqueio.