Dsar SysAdmin

Hardening básico en Linux

Todos hemos tenido ese servidor recién instalado que huele a “por favor, hackéame”. Antes de instalar servicios, abrir puertos o ponerlo en producción, conviene dedicar unos minutos a dejarlo mínimamente blindado. En esta guía te muestro el hardening básico que aplico siempre que preparo un servidor Linux: nada de teoría aburrida, solo comandos y configuraciones reales.

📡 Arquitectura de seguridad

Antes de tocar nada, viene bien tener un mapa mental claro de lo que vamos a reforzar. No se trata de montar un búnker, sino de cubrir los puntos más críticos para que tu servidor deje de ser un objetivo fácil.

+------------------------------------------------------+
|                 HARDENING LINUX                      |
+------------------------------------------------------+
|  SSH seguro     |  Permisos y usuarios               |
|  Firewall UFW   |  Auditoría (auditd)                |
|  Fail2Ban       |  Logs y monitorización             |
+------------------------------------------------------+

🔐 Endurecimiento de SSH

SSH es la puerta principal. Si está mal configurada, da igual lo que hagas después. Aquí empezamos por lo básico: reducir superficie de ataque y evitar accesos triviales.

# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers daniel

Cambiar el puerto no te hace invulnerable, pero reduce ruido. Desactivar el login por root es casi obligatorio si quieres dormir tranquilo, y la autenticación por clave debería ser el estándar en cualquier entorno serio.

daniel@server:~$ sudo systemctl restart ssh
daniel@server:~$ sudo ss -tuna | grep 2222

Si ves el puerto escuchando en el nuevo número, vas por buen camino.

🧩 Permisos y usuarios

Aquí es donde muchos servidores fallan: permisos demasiado abiertos, usuarios que ya no deberían existir, servicios escribiendo donde no deben… Un par de comprobaciones rápidas pueden ahorrarte muchos problemas más adelante.

# Buscar archivos con permisos peligrosos
$ sudo find / -type f -perm /o+w

# Revisar sudoers
$ sudo visudo

Si encuentras cosas raras, corrige antes de seguir. Un servidor con permisos mal puestos es como una casa con las ventanas abiertas: puede aguantar un tiempo, pero no es buena idea.

🧱 Firewall UFW

UFW es simple, pero suficiente para la mayoría de servidores web. La idea es clara: por defecto, todo cerrado salvo lo que realmente necesitas.

$ ufw default deny incoming
$ ufw default allow outgoing
$ ufw allow 2222/tcp
$ ufw allow 80/tcp
$ ufw enable

Consejo de veterano: activa UFW solo después de permitir tu puerto SSH. Casi todos hemos aprendido esto por las malas al menos una vez.

🚫 Fail2Ban

Fail2Ban es como un portero de discoteca: no evita que vengan, pero echa rápido a los pesados. Analiza los logs y banea IPs que se comportan de forma sospechosa.

# /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled  = true
port     = 2222
maxretry = 5
bantime  = 3600
daniel@server:~$ sudo fail2ban-client status sshd

Si ves IPs baneadas, significa que alguien ya estaba intentando entrar. Bienvenido a Internet.

📋 Auditoría con auditd

Auditd te permite saber qué ha pasado cuando algo huele raro. No es la herramienta más amigable del mundo, pero es muy útil para tener trazabilidad de cambios críticos.

# /etc/audit/rules.d/audit.rules
-w /etc/passwd -p wa -k passwd_changes
-w /etc/ssh/sshd_config -p wa -k ssh_config

Con estas reglas tendrás registro de modificaciones en ficheros sensibles como /etc/passwd o la configuración de SSH.

⚙️ Retos y soluciones

🔸 Reto: Bloqueo accidental por firewall

Uno de los clásicos: activas el firewall sin permitir antes el puerto SSH y te quedas fuera. La solución pasa por ser ordenado y no correr más de la cuenta.

$ ufw allow 2222/tcp
$ ufw enable

🔸 Reto: Permisos incorrectos en /etc

A veces un simple chmod mal puesto puede romper medio sistema o dejar huecos innecesarios. Por eso es importante revisar y corregir permisos peligrosos antes de dar por cerrado el hardening.

⏱️ Timeline del artículo

[2026-01-10]  Inicio del hardening
[2026-01-11]  Configuración de SSH y UFW
[2026-01-12]  Integración de Fail2Ban y auditd
[2026-01-13]  Revisión final y pruebas

Este tipo de hardening no convierte tu servidor en un búnker, pero sí lo coloca varios pasos por delante de una instalación por defecto. Y lo mejor: puedes aplicar todo esto en menos de una hora y dormir un poco más tranquilo.

← Volver