Você está na página 1de 3

Segurana SSH com DenyHosts [Artigo]

1 de 3

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=9326

Segurana SSH com DenyHosts


Autor: Rafael Tomelin <rafael.tomelin at gmail.com>
Data: 05/01/2009
Introduo ao DenyHosts

O que DenyHosts
um script feito em PERL por Phil Schwartz, no qual ajuda na segurana do servio SSH contra ataques de
"FORA BRUTA".
Como funciona:
O DenyHosts busca as tentativas de conexo em /var/log/secure.log ou /var/log/auth.log, dependendo da
distribuio Linux usada. Na configurao pode-se indicar quantas tentativas o usurio pode fazer sem
sucesso, atingindo esse nmero de falhas o DenyHosts copia o IP para dentro de /etc/hosts.deny.
Nessa configurao pode-se setar tentativas de usurios vlidos no sistema ou invlidos, ou seja, 3 tentativas
para usurios invlidos e 5 para usurios vlidos, tambm informamos quanto tempo esse IP ficar bloqueado.
Requisitos: necessrio o Python para rodar o DenyHosts.

Instalao
1) Vamos entrar no diretrio 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 diretrio:

2/9/2013 00:01

Segurana SSH com DenyHosts [Artigo]

2 de 3

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=9326

# ln -s /opt/DenyHosts-2.6 /usr/share/denyhosts
Link do binrio:
# ln -s /opt/DenyHosts-2.6/denyhosts.py /usr/bin
Link do arquivo de inicializao 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 configurao 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

Configurando o DenyHosts
Dentro do arquivo de configurao /opt/DenyHosts-2.6/denyhosts.cfg vamos descomentar/comentar
/acrescentar as seguintes linhas:
#Arquivo de log a ser verificado
SECURE_LOG = /var/log/secure
#Arquivo com os hosts bloqueados
HOSTS_DENY = /etc/hosts.deny
#Limpar o arquivo a cada 2 dias
PURGE_DENY = 2d
#Qual servio deve ser bloqueado
BLOCK_SERVICE = sshd
#Nmero de tentativas que um usurio no valido pode tentar se conectar
DENY_THRESHOLD_INVALID = 2
#Nmero de tentativas que um usurio valido pode tentar para se conectar
DENY_THRESHOLD_VALID = 2
#Nmero de tentativas com a senha do ROOT
DENY_THRESHOLD_ROOT = 1
#Email do destinatrio que receber os logs de bloqueio de IP
ADMIN_EMAIL = meuemail@meudominio.com.br
#Servidor de SMTP
SMTP_HOST = smtp.meudominio.com.br

2/9/2013 00:01

Segurana SSH com DenyHosts [Artigo]

3 de 3

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=9326

#Porta do servidor SMTP


SMTP_PORT = 25
#Remetente
SMTP_FROM = DenyHosts <nobody@localhost>
#Assunto
SMTP_SUBJECT = DenyHosts - IP bloqueado no servidor XXXX
#Arquivo de LOG do DenyHosts
DAEMON_LOG = /var/log/denyhosts
#De quanto em quanto tempo o DenyHosts deve varrer o arquivo de logs do sistema
DAEMON_SLEEP = 30s
Obs.: Ainda existem muitas outras opes do DenyHosts.

Finalizando
Colocando o DenyHosts em produo:
# /etc/rc.d/rc.denyshosts restart
Verificando se ele est executando:
# ps ax | grep denyhosts
2600 ?
S 0:03 python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
1940 pts/0 R+ 0:00 grep denyhosts
Testando o DenyHosts:
Vamos tentar locar na mquina local com o usurio fulano:
# ssh -l fulano localhost
Depois de colocar as senhas erradas verifique o resultado:
# cat /opt/DenyHosts/data/users-invalid
fulano:5:Thu Dec 18 13:31:27 2008
Isso a, agora seu servio de SSH est mais seguro.

http://www.vivaolinux.com.br/artigo/Seguranca-SSH-com-DenyHosts
Voltar para o site

2/9/2013 00:01