Primeiros passos numa VPS Ubuntu: segurança básica em 15 minutos
Assim que uma VPS ganha um IP público, robôs começam a tentar acessar o servidor por SSH. Antes de instalar qualquer aplicação, siga estes passos para deixar seu Ubuntu protegido. Funciona em qualquer provedor: Hostinger, Contabo, Hetzner, Vultr, DigitalOcean ou Oracle.
Antes de começar: mantenha a sessão SSH atual aberta enquanto testa as mudanças em outra janela. Se algo der errado no SSH ou no firewall, você ainda consegue corrigir. A maioria dos provedores também oferece um console de emergência no painel.
1. Acesse a VPS e atualize o sistema
Use o IP e a senha que o provedor enviou:
ssh root@IP-DA-VPS
apt update && apt upgrade -y
Se o kernel for atualizado, reinicie com reboot e conecte de novo.
2. Crie um usuário próprio
Trabalhar sempre como root é arriscado. Crie um usuário com permissão de administrador:
adduser seunome
usermod -aG sudo seunome
3. Configure acesso por chave SSH
No seu computador (Windows PowerShell, macOS ou Linux), gere um par de chaves, caso ainda não tenha:
ssh-keygen -t ed25519
Copie a chave pública para a VPS. No macOS e Linux:
ssh-copy-id seunome@IP-DA-VPS
No Windows, copie o conteúdo de C:\Users\VOCE\.ssh\id_ed25519.pub e, na VPS, cole no arquivo /home/seunome/.ssh/authorized_keys:
sudo -u seunome mkdir -p /home/seunome/.ssh
sudo -u seunome nano /home/seunome/.ssh/authorized_keys
chmod 700 /home/seunome/.ssh
chmod 600 /home/seunome/.ssh/authorized_keys
Teste em uma nova janela: ssh seunome@IP-DA-VPS deve entrar sem pedir a senha do servidor.
4. Desative login de root e por senha
Só faça isso depois de confirmar que a chave funciona. Crie um arquivo de configuração:
sudo nano /etc/ssh/sshd_config.d/99-seguranca.conf
Com o conteúdo:
PermitRootLogin no
PasswordAuthentication no
Aplique e teste o acesso em outra janela:
sudo systemctl restart ssh
Algumas imagens de provedores trazem arquivos próprios em /etc/ssh/sshd_config.d/ que reativam a senha. Se o login por senha continuar funcionando, verifique esses arquivos com sudo sshd -T | grep -i passwordauthentication.
5. Ative o firewall (UFW)
Libere apenas o que você usa. Para um servidor web:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
Alguns provedores também têm firewall no painel (Hostinger, Hetzner, Oracle). Na Oracle Cloud, por exemplo, as portas também precisam ser liberadas na Security List da rede.
Atenção com Docker: portas publicadas com docker run -p passam por fora do UFW. Para serviços internos, publique apenas em 127.0.0.1 (ex.: -p 127.0.0.1:5678:5678) e exponha pela porta 443 com um proxy reverso.
6. Instale o Fail2ban
Ele bloqueia IPs que erram o login várias vezes:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
7. Ative atualizações automáticas de segurança
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
8. Crie um swap (recomendado para VPS com até 4 GB)
O swap evita que o sistema derrube processos quando a memória acaba de repente:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
9. Ajuste o fuso horário
sudo timedatectl set-timezone America/Sao_Paulo
10. Configure backups
Ative os backups ou snapshots do provedor e, para dados importantes, mantenha também uma cópia fora do servidor. Segurança não adianta muito sem backup.
Pronto. E agora?
Seu servidor está com o básico de segurança. Agora você pode instalar Docker, um painel como CloudPanel, ou seguir nosso guia para rodar o n8n numa VPS.