O seu portal de estudos

Protegendo servidor SSH com fail2ban

Posted by Ricardo Pinheiro em 19 de abril de 2011

O SSH é um serviço que facilita a vida de todo administrador GNU/Linux pois permitir acesso a um terminal remoto utilizando um canal seguro por meio de chaves criptográficas (RSA/DSA), mas isso não impede que invasores tentem invadir o seu servidor utilizando scripts com dicionários de senhas e usuários. Só a simples instalação do servidor ssh já basta para as tentativas de invasão terem inicio.

O fail2ban analisa o arquivo de log relacionado com a autenticação de usuários e identifica falhas de login e bloqueia hosts com falhas sucessivas de logins mal-sucedidos. É eficaz na contra força bruta e ataques DoS.

Vamos começar instalando o fail2ban:

# apt-get install fail2ban

Conforme diz a documentação do fail2ban todos os arquivos de configuração devem possuir a extensão .local, o fail2ban normalmente vem preparado para proteger a porta tcp/22 (ssh), mas pode ser preparado facilmente para proteger outras portas.

# cd /etc/fail2ban
# cp jail.conf jail.local

Vamos fazer alguns ajustes: Quais IPs não serão afetados, tempo de banimento (segundos), e quantas tentativas permitidas antes de banir

##
 
ignoreip = 127.0.0.1 10.8.1.0/24
bantime = 1800
maxretry = 3
 
## Para qual email enviar as mensagens do fail2ban
 
destemail = seu_usuario@localhost
 
## O fail2ban cria 2 chains (fail2ban-ssh e fail2ban-ssh-ddos) ligadas a chain INPUT
## e utiliza -m multiport para caso de mais de uma porta ser utilizada.
 
banaction = iptables-multiport
 
## Na seção JAILS quais serviços serão monitorados pelo fail2ban:
 
[ssh]
 
enable = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
 
##

Alterações realizadas, falta apenas reiniciar o serviço do fail2ban:

# /etc/init.d/fail2ban restart

O arquivo de log do fail2ban é: /var/log/fail2ban.log

Espero que tenham gostado post e não se esqueçam de assinar o portal.

Abraços,

Ricardo Pinheiro

6 Respostas to “Protegendo servidor SSH com fail2ban”

  1. Super Ricardo, me tire uma dúvida. Tem como eu colocar alguma conta fora do Jail? Pq na verdade eu queria que uma das contas tivesse acesso a todo o /, utilizando o Jail, eu creio que o usuário ficaria dentro de uma certa estrutura. Correto?

    • Ricardo Pinheiro said

      Mario,

      O fail2ban não lida com jaula chroot, apenas monitora tentativas de acesso, e caso o No. máximo seja alcançado o host será bloqueado. Caso seja do seu interesse liberar uma rede ou host/IP específico basta ir em jail.local localizar a opção “ignoreip” e adicionar os hosts/IPs Rede/CIDR para liberar.

      Abraços,

      Ricardo Pinheiro

  2. Marcos Alfredo said

    Ele é eficaz contra o Nmap?

  3. Ederson said

    Logo no início é definido “maxretry = 3”, porém na seção SSH é redefinido para “maxretry = 6”. Qual prevalece? Ou seja, serão permitidas até 3 tentativas sem sucesso ou 6? abs, Ederson.

    • Ricardo Pinheiro said

      Ederson,

      Na seção global estão os valores padrões que podem ser modificados em cada jaula (jail), portanto o que prevalece é o “maxretry = 6”.

      Abraços,

      Ricardo Pinheiro

Deixar mensagem para Mario Ribeiro Cancelar resposta