Evitando bruteforce de SSH utilizando o Fail2ban

Publicado por André em 21/12/2009

[ Hits: 15.320 ]

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

Java: Lendo a entrada do teclado

Derrubando Linux em 10 segundos

Rodando diversos formatos de vídeo sem problemas em seu Debian

Switch em C, e se a opção for inválida?

Identificando SO através da linguagem Java

Leitura recomendada

Samba - Configurando grupo de administradores

Instalando F1 Challenge no Linux

Configuração do Ioncube Loader no Centos 64 bit para ambiente CPanel (painel de controle para servidores web hosting)

Ativando os links do aMule no Firefox

APT-GET: Resolvendo problemas com chave pública

  

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