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 6: fail2ban.conf - comentários
Se vocês prestaram um pouco de atenção no arquivo de configuração, devem ter percebido que talvez a única parte a ser editada (mas não necessária) é a que faz referência às redes que devam ser ignoradas no processo de monitoramento (ignoreip), geralmente a sua própria rede interna (ou nem isso, se os seus usuários não são confiáveis.. rs).
As outras partes que devem ser olhadas com atenção são:
Existe também a opção de enviar email para o administrador, mas como eu sei que não vou ler os emails enviados avisando do bloqueio mesmo, acabei nem testando/ativando.
Pois bem, nos meus servidores eu alterei as seguintes opções e ficaram assim:
As outras partes que devem ser olhadas com atenção são:
- maxfailures - que limita o número de falhas de login cujo valor padrão é 5, mas eu particularmente baixei para 2 na minha configuração;
- bantime - que controla o tempo que o IP Será bloqueado, em segundos. O valor padrão é 600 (10 minutos), mas estou usando 120 (2 minutos);
- findtime - valor em segundos que especifica a 'vida' de um login mal-sucedido na memória do fail2ban. O padrão é 600 e eu deixei assim mesmo.
Existe também a opção de enviar email para o administrador, mas como eu sei que não vou ler os emails enviados avisando do bloqueio mesmo, acabei nem testando/ativando.
Pois bem, nos meus servidores eu alterei as seguintes opções e ficaram assim:
maxfailures = 2
bantime = 120
findtime = 600
ignoreip = 172.24.22.0/24
bantime = 120
findtime = 600
ignoreip = 172.24.22.0/24
E-pronto! Se bem que mesmo sem modificar opção nenhuma o programa já começou bloqueando um acesso indevido... maravilha!
Todas as informações sobre os bloqueios e desbloqueios geralmente ficarão em /var/log/fail2ban.log. Eis o meu até agora:
2005-10-08 09:50:00,279 INFO: Fail2Ban v0.5.2 is running
2005-10-08 12:36:21,505 INFO: SSH: 201.24.83.4 has 2 login failure(s). Banned.
2005-10-08 12:36:21,505 WARNING: Ban 201.24.83.4
2005-10-08 12:38:02,482 WARNING: Unban 201.24.83.4
2005-10-08 14:16:09,943 INFO: SSH: 200.194.179.58 has 2 login failure(s). Banned.
2005-10-08 14:16:09,943 WARNING: Ban 200.194.179.58
2005-10-08 14:17:50,920 WARNING: Unban 200.194.179.58
2005-10-08 14:26:45,784 INFO: SSH: 69.3.33.216 has 2 login failure(s). Banned.
2005-10-08 14:26:45,784 WARNING: Ban 69.3.33.216
2005-10-08 14:28:26,761 WARNING: Unban 69.3.33.216
2005-10-08 15:05:15,180 INFO: SSH: 200.194.179.58 has 2 login failure(s). Banned.
2005-10-08 15:05:15,180 WARNING: Ban 200.194.179.58
2005-10-08 15:06:56,161 WARNING: Unban 200.194.179.58
Ou seja, ele informa quem ele bloqueou e depois quem foi desbloqueado após o tempo informado em 'bantime'.
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.