Como vocês devem saber, tenho algumas VPS’s que uso para fins de trabalho e testes, apesar de serem VPS’s não gerenciadas (o fornecedor só te dá suporte em problemas de conexão e te fornece o sistema) nunca tive nenhum grande problema com as máquinas, seja na época que eu usava a godaddy, mochahost ou agora com a ramnode, porém, recentemente ao analisar os logs do report diário, identifiquei que as máquinas vem sendo alvo de tentativas de brute force.
Procurando uma solução para este problema, me deparei com o DenyHosts, que basicamente monitora os logs de acesso e bloqueia os ips que estão tentando um brute force, nesse post vou explicar como instalar e configurar essa belezinha.
primeiramente, caso esteja utilizando CentOS, RedHat ou Fedora, basta executar o seguinte comando no console.
[code language=”bash”]
yum –enablerepo=epel install denyhosts
[/code]
depois de rodar esse comando super difícil o DenyHosts já estará instalado, o arquivo de configuração geralmente fica em /etc/denyhosts.conf, os ips permitidos ficam no arquivo /etc/hosts.allow já os ips bloqueados ficam no arquivo /etc/hosts.deny.
existem algumas opções importantes de alterar, caso queira receber o report por email basta incluir o email no arquivo de configuração e configurar o smtp para envio do email.
para adicionar o DenyHosts na inicialização do sistema, basta rodar o seguinte comando.
[code language=”bash”]
chkconfig denyhosts on
service denyhosts start
chkconfig –list
[/code]
chkconfig é uma ferramenta capaz de gerenciar a inicialização/finalização de múltiplos serviços, neste último comando basta verificar se o denyhosts está na lista que vai aparecer, vale lembrar que por padrão o Denyhosts só bloqueia os acessos via SSH, para alterar para bloquear o acesso dos ips da blacklist em todos os serviços basta comentar a opção de bloqueia por SSHD e descomentar a opção SERVICE ALL.
Vou deixar para download esse pequeno script PHP que eu estava usando para executar um job diário do Cron, modifique conforme sua necessidade.