Bloqueando e Desbloqueando falhas de Login em SSH usando o pam_tally2

– Introdução

Falar em ameaças virtuais hoje em dia, com toda a velocidade da informação sendo propagada é até sinônimo de “modismo”. Antigamente o padrão de ataques era, apesar do crescimento vertiginoso, mais complexo de se efetuar devido a complexidade e falta de ferramentas automatizadas para tais procedimentos.

Com o avanço da informação, ferramentas de divulgação como Youtube, Twitter, Pastebin e dentre outras centenas que não necessitam ser mencionadas aqui, a facilidade que se tem de absorver treinamentos em diversas áreas facilitou a quantidade de casos de ataques quando se fala em Segurança da Informação.

Levando em consideração o risco que se tem de manter um servidor ligado diretamente à internet sem os devidos cuidados, é necessário que o Administrador tenha a preocupação de manter seu sistema robusto e seguro a níveis aceitáveis. Uma das formas mais comuns de ataque a servidores é o Brute Force (Ataque de força bruta), que são mais explorados em serviços como ssh, ftp, telnet.

O ataque de Brute Force consiste em tentativas de descoberta de senhas de usuários utilizando-se de ferramentas automatizadas ou até mesmo de forma manual. Apesar de ser irrelevante a tentativa manual, não há motivo para descartar um ataque dessa natureza. Softwares como Hydra, John The Ripper, Medusa são exemplos de programas que podem fazer esse tipo de ataque automatizado, o que reduz o tempo e aumenta o percentual de sucesso nesse tipo de ataque.

Com base nessas proposições iniciais acima, é recomendado que sejam aplicados nos servidores algumas configurações de segurança (Hardening) que possam minimizar o risco de se ter um sistema sem as devidas precauções tomadas.

– O pam_tally2

O comando pam_tally2 é utilizado para bloquear e desbloquear acessos através de contagem de tentativa de acessos.

– Pode resetar o contador quando o login for efetuado com sucesso
– Pode bloquear o acesso se muitas tentativas falharem

O pam_tally2 vem em forma de comando, que pode ser executado diretamente no prompt do usuário (com intuito de auditar determinado usuário) como também ser utilizado com um módulo do PAM, atuando diretamente no modelo de autenticação do servidor e podendo até mesmo bloquear o acesso do próprio usuário root (não recomendado).

Para maiores informações do módulo/programa: # man pam_tally2

– Configurando a autenticação PAM com o pam_tally2

O módulo e o programa pam_tally2 já vem por padrão na maioria dos sistemas operacionais linux, então não precisaremos nos preocupar (No red hat/centOS) com a instalação do mesmo para funcionamento. Para iniciar a configuração do módulo no PAM precisaremos editar 2 arquivos e criar um outro como segue abaixo:

Crie um novo arquivo chamado tallylog

# touch /var/log/tallylog

Edite o arquivo system-auth no diretório do PAM

# vi /etc/pam.d/system-auth

adicione a linha abaixo logo no início da seção auth

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

agora adicione a linha abaixo logo no início da seção account

account required pam_tally2.so

Faça o mesmo procedimento para o arquivo password-auth no diretório do PAM

# vi /etc/pam.d/system-auth

adicione a linha abaixo logo no início da seção auth

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

agora adicione a linha abaixo logo no início da seção account

account required pam_tally2.so

Argumentos utilizados:

– file=/var/log/tallylog => Arquivo onde serão gravadas as tentativas de acesso (contador) do tally. Esse arquivo foi criado no início.
– deny=3 => O usuário será bloqueado após 3 tentativas falhas de login
– even_deny_root => Irá atuar até mesmo nos acessos do usuário root
– unlock_time=800 => o bloqueio irá permanecer por aproximadamente 13 minutos

Abaixo vemos como ficam nossos arquivos system-auth e password-auth respectivamente

/etc/pam.d/system-auth

culturapam_d_system_auth

/etc/pam.d/password-auth

culturapam_d_password-auth

– Testando a implementação

Agora feitas as configurações, vamos fazer os testes. Podemos tentar fazer uma conexão de outra máquina para nosso servidor e errar propositadamente a senha para reproduzir o resultado.

# ssh testepam@<ip_do_servidor>

testeauth

Utilizamos o comando pam_tally2 para fazer uma pequena auditoria no usuário

# pam_tally2 -u testepam

Vamos obter o resultado parecido com o da imagem abaixo

pam_tally2_usuario

Para resetar o contador de acessos do usuário utilizamos a sintaxe abaixo

# pam_tally2 -u testepam –reset

pam_tally2_usuario-reset

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: