Segurança SSH com DenyHosts

Neste artigo mostrarei como bloquear tentativas de SSH Brute Force com o DenyHosts no Slackware Linux, mas vale para qualquer distribuição.

[ Hits: 23.978 ]

Por: Rafael Tomelin em 05/01/2009 | Blog: http://teclinux.no-ip.org:8080


Introdução ao DenyHosts



O que é DenyHosts

É um script feito em PERL por Phil Schwartz, no qual ajuda na segurança do serviço SSH contra ataques de "FORÇA BRUTA".

Como funciona:
O DenyHosts busca as tentativas de conexão em /var/log/secure.log ou /var/log/auth.log, dependendo da distribuição Linux usada. Na configuração pode-se indicar quantas tentativas o usuário pode fazer sem sucesso, atingindo esse número de falhas o DenyHosts copia o IP para dentro de /etc/hosts.deny.

Nessa configuração pode-se setar tentativas de usuários válidos no sistema ou inválidos, ou seja, 3 tentativas para usuários inválidos e 5 para usuários válidos, também informamos quanto tempo esse IP ficará bloqueado.

Requisitos: é necessário o Python para rodar o DenyHosts.

Instalação

1) Vamos entrar no diretório onde ficará o DenyHosts:

# cd /opt

2) Agora baixaremos o DenyHosts da seguinte forma:

# wget -c http://ufpr.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz

3) Descompactaremos :

# tar -zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6


4) E criaremos os links:

Link do diretório:

# ln -s /opt/DenyHosts-2.6 /usr/share/denyhosts

Link do binário:

# ln -s /opt/DenyHosts-2.6/denyhosts.py /usr/bin

Link do arquivo de inicialização do DenyHosts:

# ln -s /opt/DenyHosts-2.6/daemon-control-dist /etc/rc.d/rc.denyshosts

5) O DenyHosts já vem com um arquivo de configuração pré-pronto, apenas copiaremos ele:

# cp /opt/DenyHosts-2.6/denyhosts.cfg.dist /opt/DenyHosts-2.6/denyhosts.cfg

Colocando para iniciar junto com o sistema Linux:

# chmod +x /etc/rc.d/rc.denyhosts

Acrescentar as seguintes linhas ao arquivo /etc/rc.d/rc.M:

# Start the DenyHosts.
if [ -x /etc/rc.d/rc.denyhosts ]; then
  . /etc/rc.d/rc.denyhosts
fi

    Próxima página

Páginas do artigo
   1. Introdução ao DenyHosts
   2. Configurando o DenyHosts
Outros artigos deste autor

VPN (filial) autenticando e usando o proxy do servidor de VPN (matriz)

Leitura recomendada

Instalando um firewall em ambientes gráficos leves

Alta disponibilidade com CARP

Configurando uma VPN IPSec Openswan no SUSE Linux 9.3

Entendendo SQL Injection

Implementação de NIDS com EasyIDS

  
Comentários
[1] Comentário enviado por remontti em 05/01/2009 - 10:18h

Muito boa sua politica,
eu uso uma outra bloqueava sempre hosts.deny, e outras conf,
vou aplicar aqui em um dos servidores aqui ver como fica, junto das minhas, se funcionar depois posto ai.

[2] Comentário enviado por stremer em 05/01/2009 - 10:32h

amigo, só um detalhe. Acho que o script é feito em python e não em perl...

[3] Comentário enviado por renato.leite em 05/01/2009 - 18:34h

Muito bom o artigo, mas o script foi escrito em python, fora isso esta otimo seu artigo...

[4] Comentário enviado por nick em 06/01/2009 - 09:50h

Legal. Mas acho besteira, pq hoje o auth.log nos dá toda essas informaçoes sem necessitar de terceiros.

[5] Comentário enviado por removido em 07/01/2009 - 20:08h

A solução é interessante, mas na minha opinião é muito mais eficaz dar acesso somente á quem deve ter acesso com o parametro AllowUsers dentro do sshd.conf, bem como restringir senhas em branco, XForwarding, etc. Normalmente eu crio um Jail para cada usuário para incrementar ainda mais a segurança e dar acesso somente ao que o usuário necessita via ssh.
Mas é isso aí, o artigo veio para agregar.
Abraços.

[6] Comentário enviado por Rafael Guedes em 11/01/2009 - 12:46h

Muito bom seu artigo, parabéns!

Mas vale lembrar que se o DenyHosts estiver sendo executado em modo daemon as seguintes flags serão ignoradas:
--file, --purge, --migrate, --sync, --verbose

Portanto se você estiver tentando fazer algum teste remoto, não faça o que eu fiz =P

#Limpar o arquivo a cada 1 minuto
PURGE_DENY = 1m

Não consegui mais acessar o servidor pela minha máquina, tive que acessá-lo por outro servidor e limpar o arquivo /etc/hosts.deny. Portanto fica aí a dica, faça com que a vontade de ler o manual seja mais forte do que a vontade de ver o negócio rodando...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts