DevOps

Proteção SSH com Fail2Ban

Proteger um servidor SSH é fundamental para garantir a segurança de um sistema Ubuntu. O SSH (Secure Shell) é um protocolo que permite acessar e gerenciar um sistema de forma remota através de uma conexão criptografada. No entanto, devido à sua natureza remota, o SSH é um alvo comum para tentativas de acesso não autorizado por parte de hackers ou bots maliciosos. Uma maneira eficaz de proteger um servidor SSH é utilizando o Fail2Ban, uma ferramenta de segurança que monitora logs de serviços como o SSH e toma medidas automáticas contra endereços IP que exibem comportamento suspeito.

O Fail2Ban funciona monitorando logs específicos, como o log de autenticação do SSH, em busca de padrões que possam indicar tentativas de acesso não autorizado. Quando um padrão suspeito é detectado, o Fail2Ban toma medidas para bloquear o endereço IP do qual a atividade suspeita está vindo, seja adicionando-o a uma lista de bloqueio temporário (ban) ou executando uma ação personalizada, como enviar um e-mail de notificação para o administrador do sistema.

A implementação do Fail2Ban para proteger o SSH em um servidor Ubuntu envolve os seguintes passos:

  1. Instalar o Fail2Ban: O Fail2Ban está disponível nos repositórios padrão do Ubuntu e pode ser instalado facilmente utilizando o gerenciador de pacotes apt. Execute o seguinte comando no terminal para instalar o Fail2Ban:

    sql
    sudo apt update sudo apt install fail2ban
  2. Configurar o Fail2Ban para monitorar o SSH: O Fail2Ban é configurado através de arquivos de configuração localizados no diretório /etc/fail2ban. O arquivo de configuração principal é o jail.conf, que contém as configurações padrão para diferentes serviços. No entanto, é recomendável não editar diretamente o jail.conf, mas sim criar um arquivo de configuração personalizado em /etc/fail2ban/jail.d/.

    Para configurar o Fail2Ban para monitorar o SSH, crie um arquivo de configuração chamado, por exemplo, ssh.conf:

    bash
    sudo nano /etc/fail2ban/jail.d/ssh.conf

    E adicione o seguinte conteúdo ao arquivo:

    makefile
    [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 1d bantime = 1w
    • enabled: Indica se a regra está habilitada.
    • port: A porta na qual o serviço está sendo executado.
    • filter: O filtro a ser aplicado aos logs.
    • logpath: O caminho para o arquivo de log a ser monitorado.
    • maxretry: O número máximo de tentativas permitidas antes que uma ação seja tomada.
    • findtime: O período de tempo durante o qual as tentativas de acesso são contadas.
    • bantime: O tempo pelo qual um endereço IP é bloqueado após exceder o número máximo de tentativas.
  3. Reiniciar o serviço Fail2Ban: Após configurar as regras, reinicie o serviço Fail2Ban para aplicar as alterações:

    sudo systemctl restart fail2ban

Com essas configurações, o Fail2Ban estará monitorando o log de autenticação do SSH em busca de tentativas de acesso não autorizado. Se um endereço IP exceder o número máximo de tentativas permitidas dentro do período de tempo especificado, ele será automaticamente bloqueado pelo Fail2Ban, adicionando-o à lista de bloqueio temporário.

É importante monitorar regularmente os logs do Fail2Ban para garantir que ele esteja funcionando corretamente e ajustar as configurações conforme necessário para equilibrar a segurança com a conveniência de acesso legítimo ao servidor SSH. Além disso, outras medidas de segurança, como a implementação de chaves SSH, também são recomendadas para fortalecer a segurança do servidor.

“Mais Informações”

Claro, vamos aprofundar um pouco mais nos detalhes sobre como o Fail2Ban protege o SSH em um servidor Ubuntu e como suas configurações podem ser ajustadas para atender às necessidades específicas de segurança.

  1. Funcionamento do Fail2Ban:

    O Fail2Ban funciona analisando os logs de serviços específicos em busca de padrões predefinidos que indicam atividade maliciosa. No caso do SSH, ele monitora o arquivo de log de autenticação, geralmente localizado em /var/log/auth.log. Quando detecta um padrão suspeito, como várias tentativas de login fracassadas em um curto período de tempo, o Fail2Ban toma medidas para proteger o servidor bloqueando o endereço IP do qual a atividade suspeita está vindo.

    O bloqueio pode ser temporário, geralmente por um período de tempo especificado em segundos, minutos, horas ou dias, dependendo da configuração do administrador do sistema. Durante o período de bloqueio, o endereço IP não terá permissão para estabelecer uma conexão com o serviço monitorado, neste caso, o SSH.

  2. Configurações do Fail2Ban:

    As configurações do Fail2Ban podem ser ajustadas de acordo com as necessidades específicas de segurança e ambiente do servidor. Além das configurações básicas mencionadas anteriormente, como maxretry, findtime e bantime, existem outras opções disponíveis para personalizar o comportamento do Fail2Ban:

    • ignoreip: Permite especificar endereços IP que devem ser ignorados pelo Fail2Ban, útil para evitar o bloqueio de IPs confiáveis, como o do administrador do sistema.
    • banaction: Define a ação a ser tomada quando um endereço IP é bloqueado. O padrão é iptables-multiport, que adiciona uma regra de firewall para bloquear o tráfego do endereço IP bloqueado, mas outras ações, como enviar um e-mail de notificação, também são possíveis.
    • backend: Especifica o backend a ser usado para armazenar dados persistentes, como o estado dos endereços IP bloqueados. O padrão é auto, que seleciona automaticamente o melhor backend disponível no sistema.

    Essas são apenas algumas das opções de configuração disponíveis no Fail2Ban. A documentação oficial do Fail2Ban e recursos online fornecem informações detalhadas sobre todas as opções de configuração disponíveis e suas respectivas utilizações.

  3. Monitoramento e Manutenção:

    Uma vez configurado, é importante monitorar regularmente os logs do Fail2Ban para garantir que ele esteja funcionando corretamente e protegendo o servidor contra atividades maliciosas. Isso inclui verificar se os endereços IP estão sendo bloqueados conforme esperado e ajustar as configurações conforme necessário para equilibrar a segurança com a conveniência de acesso legítimo ao servidor SSH.

    Além disso, é recomendável manter o Fail2Ban e o sistema operacional Ubuntu atualizados para garantir que quaisquer vulnerabilidades conhecidas sejam corrigidas e que o servidor permaneça protegido contra ameaças emergentes.

  4. Considerações de Segurança Adicionais:

    Embora o Fail2Ban seja uma ferramenta eficaz para proteger o SSH, é importante implementar outras práticas recomendadas de segurança, como:

    • Usar chaves SSH em vez de senhas para autenticação.
    • Desabilitar o acesso de root por SSH e usar contas de usuário não privilegiadas para acessar o servidor, com privilégios elevados concedidos apenas quando necessário.
    • Configurar firewalls para restringir o acesso ao servidor apenas a partir de endereços IP confiáveis.
    • Manter todos os softwares, incluindo o sistema operacional e aplicativos de servidor, atualizados com as últimas correções de segurança.

    Ao implementar uma abordagem em camadas para a segurança do servidor, que inclui o Fail2Ban juntamente com outras práticas recomendadas, os administradores de sistema podem reduzir significativamente o risco de comprometimento do servidor e garantir a integridade e disponibilidade dos serviços hospedados.

Botão Voltar ao Topo