Artigo - Como proteger uma VPS
18/04/2026
1. Configuração inicial de segurança
Atualizar o sistema
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim git ufw
Opcional (remove pacotes desnecessários):
sudo apt autoremove -y
Criar usuário não-root
adduser deploy
usermod -aG sudo deploy
Trocar para o novo usuário:
su - deploy
Configurar SSH seguro
1. Gerar chave SSH (na sua máquina local)
ssh-keygen -t ed25519 -C "seu-email"
2. Enviar chave para o servidor
ssh-copy-id deploy@IP_DA_VPS
3. Editar configuração do SSH
sudo nano /etc/ssh/sshd_config
Altere:
Port 2222 # muda porta padrão
PermitRootLogin no # desabilita root
PasswordAuthentication no # desabilita senha
PubkeyAuthentication yes
Reiniciar SSH:
sudo systemctl restart ssh
⚠️ Antes de sair, teste:
ssh deploy@IP_DA_VPS -p 2222
🔥 2. Firewall (UFW)
Ativar UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing
Permitir SSH (nova porta):
sudo ufw allow 2222/tcp
Se for servidor web:
sudo ufw allow 80,443/tcp
Ativar:
sudo ufw enable
Ver status:
sudo ufw status verbose
🛡️ 3. Proteção contra força bruta (Fail2Ban)
Instalar
sudo apt install fail2ban -y
Configuração básica
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Exemplo recomendado:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = 2222
Reiniciar:
sudo systemctl restart fail2ban
Ver status:
sudo fail2ban-client status sshd
⚙️ 4. Hardening do sistema
Desativar serviços desnecessários
sudo systemctl list-unit-files --type=service
Desativar exemplo:
sudo systemctl disable avahi-daemon
sudo systemctl stop avahi-daemon
Configurações de segurança do kernel
sudo nano /etc/sysctl.conf
Adicionar:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
Aplicar:
sudo sysctl -p
Permissões importantes
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
🌐 5. Segurança para aplicações web
Nginx seguro
sudo apt install nginx -y
Config básica segura (/etc/nginx/nginx.conf):
server_tokens off;
Proteções úteis
Limitar requisições (rate limit)
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
HTTPS com Let's Encrypt
Instalar:
sudo apt install certbot python3-certbot-nginx -y
Gerar certificado:
sudo certbot --nginx -d seu-dominio.com
Auto-renovação:
sudo systemctl status certbot.timer
Proteção contra ataques web
- Use WAF como:
- ModSecurity
- Sempre:
- sanitize inputs
- use prepared statements (SQL)
- valide dados no backend
📊 6. Monitoramento e logs
Logs importantes
/var/log/auth.log
/var/log/syslog
/var/log/nginx/access.log
/var/log/nginx/error.log
Ferramentas úteis
Instalar:
sudo apt install htop iotop nload -y
Monitoramento:
htop
🧬 7. Proteção contra malware/rootkits
Instalar ferramentas
sudo apt install rkhunter chkrootkit clamav -y
Atualizar:
sudo rkhunter --update
sudo freshclam
Escanear:
sudo rkhunter --check
sudo chkrootkit
sudo clamscan -r /
💾 8. Backups
Estratégia recomendada
- Regra 3-2-1:
- 3 cópias
- 2 locais diferentes
- 1 offsite
Backup com rsync
rsync -avz /var/www user@backup-server:/backup/
Automatizar:
crontab -e
Exemplo diário:
0 2 * * * rsync -az /var/www backup@IP:/backup/
🔄 9. Atualizações automáticas
Instalar:
sudo apt install unattended-upgrades -y
Configurar:
sudo dpkg-reconfigure unattended-upgrades
🚀 10. Dicas avançadas
VPN (WireGuard)
sudo apt install wireguard -y
Use para acesso administrativo → evita exposição SSH.
Port Knocking
Instalar:
sudo apt install knockd -y
Permite abrir SSH só após sequência de portas.
IDS/IPS (Snort)
sudo apt install snort -y
Detecta tráfego malicioso.
Rate limiting via UFW
sudo ufw limit 2222/tcp
🧠 Boas práticas finais
- Nunca exponha serviços desnecessários
- Use sempre chaves SSH
- Monitore logs regularmente
- Atualize frequentemente
- Use Cloudflare ou CDN para sites públicos
- Separe ambientes (prod/dev)
✅ Checklist rápido
- SSH sem senha
- Root desativado
- Firewall ativo
- Fail2Ban ativo
- HTTPS configurado
- Backups funcionando
- Atualizações automáticas
Ver todos os posts