Proteja sua VPS: uma checklist que você termina em 20 minutos
Este guia foi traduzido do inglês. Algumas páginas vinculadas estão disponíveis apenas em inglês.
Os passos concretos que barram a esmagadora maioria dos ataques oportunistas.
Você nunca vai deixar um servidor perfeitamente seguro. Mas pode torná-lo um alvo pouco atraente em cerca de vinte minutos, o que desvia praticamente todos os ataques automatizados.
1. SSH somente com chave
Explicado por completo em Chaves SSH e acesso. Este é o passo individual de maior valor. A força bruta de senhas é o método de invasão mais comum na internet pública e isso a elimina.
PasswordAuthentication no
PermitRootLogin prohibit-password2. Um firewall que nega por padrão
Permita apenas o que você realmente serve. No Debian/Ubuntu:
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH — see the warning below
ufw allow 80,443/tcp # web
ufw enable
ufw status verboseNa família RHEL, use o firewalld:
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadAviso: ative o firewall com a sessão SSH aberta e confirme que o SSH está permitido antes de desconectar. Se você mudar a porta SSH, libere a nova porta primeiro. Veja Noções básicas de firewall para os detalhes, incluindo nossa interface de malha privada, que deve estar sempre liberada.
3. Atualizações de segurança automáticas
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades # choose yes
# verify:
systemctl status unattended-upgrades --no-pagerNa família RHEL, o dnf-automatic faz o mesmo trabalho. Patches de segurança automáticos fecham a janela entre a publicação de uma vulnerabilidade e sua exploração — que, na prática, costuma ser de horas.
4. Fail2ban
Bloqueia um IP após várias tentativas de login malsucedidas, transformando uma tentativa infinita de força bruta em um beco sem saída. Veja Noções básicas do Fail2ban.
apt install -y fail2ban
systemctl enable --now fail2ban5. Desative o que você não usa
Todo serviço que escuta é uma possível porta de entrada.
ss -tulpn # what is listening, and who owns it
systemctl --type=service --state=running # what is runningPare e desative tudo o que você não pediu. Um servidor mínimo é um servidor seguro.
6. Execute serviços como usuários sem privilégios
Bancos de dados, aplicações web e workers nunca devem rodar como root. A maioria dos pacotes cria seu próprio usuário de serviço automaticamente; use-o. Se você escrever seu próprio arquivo de unidade, defina User= e Group= explicitamente.
7. Proteja os segredos
Nunca faça commit de segredos no git. Use arquivos de ambiente com
chmod 600.Nunca deixe um arquivo de configuração legível por todos se ele contiver senha ou chave.
Prefira credenciais por serviço a uma única credencial de administrador compartilhada.
8. Tenha um caminho de volta
Confirme que o console de recuperação em /panel/vps funciona antes de precisar dele.
Faça um snapshot antes de mudanças arriscadas — veja Redimensionar, snapshot e reinstalar.
Mantenha pelo menos uma chave SSH guardada em um lugar diferente do seu notebook do dia a dia.
9. Monitore
Um servidor que você nunca olha é um servidor que você não consegue defender. Adicione uma verificação de monitoramento e leia seus logs de vez em quando — Lendo seus logs mostra como.
Opcional: detecção de intrusão
Para hosts de maior valor, o CrowdSec (bloqueio colaborativo, licença MIT) e o Wazuh (detecção de intrusão em hosts) acrescentam profundidade real. Ambos estão documentados em nossos guias de hospedagem de aplicações.
Leitura relacionada