Evitando bruteforce de SSH utilizando o Fail2ban

Publicado por André em 21/12/2009

[ Hits: 13.812 ]

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

Getchar(); sendo ignorado? Não mais!

Prism - Transforme sites em aplicativo

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

Nmap online

Compilando com o javac

Leitura recomendada

Dicionário de sinônimos Micha Elvis

Melhorando a interface do Inkscape

Ubuntu - Guia do iniciante

Criando teclas de atalho no Ubuntu 9.04

Funções de diretórios

  

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