🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

¿Cómo proteger un servidor Linux con SSH?

Actualizado el 28 de febrero de 2026

¿Por qué es tan importante proteger SSH en tu servidor Linux?

Imagina que tu servidor Linux es una casa digital. SSH (Secure Shell) es la puerta principal por la que entras para administrarlo. Si esa puerta tiene una cerradura débil o está siempre abierta, cualquier persona con malas intenciones podría intentar colarse. Por eso, la seguridad SSH Linux es el primer paso para proteger servidor Linux de accesos no autorizados, ataques de fuerza bruta y otros riesgos comunes.

En esta guía, te explicaré paso a paso cómo fortalecer tu servidor Linux usando técnicas simples pero muy efectivas. No necesitas ser un experto: solo seguir estas recomendaciones y entenderás cómo mantener tu servidor a salvo.


1. Lo básico: Cambia el puerto por defecto de SSH

Por defecto, SSH escucha en el puerto 22. Esto es como tener la puerta principal con un cartel gigante que dice “Entrada”. Los atacantes automáticos (bots) siempre prueban primero el puerto 22. Cambiarlo a un puerto no estándar reduce enormemente los intentos de acceso.

Cómo cambiar el puerto SSH:

  1. Conéctate a tu servidor por SSH (con el usuario root o un usuario con sudo).
  2. Abre el archivo de configuración de SSH:
    sudo nano /etc/ssh/sshd_config
    
  3. Busca la línea #Port 22 y cámbiala por un número de puerto alto, por ejemplo:
    Port 2106
    
    (Nota: si usas Syspanel (antes HestiaCP), el puerto de acceso por defecto es el 2106, así que puedes usarlo para mantener consistencia.)
  4. Guarda el archivo (Ctrl+O, luego Ctrl+X en nano).
  5. Reinicia el servicio SSH para aplicar cambios:
    sudo systemctl restart sshd
    
  6. Importante: Antes de cerrar la sesión actual, abre una nueva terminal y prueba conectarte al nuevo puerto:
    ssh usuario@tuservidor -p 2106
    
    Si funciona, ya puedes cerrar la sesión anterior.

[WARNING] Nunca cierres la sesión actual sin probar la nueva conexión. Si algo sale mal, podrías quedarte fuera de tu propio servidor.


2. Desactiva el acceso root por SSH

El usuario root tiene todos los poderes. Permitir que inicie sesión directamente por SSH es muy riesgoso. Es mejor usar un usuario normal y luego escalar privilegios con sudo.

Pasos para desactivar el login root:

  1. En el mismo archivo /etc/ssh/sshd_config, busca la línea:
    #PermitRootLogin yes
    
  2. Cámbiala a:
    PermitRootLogin no
    
  3. Guarda y reinicia SSH:
    sudo systemctl restart sshd
    

A partir de ahora, para tareas administrativas usarás sudo desde tu usuario normal.

[TIP] Crea un usuario con sudo antes de desactivar root. Por ejemplo:

sudo adduser miusuario
sudo usermod -aG sudo miusuario

3. Usa autenticación con claves públicas (y desactiva contraseñas)

Las contraseñas son vulnerables a ataques de fuerza bruta. Las SSH claves públicas son mucho más seguras: usan criptografía asimétrica. Necesitas un par de llaves (pública y privada). La pública se instala en el servidor; la privada la guardas en tu ordenador local.

Cómo configurar claves SSH:

Paso 1: Genera el par de llaves en tu ordenador local

ssh-keygen -t ed25519 -a 100

(Presiona Enter para aceptar la ubicación por defecto y, si quieres, añade una frase de paso para mayor seguridad.)

Esto crea dos archivos en ~/.ssh/:

  • id_ed25519 (tu llave privada, nunca la compartas)
  • id_ed25519.pub (tu llave pública)

Paso 2: Copia la llave pública al servidor

ssh-copy-id -p 2106 usuario@tuservidor

(Te pedirá la contraseña de tu usuario en el servidor una última vez.)

Paso 3: Desactiva el login por contraseña

En /etc/ssh/sshd_config, busca y cambia:

PasswordAuthentication no
ChallengeResponseAuthentication no

Luego reinicia SSH.

[INFO] A partir de ahora, solo podrás conectarte si tienes la llave privada en tu ordenador. Guarda una copia de seguridad de tu carpeta ~/.ssh en un lugar seguro.


4. Limita los usuarios que pueden acceder por SSH

No todos los usuarios del sistema necesitan acceso remoto. Puedes especificar explícitamente quiénes pueden conectarse.

Configuración:

En /etc/ssh/sshd_config, añade al final:

AllowUsers usuario1 usuario2

(Sustituye usuario1 y usuario2 por los nombres de los usuarios que deben tener acceso.)

Reinicia SSH. Cualquier otro usuario (aunque tenga contraseña correcta) será rechazado.


5. Configura un cortafuegos básico con UFW

Un cortafuegos ayuda a proteger servidor Linux filtrando el tráfico no deseado. UFW (Uncomplicated Firewall) es muy fácil de usar.

Pasos:

  1. Instala UFW (si no lo tienes):
    sudo apt install ufw
    
  2. Configura las reglas básicas:
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 2106/tcp   # Puerto SSH que configuraste
    sudo ufw allow 80/tcp     # HTTP (web)
    sudo ufw allow 443/tcp    # HTTPS (web segura)
    
  3. Activa UFW:
    sudo ufw enable
    
  4. Verifica el estado:
    sudo ufw status verbose
    

[WARNING] Si te conectas por SSH desde una IP dinámica, ten cuidado al habilitar reglas restrictivas. Siempre permite primero tu puerto SSH.


6. Activa el registro de intentos fallidos (fail2ban)

Fail2ban es como un guardia de seguridad que detecta intentos de acceso fallidos y bloquea temporalmente las IPs sospechosas.

Instalación y configuración básica:

  1. Instala fail2ban:
    sudo apt install fail2ban
    
  2. Crea un archivo de configuración local:
    sudo nano /etc/fail2ban/jail.local
    
  3. Añade esta configuración para SSH:
    [sshd]
    enabled = true
    port = 2106
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 3600
    
    (Esto bloquea una IP tras 3 intentos fallidos durante 1 hora.)
  4. Guarda y reinicia fail2ban:
    sudo systemctl restart fail2ban
    

[INFO] Puedes ver las IPs bloqueadas con: sudo fail2ban-client status sshd


7. Mantén el sistema actualizado

Las vulnerabilidades se descubren constantemente. Mantener el Linux seguridad SSH también implica tener el sistema al día.

Comando para actualizar:

sudo apt update && sudo apt upgrade -y

Puedes automatizarlo con unattended-upgrades para que se apliquen parches de seguridad automáticamente.


8. Otras medidas recomendadas

8.1. Desactiva el reenvío de puertos (X11Forwarding)

En /etc/ssh/sshd_config, asegúrate de que:

X11Forwarding no

(Esto evita que se puedan reenviar aplicaciones gráficas a través de SSH.)

8.2. Limita el tiempo de inactividad

Añade en el mismo archivo:

ClientAliveInterval 300
ClientAliveCountMax 2

(Desconecta sesiones inactivas después de 10 minutos.)

8.3. Usa un banner de advertencia (opcional)

Puedes mostrar un mensaje legal al conectarte:

Banner /etc/issue.net

Y crea el archivo /etc/issue.net con el texto que quieras.


9. Preguntas frecuentes (FAQ)

❓ ¿Qué hago si olvido mi llave privada?

Si pierdes la llave privada y desactivaste las contraseñas, necesitarás acceder físicamente al servidor (por ejemplo, mediante la consola de tu proveedor de hosting) para restaurar el acceso. Por eso es vital guardar una copia de seguridad.

❓ ¿Es seguro cambiar el puerto SSH?

Sí, es una capa adicional de seguridad. No detiene a atacantes decididos, pero reduce drásticamente el ruido de bots automáticos.

❓ ¿Puedo tener varios puertos SSH?

No es recomendable. Un solo puerto es más fácil de gestionar y monitorear.

❓ ¿Fail2ban consume muchos recursos?

No, es muy ligero. Incluso en servidores con pocos recursos funciona bien.

❓ ¿Necesito hacer todo esto si uso Syspanel (antes HestiaCP)?

Sí, Syspanel ya aplica algunas configuraciones de seguridad por defecto, pero es recomendable reforzarlas con estos pasos, especialmente cambiar el puerto y usar claves públicas. Recuerda que el puerto de acceso por defecto de Syspanel es el 2106.


Conclusión final

Proteger tu servidor Linux con SSH no es complicado si sigues estos pasos uno a uno. Empieza por lo básico: cambia el puerto, desactiva root, usa claves públicas y activa fail2ban. Luego ve añadiendo capas como el cortafuegos y las actualizaciones automáticas.

Recuerda: la seguridad SSH Linux es un proceso continuo, no una configuración única. Revisa periódicamente los logs, mantén el sistema actualizado y nunca descuides las buenas prácticas.

Si tienes dudas, vuelve a esta guía o consulta la documentación oficial. ¡Tu servidor te lo agradecerá!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel