O que é o DenyHosts?
O DenyHosts é uma ferramenta escrita em Python que monitora os logs do sistema em busca de ataques de força bruta SSH. Seu funcionamento é como de um HIDS.
Funcionamento
O DenyHosts busca as tentativas de conexão em /var/log/secure.log ou /var/log/auth.log, dependendo da distribuição Linux usada. Ele irá analisar os logs e verificar os IPs que estão tentando ter acesso ao servidor, geralmente o host é bloqueado com 3 tentativas de acesso. Os valores e as configurações podem ser mudadas no arquivo de configuração (/etc/denyhosts/denyhosts.conf).
Instalação
A instalação do DenyHosts pode ser feita de 2 formas: baixando o código fonte direto do site oficial ou através dos repositórios padrão do sistema. Neste artigo iremos abordar somente a instalação através do repositório padrão do sistema. Informações sobre como instalar através do código fonte são encontradas aqui.
Passo 1 – Instalando o DenyHosts
Abra o terminal e digite:
$ sudo apt-get install denyhosts
Passo 2 – Coloque o seu IP na whitelist
Edite o arquivo /etc/hosts.allow e coloque o IP de todas as máquinas que terão direito acesso. Isso irá garantir que eles não sejam bloqueados futuramente.
$ sudo vi /etc/hosts.allow
Adicione uma linha como a linha abaixo.
ssh: 162.28.6.3, 103.124.4.9
A sintaxe é: protocolo IP, IP, …
Salve e saia do arquivo
Passo 3 – Configure o denyhost.conf
Na maior parte dos sistemas, o arquivo de configuração encontra-se em /etc/denyhosts.conf.
$ sudo vim /etc/denyhosts.conf
Confirme se o caminho para o arquivo do log está correto, deve estar como o exemplo abaixo.
SECURE_LOG = /var/log/auth.log
A opção HOSTS_DENY deve estar:
HOSTS_DENY = /etc/host.deny
Para bloquear somente SSH (é possível bloquear outros serviços), basta adicionar o serviço neste campo:
BLOCK_SERVICE = ssh
DENY_THRESHOLD_INVALID = 5 DENY_THRESHOLD_VALID = 5 DENY_THRESHOLD_ROOT = 1 DENY_THRESHOLD_RESTRICTED = 1
IPTABLES = /sbin/iptables
Salve e feche o arquivo.
Passo 3 – Reiniciando o Serviço
Para que as alterações tenham efeito é preciso reiniciar o serviço.
$ sudo /etc/init.d/denyhosts restart
Passo 4 – Colocando o DenyHosts para iniciar com o Sistema
Digite o seguinte comando no terminal:
$ sudo systemctl enable denyhosts.service
Passo 5 – Lista de Bloqueados
Digite o seguinte comando no terminal:
$ sudo cat /etc/hosts.deny
Nos próximos tutoriais iremos abordar como é possível realizar a remoção de um host que foi bloqueado.