4

Hardening de Servidores Linux: Como Blindar o SSH com Chaves Ed25519 e Eliminar Ataques de Força Bruta

Fala pessoal!

Basta alocar um IP público qualquer em uma VPS na nuvem ou abrir uma porta para o seu home lab que, em menos de 10 minutos, o seu servidor começa a ser bombardeado por scanners automatizados tentando adivinhar senhas via SSH.

Se você der uma olhada no seu /var/log/auth.log (ou rodar journalctl -u ssh), vai encontrar facilmente centenas ou milhares de tentativas diárias vindas de botnets do mundo inteiro tentando login em contas como root, admin, ubuntu, test e postgres.

Deixar login por senha comum habilitado em servidor público hoje em dia é pedir para ser comprometido.

Resolvi montar este guia direto ao ponto com as 4 medidas obrigatórias que todo desenvolvedor ou administrador de sistemas deve aplicar para zerar essa dor de cabeça:

1. Migrar para chaves Ed25519 (Adeus RSA)

As chaves Ed25519 são muito mais curtas (apenas 68 caracteres), verificam assinaturas com muito mais rapidez e são matematicamente imunes aos problemas de colisão e timing attacks que afetam chaves RSA antigas.

Gere sua chave na sua máquina local:

ssh-keygen -t ed25519 -C "seu-email@dominio.com"
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@ip-do-servidor

2. Desativar senhas no /etc/ssh/sshd_config

Crie um arquivo modular em /etc/ssh/sshd_config.d/99-hardening.conf:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
MaxAuthTries 3

Valide com sudo sshd -t e reinicie com sudo systemctl restart sshd.

3. Subir o Fail2ban com banimento de 24 horas

Com o Fail2ban configurado, qualquer IP que falhar 3 tentativas seguidas é bloqueado no firewall do kernel (nftables) por 24 horas.


Escrevi o tutorial completo com scripts de auditoria e dicas de gerenciamento seguro de chaves lá no meu blog:

👉 Artigo Completo no Vexis Sentinel

Como vocês costumam gerenciar o acesso SSH nos servidores de vocês hoje? Usam chaves puras, chaves de hardware (FIDO2) ou colocam tudo atrás de VPN como Tailscale/WireGuard?

Carregando publicação patrocinada...
1

Meus 2 cents,

Parabens pelo post !

Desativar acessos com senha, migrar chaves de RSA para Ed25519 e colocar o fail2ban para bloquear tentativas de acesso sao otimas medidas para mitigar ataques.

Apenas acrescentaria o uso do crowdsec como possivel substituto do fail2ban (ou talvez atuando junto, dependendo do contexto do servidor).

Como ataques atualmente costumam partir de redes de botnet (com rotacao de IPs/redes), o fail2ban pode demorar a identificar um ataque e ai entra o papel do crowdsec: como eh uma rede colaborativa para identificar ataques, os participantes conseguem identificar com mais rapidez e seguranca determinados tipos de ataques que partem de redes botnets coordenadas, vale a pena dar uma olhada.

Obrigado por compartilhar !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS