Bloqueio de repetidas tentativas de login ao seu Linux
Esse artigo mostra como implementar um sistema de segurança para bloqueio de ataques brute-force em seu servidor SSH. Ao mesmo tempo também mostra como criar um esquema para permitir acesso remoto (para manutenção) a partir de qualquer IP da internet.
Parte 3: Considerações sobre fail2ban
O outro modo fácil que eu encontrei para realizar esta verificação de
segurança utiliza a leitura de logs por um daemon. Mas acabei integrando a solução do iptables da página anterior com esta aqui e tenho tido sucesso!
Achei alguns projetos inclusive, mas o que mais me chamou a atenção foi o fail2ban. Escrito em Python, com um arquivo de configuração decente e com a possibilidade de expansão de funcionalidades, inclusive com a alteração das regras de bloqueio.
De maneira geral, pode-se resumir o funcionamento dele da seguinte maneira:
Achei alguns projetos inclusive, mas o que mais me chamou a atenção foi o fail2ban. Escrito em Python, com um arquivo de configuração decente e com a possibilidade de expansão de funcionalidades, inclusive com a alteração das regras de bloqueio.
De maneira geral, pode-se resumir o funcionamento dele da seguinte maneira:
- O script fica analisando continuamente o arquivo de log (geralmente em /var/log/auth.log) atrás de expressões regulares (regex) que informem que alguém tentou, mas não conseguiu se logar no sistema. O arquivo de configuração do fail2ban, com os comentários explicativos devidamente removidos.
- Caso o log aponte determinado número de acessos mal-sucedidos em um determinado espaço de tempo, ele adiciona uma regra no firewall do sistema bloqueando o site.
- Após determinado tempo especificado, o bloqueio é retirado (ninguém quer guardar em memória e entupir as tabelas de firewall com IPs dinâmicos...rs). Com ele você pode monitorar qualquer coisa, até o seu Apache, BIND, Samba, Postfix, etc.
Eu gostaria de citar outros dois softwares que utilizo para bloquear IP´s de atacantes em meu servidor:
APF Firewall
http://www.rfxnetworks.com/apf.php
Descrição: Firewall baseado em IPTables de fácil configuração e muito eficiente. A configuração é feita através de um .conf simples onde são informadas as portas a serem liberadas/bloqueadas, além de outras funcionalidades tanto para portas tcp como udp, além de bloquear ataques via ICMP (Denial of Service por exemplo) pois possui embutido um "anti-DOS". Utiliza a lista negras de IP´s que é atualizada frequentemente através do site www.dshiel.org (Distributed Intrusion Detection System), onde constam os IP´s utilizados com maior frequência para fins ilícitos.
-------------------------------------------
BFD - Brute Force Detect
http://www.rfxnetworks.com/bfd.php
Descrição: Em conjunto com o APF Firewall, detecta tentativas de acesso não autorizada a serviços como SSH, Apache, EXIM, FTP, etc. Após 5 tentativas de acesso sem sucesso, o IP de origem é "dropado" no IpTables e o administrador do servidor pode ser avisado por e-mail.
Ambos são desenvolvidos pelo RFX Networks e são free e de uso irrestrito. Não é preciso manjar de IpTables, basta saber quais portais você quer liberar/fechar e eles fazem o trabalho.
É isso ai!
Abraço, Fernando.