Protegendo servidor SSH com fail2ban


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

Share

    Comments

    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?

      • 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. Ele é eficaz contra o Nmap?

    3. 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.

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    © 2019 All Rights Reserved. Cooperati.