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 = [email protected]
 
## 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

    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 uma resposta

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

    © 2019 All Rights Reserved. Cooperati. 

    Deseja uma consultoria especializada?