
O DenyHosts é um script escrito em Python que analisa o ficheiro de mensagens de registo do servidor sshd para determinar que hosts estão a tentar entrar no nosso sistema, ou seja, previne ataques de forca bruta monitorizando as tentativas de login inválidas e bloqueando o endereço IP de origem dos ataques. Também determina quais são as contas de utilizador que são alvo dessas tentativas de entrada. É registada a frequência das tentativas de ataque a partir de cada host. Sempre que é detectada uma tentativa repetida por parte de um host, é feita uma actualização do ficheiro /etc/hosts.deny por forma a prevenir ataques futuros realizados a partir desse host. O administrador pode receber um relatório por email.
O Fail2ban é um programa semelhante a este.
Uma análise do ficheiro messages (excerto na figura abaixo) permite detectar várias tentativas de login não autorizado. Logo é de considerar a instalação de um sistema que previna este tipo de situações. A opção caiu sobre o DenyHosts.

Para instalar segui este guia:
http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts
Sendo o meu sistema o Suse, verifiquei que já tinha o Python instalado. Apenas precisei de instalar o Python-devel e para isso recorri ao Yast.
Na criação do ficheiro de configuração (denyhosts.cfg) os valores correctos para OpenSuse de SECURE_LOG e LOCK_FILE são:
SECURE_LOG = “/var/log/messages”
LOCK_FILE = “/var/lock/subsys/denyhosts”
Na criação do ficheiro de daemon (daemon-control) os valores correctos para OpenSuse de DENYHOSTS_BIN, DENYHOSTS_LOCK, DENYHOSTS_CFG são:
DENYHOSTS_BIN = “/usr/local/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/run/denyhosts.pid”
DENYHOSTS_CFG = “/usr/share/denyhosts/denyhosts.cfg”
Seguindo o guia até ao fim, temos tudo instalado e configurado!
Podemos ver os registos de ocorrências em /var/log/denyhosts.
No ficheiro /etc/hosts.deny podemos ver os endereços IP que foram detectados a tentar forçar a entrada no nosso sistema.
No ficheiro /etc/hosts.allow podemos indicar os IPs que não queremos que sejam bloqueados.
Estava a adiar a instalação de um plugin para este tipo de situação, mas está visto que o spam veio para ficar e mesmo nos comentários dos artigos dos blogs apresenta-se como uma praga. Assim é preciso tomar medidas que atenuem este problema.
