Evitando bruteforce de SSH utilizando o Fail2ban

Publicado por André em 21/12/2009

[ Hits: 16.195 ]

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

Geany - Ferramenta de qualidade para desenvolvimento

DNS forwarding - um DNS universal

Waybackmachine: Relembre os velhos tempos

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

Instalando o Firefox 4 Beta no Linux

Leitura recomendada

Conheça o OFRIS - o congelador de sistema para o Linux!

Instalando o Tema de Ícones Tela Circle

Tunelamento usando SSH

XMMS - Colocando ordem no random

Assistente para converter pacotes .tar em .deb

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts