Evitando bruteforce de SSH utilizando o Fail2ban

Publicado por André em 21/12/2009

[ Hits: 13.518 ]

Blog: http://127.0.0.1

 


Evitando bruteforce de SSH utilizando o Fail2ban



Todos sabemos que nos dias de hoje os ataques a força bruta (brute force) são muito comuns e devemos tomar precauções para não sofrermos um ataque dessa espécie. Apresento a vocês o Fail2ban, disponível no packetmanager da maioria das distribuições Linux.

O Fail2ban é uma ferramenta de segurança que tem como função observar as tentativas de login em serviços como SSH, FTP, SMTP etc.

O que ele faz é localizar várias tentativas de login vindas do mesmo IP, bloqueando-o e adicionando regras no firewall iptables caso haja várias tentativas frustradas de login no servidor.

Existe outras formas de bloquear esse tipo de ataque. Aqui no VOL você encontra artigos sobre o assunto. Vale a pena dar uma olhada.

Vamos a instalação e configuração! ;)

Instalando e entendendo como funciona

Nas distribuições Linux Debian e Debian-based você pode instalar via apt-get com o comando:

sudo apt-get install fail2ban

Depois de baixá-lo e instalá-lo vamos dar uma olhada na sua configuração:

sudo vi /etc/fail2ban/jail.conf

Vamos entender as linhas de maior importância:
  • Na linha "ignoreip" se encontram os endereços de IPs que não vão ser bloqueados pelo programa.
  • Na linha "bantime" se encontra o tempo em que o IP ficará banido/bloqueado pelo programa (o tempo é contado em segundos).
  • Na linha "maxretry" temos o número máximo em que o IP pode tentar logar-se no seu servidor até ser bloqueado (recomendo que ponha no máximo 3).
  • A linha "logpath" refere-se ao arquivo de log onde são checadas as tentativas frustradas de login.

Configurando

Antes de editar o arquivo é recomendável que você faça o backup do mesmo. Abra-o com um editor de textos:

sudo vi /etc/fail2ban/jail.conf
ou
sudo gedit /etc/fail2ban/jail.conf

Na linha ignoreip eu adicionei o ip localhost 127.0.0.1, pois você não irá bloquear você mesmo. ;)

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1

Em maxretry eu configurei o bloqueio para cada 4 tentativas de login sem sucesso:

maxretry = 3

Em bantime onde você controla o tempo de banimento coloquei 300, que será 5 minutos.

bantime = 300

Salve o arquivo e reinicie o Fail2ban:

sudo /etc/init.d/fail2ban restart

Pronto! O programa está configurado e poderá ver os IPs bloqueados em /var/log/fail2ban.log.

Outras dicas deste autor

Prism - Transforme sites em aplicativo

return main(); (fatal) - C++

CPU-G: Capturando informações de hardware no Linux

Causando BufferOverflow em servidores rodando o FreeFloat

Iniciando com a linguagem Java

Leitura recomendada

Operadores booleanos

Instalando Tomcat5 no Debian Etch

Instalando o PostgreSQL e pgAdmin3 no Ubuntu

Instalando Pacotes SNAP no Gentoo

Fazendo validação de downloads em PHP

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts