Los servidores Linux son la columna vertebral del internet mundial debido a su estabilidad y seguridad inherentes. Sin embargo, ningún sistema operativo funciona perfectamente sin un mantenimiento continuo. Sin rutinas preventivas, los logs acumulados llenan los discos y las vulnerabilidades no corregidas se convierten en vectores de invasión.
A continuación, presentamos las principales rutinas recomendadas para mantener sus servidores Linux saludables.
1. Actualizaciones de Paquetes de Seguridad (Patch Management)
Nuevas fallas de seguridad se descubren a diario. Actualizar el kernel y las bibliotecas del sistema es la defensa más básica y eficiente.
Buenas prácticas:
- Configure actualizaciones automáticas solo para parches críticos de seguridad usando herramientas como
unattended-upgradesen Ubuntu/Debian. - Pruebe las actualizaciones de paquetes generales y de lenguajes de programación (como Node.js o Python) en un entorno de pruebas separado antes de aplicarlas en el servidor de producción.
2. Monitoreo Activo y Limpieza de Disco
El agotamiento del espacio en disco es una de las mayores causas de caídas de bases de datos. Si el disco alcanza el 100% de su capacidad, la base de datos (como PostgreSQL o MySQL) se bloqueará para evitar la corrupción de archivos.
Qué hacer:
- Configure la rotación automática de logs (
logrotate) para comprimir y eliminar logs del sistema y de los servidores web después de un período determinado. - Monitoree constantemente el crecimiento del directorio
/var/logy elimine paquetes huérfanos del gestor de paquetes (ej:apt cleanoyum clean all).
3. Hardening y Configuración de Firewalls
Proteger los puertos de entrada del servidor reduce drásticamente la probabilidad de ataques de fuerza bruta.
Pasos cruciales:
- Cambie el puerto SSH por defecto: Cambiar el puerto estándar
22a un puerto alto personalizado reduce más del 90% de los intentos automatizados de bots. - Desactive el inicio de sesión por contraseña: Configure SSH para aceptar conexiones exclusivamente mediante llaves públicas criptográficas (llaves SSH).
- Configure Fail2Ban: Herramienta que monitorea logs y bloquea temporalmente en la tabla de firewall (iptables/ufw) a los IPs que intenten inicios de sesión fallidos repetidamente.
4. Comandos de la rutina semanal
Actualización de seguridad en Ubuntu, sin reboot automático. El dry-run muestra lo que entraría:
sudo apt install -y unattended-upgrades
sudo systemctl enable --now unattended-upgrades
sudo unattended-upgrade --dry-run
Disco y logs. journalctl --vacuum-time borra journal de más de 14 días. apt clean quita la caché de paquetes ya instalados:
df -h / /var
sudo du -xh /var/log | sort -h | tail
sudo journalctl --vacuum-time=14d
sudo apt clean
sudo logrotate -d /etc/logrotate.d/nginx
logrotate -d simula. No rota el archivo. Si Nginx no está instalado, la ruta no existe y el comando avisa.
SSH solo con clave, en un drop-in, sin editar el archivo principal. Mantenga la sesión actual abierta y pruebe un segundo login antes de cerrarla:
sudo tee /etc/ssh/sshd_config.d/99-hardening.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl reload ssh
Fail2ban lee el log de SSH y bloquea la IP que falla la clave varias veces:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
sshd -t sin salida es la configuración válida. Un error de sintaxis aquí, si hubiera reiniciado en lugar de recargar, cerraría el acceso.
Conclusión
El mantenimiento preventivo no es una pérdida de tiempo, sino una inversión para evitar pérdidas operativas. Adoptar estas prácticas garantiza que su aplicación continúe en línea y que la información de su negocio esté segura de ataques externos.