Uma VPS nova com endereço IP público começa a receber tentativas automáticas de login em poucos minutos. Nada disso é pessoal; os bots simplesmente varrem todos os endereços. Alguns passos básicos bloqueiam quase tudo. Esta lista pressupõe um servidor Ubuntu 24.04 ou Debian 12/13 recém-instalado e leva cerca de quinze minutos.
1. Atualize tudo primeiro
apt update && apt full-upgrade -y
reboot
Entre novamente após a reinicialização. Comece sempre com um sistema totalmente atualizado.
2. Crie um usuário não root
Trabalhar o tempo todo como root torna cada erro de digitação perigoso. Crie um usuário normal com direitos de sudo:
adduser deploy
usermod -aG sudo deploy
3. Configure chaves SSH
No seu próprio computador, crie um par de chaves se não tiver um e copie a metade pública para o servidor:
ssh-keygen -t ed25519 -C "my-vps"
ssh-copy-id deploy@YOUR_SERVER_IP
Abra um segundo terminal e confirme que consegue fazer login como deploy com a chave antes de continuar. Não feche a sessão original até conseguir.
4. Desative o login por senha e o login root
Edite a configuração do daemon SSH:
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
Coloque estas linhas no arquivo:
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
Verifique a sintaxe e recarregue:
sudo sshd -t && sudo systemctl reload ssh
5. Ative um firewall
O UFW é a opção mais simples. Permita o SSH primeiro e depois ligue o firewall:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp # only if you run a web server
sudo ufw enable
sudo ufw status verbose
Abra portas apenas para serviços que você realmente executa. Todo o resto fica fechado por padrão.
6. Adicione o fail2ban
O Fail2ban observa os logs e bane temporariamente os endereços que falham repetidamente no login.
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
Os padrões são adequados para SSH. Como você já desativou as senhas, isso serve principalmente para reduzir o ruído nos logs e o desperdício de CPU.
7. Ative as atualizações automáticas de segurança
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Isso instala os patches de segurança automaticamente. Reinicie de vez em quando para atualizações do kernel, ou deixe a ferramenta fazer isso em um horário tranquilo.
8. Verifique o que está escutando
sudo ss -tulpn
Qualquer coisa escutando em 0.0.0.0 que você não esperava merece investigação. Serviços destinados apenas ao uso local (bancos de dados, caches, painéis de administração) devem escutar em 127.0.0.1.
9. Monitoramento básico e backups
- Acompanhe os logs com
journalctl -u ssh --since todayde vez em quando. - Verifique os recursos com
htopedf -hpara que um disco cheio ou um processo descontrolado não pegue você de surpresa. - Faça backups. Tire um snapshot do servidor antes de grandes mudanças e mantenha uma cópia fora do servidor de tudo o que você não puder recriar.
O que fazer a seguir
Agora você tem um servidor muito mais difícil de invadir do que o padrão. A partir daqui, mantenha o software atualizado, execute cada serviço como seu próprio usuário sem privilégios e exponha apenas o que precisa. Se quiser um túnel privado até o servidor, nosso guia sobre como configurar o WireGuard é um bom próximo passo.
Perguntas frequentes
O que devo fazer primeiro em um VPS novo?
Atualize os pacotes, crie um usuário não root, passe para chaves SSH, desative o login por senha e ative um firewall.
Devo mudar a porta SSH?
Isso reduz o ruído nos logs, mas não é segurança de verdade. Chaves e um firewall importam muito mais.