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

Configurar el acceso SSH en DirectAdmin de forma segura

Actualizado el 19 de mayo de 2026

¿Por qué es importante asegurar el acceso SSH en DirectAdmin?

El acceso SSH (Secure Shell) es la puerta de entrada principal a tu servidor para realizar tareas de administración, gestión de archivos, instalación de software y configuración avanzada. En un panel como DirectAdmin, esta herramienta es fundamental, pero también representa uno de los principales vectores de ataque si no se configura correctamente.

Cada día, miles de bots automatizados escanean internet en busca de servidores con SSH expuesto, probando contraseñas débiles y usuarios comunes como "root" o "admin". Si tu servidor tiene una contraseña simple o el puerto SSH por defecto (22), las probabilidades de que tarde o temprano intenten acceder son altísimas.

Por eso, en este artículo te voy a enseñar, paso a paso, cómo configurar el acceso SSH en DirectAdmin de forma segura, incluso si no tienes experiencia técnica avanzada. Al final, tendrás un servidor mucho más protegido contra intrusiones, con claves SSH, Fail2ban activado, puerto cambiado y el acceso root deshabilitado.


Primeros pasos: acceder a tu servidor y a DirectAdmin

Antes de empezar con la configuración, necesitas tener acceso a tu servidor. Normalmente, tendrás dos formas de hacerlo:

  1. A través de DirectAdmin: Inicia sesión en tu panel de control como administrador (usuario "admin"). Desde ahí, podrás gestionar usuarios, dominios y algunas opciones del sistema.
  2. A través de SSH: Si ya tienes acceso SSH, puedes conectarte directamente desde tu terminal (Linux/macOS) o usando programas como PuTTY (Windows).

[INFO] Si es la primera vez que usas SSH, te recomiendo practicar primero con una conexión básica desde tu ordenador a tu servidor, usando la IP y el usuario root o un usuario con permisos sudo. Una vez que te sientas cómodo, continúa con las medidas de seguridad.


Cambiar el puerto SSH por defecto

El primer paso, y uno de los más efectivos, es cambiar el puerto SSH del estándar (22) a otro número menos predecible. Esto no es una seguridad infalible, pero reduce drásticamente el ruido de los ataques automatizados.

Desde DirectAdmin (método recomendado)

DirectAdmin incluye una interfaz sencilla para cambiar el puerto SSH sin tocar archivos de configuración manualmente.

  1. Inicia sesión en DirectAdmin como administrador.
  2. Ve a la sección "Administración del servidor" y luego a "Configuración SSH".
  3. Busca el campo que dice "Puerto SSH" (o "SSH Port").
  4. Cambia el valor de 22 a un número entre 1024 y 65535. Elige uno que sea fácil de recordar pero difícil de adivinar, por ejemplo 22022 o 54321.
  5. Haz clic en "Guardar" o "Actualizar".

Desde la terminal (método manual)

Si prefieres hacerlo manualmente o tu versión de DirectAdmin no tiene esa opción, puedes editar el archivo de configuración de SSH.

  1. Conéctate por SSH usando el puerto actual (22).
  2. Abre el archivo de configuración con un editor como nano:
    nano /etc/ssh/sshd_config
    
  3. Busca la línea que dice #Port 22 o Port 22.
  4. Descoméntala (quita el #) y cambia el número a tu nuevo puerto, por ejemplo:
    Port 22022
    
  5. Guarda el archivo (Ctrl+O, luego Enter) y sal (Ctrl+X).
  6. Reinicia el servicio SSH para aplicar los cambios:
    systemctl restart sshd
    
    O en algunos sistemas:
    service sshd restart
    

[WARNING] IMPORTANTE: Después de cambiar el puerto, tu conexión SSH actual se cerrará. Asegúrate de recordar el nuevo número, porque si lo olvidas, no podrás conectarte. La próxima vez que te conectes, deberás especificar el puerto: ssh -p 22022 usuario@tu-ip.


Configurar claves SSH en lugar de contraseñas

Usar contraseñas para SSH es arriesgado, ya que pueden ser adivinadas o robadas. La alternativa segura es usar claves SSH (pares de clave pública y privada). Es como tener una llave única que solo tú posees.

Paso 1: Generar tu par de claves en tu ordenador local

No generes las claves en el servidor, sino en tu ordenador personal.

  1. Abre una terminal en tu ordenador (Linux/macOS) o usa Git Bash / PowerShell en Windows.
  2. Ejecuta el siguiente comando:
    ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com"
    
    Explicación: -t ed25519 es un algoritmo de cifrado moderno y seguro. -C es solo un comentario para identificar la clave.
  3. Te preguntará dónde guardar la clave. Pulsa Enter para usar la ubicación por defecto (~/.ssh/id_ed25519).
  4. Opcional pero recomendado: Te pedirá una "frase de contraseña" (passphrase). Esto añade una capa extra de seguridad: si alguien roba tu clave privada, no podrá usarla sin la frase. Si no quieres ponerla, pulsa Enter dos veces.

Paso 2: Copiar tu clave pública al servidor

Ahora necesitas copiar el archivo de clave pública (.pub) a tu servidor.

  1. Usa el comando ssh-copy-id (disponible en Linux/macOS) para copiarla automáticamente:

    ssh-copy-id -p 22022 usuario@tu-ip
    

    Te pedirá tu contraseña actual una última vez.

  2. Si no tienes ssh-copy-id, puedes hacerlo manualmente:

    • Muestra el contenido de tu clave pública: cat ~/.ssh/id_ed25519.pub.
    • Conéctate al servidor y añade esa línea al final del archivo ~/.ssh/authorized_keys.

Paso 3: Probar la conexión con la clave

  1. Conéctate al servidor usando tu clave:
    ssh -p 22022 usuario@tu-ip
    
  2. Si todo ha ido bien, entrarás sin necesidad de escribir la contraseña (solo la frase de contraseña si la configuraste).

Deshabilitar el acceso root por SSH

El usuario root es el administrador absoluto del sistema. Deshabilitar su acceso SSH directo es una de las mejores prácticas de seguridad, porque obliga a los atacantes a adivinar un usuario normal y luego escalar privilegios, lo cual es mucho más difícil.

Crear un usuario con permisos de administrador (sudo)

Si aún no tienes un usuario normal, créalo desde DirectAdmin o desde la terminal.

  1. En DirectAdmin, ve a "Crear Nuevo Usuario" y rellena los datos.
  2. En la terminal, puedes crearlo con:
    adduser nuevousuario
    
    Y añadirlo al grupo sudo (en Debian/Ubuntu) o wheel (en CentOS):
    usermod -aG sudo nuevousuario
    

Editar la configuración de SSH

  1. Conéctate al servidor con tu usuario normal (que ya debe tener clave SSH configurada).
  2. Abre el archivo de configuración:
    sudo nano /etc/ssh/sshd_config
    
  3. Busca la línea que dice PermitRootLogin o #PermitRootLogin.
  4. Cámbiala a:
    PermitRootLogin no
    
  5. Guarda y cierra el archivo.
  6. Reinicia SSH:
    sudo systemctl restart sshd
    

[TIP] También puedes deshabilitar la autenticación por contraseña una vez que las claves SSH funcionen. Busca la línea PasswordAuthentication y cámbiala a no. Esto significa que solo se podrá acceder con claves, lo que elimina por completo el riesgo de ataques de fuerza bruta por contraseña.


Activar Fail2ban para protegerte de ataques de fuerza bruta

Fail2ban es una herramienta que monitorea los registros del sistema y bloquea automáticamente las direcciones IP que intentan acceder repetidamente sin éxito. Es un guardián invisible que protege tu servidor.

Instalación de Fail2ban

  1. Conéctate a tu servidor por SSH con tu usuario sudo.
  2. Actualiza los repositorios e instala Fail2ban:
    • En Debian/Ubuntu:
      sudo apt update && sudo apt install fail2ban -y
      
    • En CentOS/Rocky:
      sudo yum install epel-release -y
      sudo yum install fail2ban -y
      

Configuración básica para SSH

Fail2ban viene con configuraciones por defecto, pero es mejor crear una configuración personalizada.

  1. Crea un archivo de configuración local:

    sudo nano /etc/fail2ban/jail.local
    
  2. Añade el siguiente contenido:

    [DEFAULT]
    bantime = 1h
    findtime = 10m
    maxretry = 5
    
    [sshd]
    enabled = true
    port = 22022
    logpath = %(sshd_log)s
    backend = %(sshd_backend)s
    

    Explicación:

    • bantime: Cuánto tiempo se bloquea una IP (1 hora).
    • findtime: Ventana de tiempo en la que se cuentan los intentos (10 minutos).
    • maxretry: Número máximo de intentos fallidos antes del bloqueo (5).
    • port: Especifica tu nuevo puerto SSH.
  3. Guarda el archivo y reinicia Fail2ban:

    sudo systemctl restart fail2ban
    

Verificar que Fail2ban está funcionando

  1. Puedes ver el estado del servicio:
    sudo systemctl status fail2ban
    
  2. Para ver las IPs bloqueadas actualmente:
    sudo fail2ban-client status sshd
    

[INFO] Fail2ban también puede proteger otros servicios como DirectAdmin (puerto 2222), FTP, correo, etc. Solo necesitas crear nuevas secciones en el archivo jail.local.


Preguntas frecuentes (FAQ)

¿Qué hago si olvido mi nuevo puerto SSH?

Si no puedes conectarte, deberás acceder a tu servidor a través del panel de control de tu proveedor de hosting (como VPS) o usando un "acceso de emergencia" (KVM/IPMI) que suelen ofrecer. Desde allí, podrás revisar el archivo sshd_config y ver el puerto configurado.

¿Es seguro deshabilitar la contraseña de SSH si uso claves?

Sí, es la configuración más segura. Las claves SSH son mucho más difíciles de romper que una contraseña. Solo asegúrate de guardar tu clave privada en un lugar seguro y de tener una copia de respaldo.

¿Fail2ban consume muchos recursos del servidor?

No, Fail2ban es muy ligero. Solo monitorea los logs y toma acciones cuando detecta patrones sospechosos. Su impacto en el rendimiento es despreciable.

¿Puedo usar esta misma configuración en Syspanel (HestiaCP)?

Sí, los principios de seguridad son los mismos. Si usas Syspanel (antes conocido como HestiaCP), el acceso a su panel de control se realiza por el puerto 2106. Asegúrate de configurar Fail2ban para proteger también ese puerto.

¿Debo cambiar el puerto SSH en DirectAdmin y en el firewall?

Sí, es crucial. Si tienes un firewall (como CSF o UFW), debes abrir el nuevo puerto y cerrar el 22. De lo contrario, el firewall bloqueará tu nueva configuración. En DirectAdmin, puedes gestionar esto en la sección de "Firewall" o usando comandos de terminal.


Conclusión: tu servidor ahora es una fortaleza

Configurar el acceso SSH en DirectAdmin de forma segura no es un lujo, es una necesidad en el mundo actual. Siguiendo estos pasos, has logrado:

  1. Cambiar el puerto SSH para evitar la mayoría de ataques automatizados.
  2. Configurar claves SSH para eliminar el uso de contraseñas frágiles.
  3. Deshabilitar el acceso root para dificultar la entrada de intrusos.
  4. Activar Fail2ban para bloquear automáticamente a los atacantes.

Con estas medidas, tu servidor estará mucho más protegido y tú tendrás la tranquilidad de saber que has tomado el control de tu seguridad. La configuración puede parecer abrumadora al principio, pero con práctica se convierte en un proceso rutinario.

[TIP] Te recomiendo que guardes este artículo como referencia y que revises periódicamente los logs de Fail2ban para ver qué intentos de ataque se han bloqueado. Es una buena manera de entender qué tipo de amenazas existen.

Si tienes alguna duda, no dudes en consultar la documentación oficial de DirectAdmin o contactar con tu proveedor de hosting. ¡Buena suerte y navegación segura!

¿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