Guía práctica de hardening en Linux
El hardening (o endurecimiento del sistema) es el proceso de reducir la superficie de ataque de un servidor, minimizando las vulnerabilidades y mejorando su resistencia frente a amenazas.
En esta guía aprenderás, paso a paso, cómo aplicar buenas prácticas de seguridad en tu servidor Linux, desde la gestión de usuarios hasta la protección de servicios y registros del sistema.
Mantén tu sistema actualizado
Un sistema desactualizado es uno de los principales vectores de ataque. Las actualizaciones corrigen vulnerabilidades conocidas, por lo que mantener tu distribución al día debe ser una prioridad.
|
|
Además, puedes habilitar actualizaciones automáticas para paquetes críticos:
|
|
Esto garantizará que tu sistema reciba parches de seguridad incluso si olvidas actualizarlos manualmente.
Gestión segura de usuarios y permisos
Controlar quién puede acceder al sistema es esencial. Algunas recomendaciones:
-
Deshabilita o elimina cuentas innecesarias:
Cada cuenta es un posible punto de entrada. Usasudo deluserosudo usermod -L usuariopara desactivarlas. -
Evita el uso del usuario root:
Trabaja con una cuenta estándar y usasudopara tareas administrativas.1 2sudo adduser admin sudo usermod -aG sudo admin -
Usa contraseñas fuertes o autenticación multifactor:
Apóyate en herramientas comopam_cracklibolibpam-pwqualitypara reforzar políticas de contraseñas. -
Revisa permisos de archivos críticos:
1 2sudo chmod 600 /etc/shadow sudo chmod 644 /etc/passwd
Configura un SSH seguro
SSH es la puerta de entrada más usada a los servidores Linux, por lo que merece especial atención.
Edita el archivo de configuración:
|
|
Y aplica las siguientes medidas:
- Cambia el puerto por defecto (por ejemplo, al 2222):
1Port 2222 - Desactiva el login directo de root:
1PermitRootLogin no - Usa autenticación con clave pública:
1PasswordAuthentication no - Habilita solo los protocolos seguros:
1Protocol 2
Finalmente, reinicia el servicio:
|
|
Firewall y servicios
Un firewall bien configurado es la primera línea de defensa frente a accesos no deseados.
En Ubuntu y derivados, UFW (Uncomplicated Firewall) simplifica esta tarea:
|
|
Además:
- Desactiva servicios innecesarios:
1 2sudo systemctl disable nombre_servicio sudo systemctl stop nombre_servicio - Lista los servicios activos:
1 2sudo ss -tuln sudo systemctl list-unit-files --type=service
Cuantos menos servicios en ejecución, menor será la superficie de ataque.
Monitoreo y registros
Un servidor seguro no solo se protege, también se vigila.
Configura herramientas que te alerten ante comportamientos sospechosos.
-
Fail2ban: bloquea IPs que realizan intentos de acceso fallidos repetidos.
1 2sudo apt install fail2ban sudo systemctl enable fail2ban -
Auditd: registra eventos importantes del sistema.
1 2sudo apt install auditd sudo systemctl enable auditdPuedes revisar los logs con:
1sudo aureport -a -
Revisión periódica de logs: Los archivos más relevantes se encuentran en
/var/log/:1 2 3/var/log/auth.log /var/log/syslog /var/log/fail2ban.log
Analizar estos registros te permitirá detectar patrones de ataque o configuraciones inseguras.
Medidas adicionales de hardening
Si quieres ir un paso más allá:
- Instala AppArmor o SELinux para control de acceso obligatorio (MAC).
- Configura logs remotos o alertas por correo.
- Implementa copias de seguridad cifradas y regulares.
- Usa integridad de archivos con herramientas como
AIDEoTripwire.
Conclusión
El hardening en Linux no es una acción puntual, sino un proceso continuo.
Aplicar las prácticas básicas que hemos visto —mantener el sistema actualizado, controlar usuarios, asegurar SSH, configurar un firewall y monitorizar los registros— puede marcar la diferencia entre un servidor seguro y uno vulnerable.
Dedicar tiempo a reforzar la seguridad desde el principio te ahorrará muchos problemas en el futuro.
Recuerda: la mejor defensa es la prevención.