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.

Ricardo Galossi
Siga me

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão.Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.
Ricardo Galossi
Siga me

Últimos posts por Ricardo Galossi (exibir todos)

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão. Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.

Deixe seu comentário