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:
-
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:
sqlsudo apt update sudo apt install fail2ban -
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 é ojail.conf, que contém as configurações padrão para diferentes serviços. No entanto, é recomendável não editar diretamente ojail.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:bashsudo nano /etc/fail2ban/jail.d/ssh.confE 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 = 1wenabled: 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.
-
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.
-
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.
-
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,findtimeebantime, 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.
-
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.
-
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.

