Bloqueando Brute Force Com o Fail2ban
Pessoal hoje vamos ver como se proteger do ataque do tipo brute force, utilizaremos uma ferramenta bem simples porem extremamente eficiente chamada Fail2Ban, ele verifica os logs do sistema e identifica as tentativas de acesso há diversos serviços como: SSH, SASL, POSTFIX, PROFTP, DNS, APACHE, etc… Utilizando o métodode Brute Force, quando algum tipo de tentativa maliciosa é identificada ele realiza o bloqueio do ip do atacante utilizando o iptables ou o tcp wrappers.
Ele pode ser encontrado em sua página oficial http://www.fail2ban.org ou instalado pelo apt-get das distribuições derivadas do Debian. Estamos utilizando o ubuntu server 14.04 para essa demonstração. Para realizar a instalação basta executar:
# apt-get install fail2ban
Depois do fail2ban instalado vamos fazer algumas modificações:
# pico /etc/fail2ban/jail.conf
Por padrão o fail2ban deixa como padrão o tempo de bloqueio em 10 minutos e a tentativas de acesso 3, as três primeiras linhas do campo DEFAULT fica assim:
Ignoreip = 127.0.0.1
Bantime = 600
Maxretry = 3
IGNOREIP: É o campo onde definimos os IP’s que não serão bloqueados pelo Fail2Ban.
BANTIME: É o tempo que o IP do “atacante” ficará bloqueado.
MAXRETRY: É o numero de tentativas que serão permitidas antes do bloqueio.
Nesse post iremos abordar somente a configuração do SSH, mas os demais serviços seguem a mesma lógica. No campo SSH deixe as linhas como iguais como mostrado a baixo:
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Aqui utilizei a porta 22, altere o numero da porta no .conf de vocês caso o ssh esteja rodando em outra porta, e a linha “maxretry” coloquei três pois acho difícil um usuário autorizado para logar no ssh errar sua senha mais de três vezes, mas vocês podem colocar o numero de tentativas que quiserem.
Salvem o arquivo e reinicie o fail2ban:
# /etc/init.d/fail2ban restart
Agora tente acessar seu servidor e erre sua senha propositalmente 3 vezes para ver o fail2ban funcionando, depois dê o seguinte comando no servidor para ver se o ip do “atacante” foi bloqueado;
# iptables -nL
É isso ai pessoal, caso tenham alguma dúvida é só deixar nos comentários, espero que ajude.
- Metasploit Framework de cabo a rabo – Parte 6 - 4 de junho de 2018
- Metasploit Framework de cabo a rabo – Parte 5 - 28 de maio de 2018
- CEH – Scanning Networks – Parte 2 - 24 de maio de 2018