Guía Forense para Apagados Inesperados en VPS
Cuando tu VPS se apaga inesperadamente, necesitas respuestas. Esta guía sigue un enfoque forense para descubrir qué sucedió antes del apagado.
1️⃣ ¿Cuándo y cómo se apagó el servidor?
last -x shutdown reboot | head -20 journalctl --list-boots
Esto muestra los eventos de apagado y los arranques anteriores con su ID.
2️⃣ ¿Qué pasó justo antes del apagado?
journalctl --since "1 hour ago" --no-pager journalctl -b -1 --no-pager
Estos comandos muestran los eventos antes del último arranque.
3️⃣ ¿Hubo errores críticos o fallos de hardware?
journalctl -p 3 -xb --no-pager dmesg --level=err,warn | tail -50 dmesg | grep -i "out of memory"
Estos registros revelan problemas graves en el sistema.
4️⃣ ¿Hubo intentos de acceso sospechosos?
cat /var/log/auth.log | grep -E "Failed|Accepted|session" | tail -50 grep "Failed password" /var/log/auth.log | tail -20 who -a
Estos registros muestran accesos fallidos y sesiones activas antes del apagado.
5️⃣ ¿Se ejecutó algún comando sospechoso?
cat ~/.bash_history | tail -50 cat ~/.bash_history | grep -E "shutdown|reboot"
Muestra los últimos comandos ejecutados en la sesión.
6️⃣ ¿Hubo actualizaciones o cambios en paquetes?
cat /var/log/apt/history.log | tail -50 cat /var/log/dpkg.log | grep "install\|upgrade" | tail -50
Revela si una actualización pudo haber causado el apagado.
7️⃣ ¿Se quedó sin espacio en disco?
df -h du -sh /* 2>/dev/null | sort -h | tail -10
Puedes verificar si el sistema colapsó por falta de espacio.
8️⃣ ¿Fallaron servicios críticos?
systemctl list-units --failed cat /var/log/apache2/error.log | tail -50 cat /var/log/nginx/error.log | tail -50 cat /var/log/mysql/error.log | tail -50
Revisa si servicios clave dejaron de funcionar antes del apagado.
📌 Conclusión
Siguiendo estos pasos, puedes determinar la causa del apagado:
- ✅ Fallo interno
- ✅ Falta de recursos
- ✅ Actualización fallida
- ✅ Acceso sospechoso
🚨 Seguridad en VPS: Protección ante Ataques SSH
Si detectaste intentos de acceso no autorizados, sigue estas medidas de seguridad.
- 1️⃣ Bloquear IPs sospechosas:
sudo iptables -A INPUT -s 220.196.249.122 -j DROP sudo ufw deny from 220.196.249.122
- 2️⃣ Instalar Fail2Ban:
sudo apt update && sudo apt install fail2ban -y sudo systemctl enable fail2ban --now sudo fail2ban-client status sshd
- 3️⃣ Cambiar el puerto SSH:
sudo nano /etc/ssh/sshd_config # Cambia Port 22 a otro número sudo systemctl restart ssh
- 4️⃣ Deshabilitar el acceso SSH para root:
sudo nano /etc/ssh/sshd_config # Cambia PermitRootLogin yes -> no sudo systemctl restart ssh
- 5️⃣ Habilitar solo autenticación por clave pública:
sudo nano /etc/ssh/sshd_config # Cambia PasswordAuthentication no # Asegura que PubkeyAuthentication yes esté activado sudo systemctl restart ssh
- 6️⃣ Revisar accesos exitosos:
grep "Accepted" /var/log/auth.log | tail -20
Con estas medidas, mejoras la seguridad y evitas ataques en tu VPS. 🛡️💻