Evitando bruteforce de SSH utilizando o Fail2ban

Publicado por André em 21/12/2009

[ Hits: 13.365 ]

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

Resolvendo problema com logout ao abrir vídeos

Brincando com IP no PHP

Ngrep - uma ótima ferramenta para análise de pacotes

Derrubando Linux em 10 segundos

Prism - Transforme sites em aplicativo

Leitura recomendada

Windows vs Linux nos PCs

Flash player em plataforma 64 bits (instalando com .deb)

Rsync sem senha: Como fazer rsync sem precisar de chaves RSA

Os poderes da super vaca

Agendamento de tarefas no Linux (cron e at)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário