Como bloquear usuários após 5 tentativas malsucedidas de login?
Reuni algumas distribuições / versões de como fazê-lo, mas não posso testá-lo.
RHEL4 : adicionando o:
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
para:
/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd
RHEL4 : ???
SLES9 : adicionando o:
auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root
para:
/etc/pam.d/login
/etc/pam.d/sshd
SLES11 ou SLES10 : adicionando o:
auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time
para:
/etc/pam.d/common-auth
E adicionando o:
account required pam_tally.so
para:
/etc/pam.d/common-account
PERGUNTA : Alguém pode confirmar que esta é a maneira correta / eficaz de bloquear usuários após 5 tentativas malsucedidas de login? OU COMO FAZER ISSO?
ps:
/sbin/pam_tally --user USERNAME --reset
é uma coisa útil a se fazer antes de fazer isso? Posso bloquear o usuário root com eles? A edição do PAM é uma coisa muito sensível, porque as pessoas podem se bloquear do servidor (quero dizer, ex .: o usuário root). Alguma dica ao fazer isso?
no_magic_root
Respostas:
Você pode dar uma olhada no fail2ban. Ele pode ser configurado para bloquear uma conta após um número definido de tentativas com falha e desbloquear depois de um período definido.
http://www.fail2ban.org/wiki/index.php/Downloads
Se você realmente leva a sério o uso
pam_tally
, provavelmente deseja usá-lopam_tally2
. Deve ser instalado com qualquer pacote PAM atual. Você pode fazer um homem pam_tally2 para ver como usá-lo.Aqui está um exemplo para você começar. Adicione o seguinte ao início da seção auth no arquivo pam
/etc/pam.d/password-auth
:No mesmo arquivo, adicione isso à seção da conta:
Os parâmetros acima são os seguintes:
file=/var/log/tallylog
- O arquivo de log padrão é usado para manter as contagens de login.deny=3
- Negar acesso após 3 tentativas e bloquear o usuário.even_deny_root
- A política também se aplica ao usuário root.unlock_time=1200
- 20 minutos (60 segundos * 20 minutos = 1200 segundos)Se você não deseja bloquear o root, altere even_deny_root para magic_root .
É questionável se você deseja bloquear a conta root. Você pode fazer algo assim, em que a conta raiz pode ser bloqueada, mas apenas por um período menor do que outras contas:
Isso bloqueará apenas a conta raiz por um minuto, e todos os demais, por 1200 segundos normais.
Um arquivo de log de amostra teria a seguinte aparência:
Você pode obter informações sobre contas bloqueadas usando o comando pam_tally2:
Você pode desbloquear a restrição da seguinte maneira:
Agora a conta aparece em pam_tally2 da seguinte forma:
Referências
fonte
pam_tally2
inicialmente me confundiu, mas descobri depois de seguirman pam_tally2
-o texto acima é um pouco confuso, porque na verdade você apenas adiciona a
pam_tally2.so
linha.então você pode editar
/etc/pam.d/login
e adicioná-lo abaixo de todas as outrasauth
linhas:ou se você tiver,
/etc/pam.d/system-auth
pode adicioná-lo lá.não é necessário reiniciar ou recarregar nenhum serviço - ele se torna ativo imediatamente para novos logins locais.
nota: se você deseja
pam_tally2
aplicar asshd
ou a outros serviços remotos, também precisará adicionar a linha ae/etc/pam.d/sshd
/ ou/etc/pam.d/password-auth
para verificar se está funcionando, faça uma tentativa de logon com um usuário válido e execute
pam_tally2
por exemplo, para um usuário chamado
jacob
run:e ele produzirá algo como:
se muitas tentativas de login falharem e a conta estiver bloqueada, você poderá desbloquear manualmente a conta:
fonte