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

¿Cómo proteger el acceso SSH en un servidor con DirectAdmin?

Actualizado el 24 de junio de 2026

¿Sabías que el puerto 22 de tu servidor es una de las puertas de entrada más atacadas en internet? Si tienes un servidor con DirectAdmin, proteger el acceso SSH no es una opción, es una necesidad urgente.

Cada día, bots automatizados escanean la red buscando servidores con SSH expuesto. Si tu contraseña es débil o el puerto está abierto por defecto, estás invitando a los atacantes a intentar entrar. La buena noticia es que con unos pocos pasos, puedes blindar tu servidor y dormir tranquilo.

En esta guía completa, te mostraré paso a paso cómo proteger SSH en un servidor con DirectAdmin, incluso si no eres un experto en Linux. Vamos a usar herramientas que ya tienes en tu panel y comandos sencillos que puedes copiar y pegar.


¿Por qué es crítico proteger SSH en DirectAdmin?

SSH (Secure Shell) es el protocolo que usas para conectarte a tu servidor por línea de comandos. Es como tener una llave maestra de todo tu sistema. Si un atacante logra acceder por SSH, puede robar datos, instalar malware, borrar archivos o usar tu servidor para atacar a otros.

DirectAdmin es un panel de control muy popular, pero el acceso SSH que viene configurado por defecto suele ser vulnerable. La mayoría de los servidores tienen el puerto 22 abierto, permiten el acceso con contraseña y permiten el login del usuario root. Esto es un cóctel peligroso.

La buena noticia es que con una configuración básica de seguridad, puedes reducir los ataques en un 99%. No necesitas ser un hacker, solo seguir estas recomendaciones prácticas.


Primer paso: Cambiar el puerto SSH por defecto

El puerto 22 es el más escaneado del mundo. Cambiarlo a un puerto no estándar (por ejemplo, el 22022) es como cambiar la cerradura de tu puerta principal y esconder la llave bajo una maceta distinta.

¿Cómo cambiar el puerto en DirectAdmin?

  1. Accede a tu servidor por SSH (aún con el puerto 22 por ahora).

  2. Abre el archivo de configuración de SSH con este comando:

    nano /etc/ssh/sshd_config
    
  3. Busca la línea que dice #Port 22 y cámbiala por:

    Port 22022
    

    (Elige un número entre 1024 y 65535 que no uses para otra cosa).

  4. Guarda el archivo con Ctrl + O, luego Enter, y sal con Ctrl + X.

  5. Reinicia el servicio SSH:

    systemctl restart sshd
    

    IMPORTANTE: No cierres tu sesión actual hasta probar la nueva conexión.

  6. Abre una nueva terminal y conéctate con:

    ssh -p 22022 usuario@tu-servidor.com
    

[WARNING] Si olvidas el nuevo puerto, no podrás acceder al servidor. Anótalo en un lugar seguro.


Segundo paso: Desactivar el acceso root por SSH

El usuario root es el administrador supremo. Si un atacante consigue la contraseña de root, tiene el control total. Lo mejor es desactivar el acceso directo de root y usar un usuario normal con permisos elevados.

Configuración en DirectAdmin

  1. Con tu sesión SSH abierta, crea un usuario administrativo si no lo tienes:

    adduser tu_usuario_admin
    passwd tu_usuario_admin
    usermod -aG wheel tu_usuario_admin
    

    (En CentOS/AlmaLinux el grupo es wheel; en Ubuntu es sudo).

  2. Edita de nuevo el archivo de configuración:

    nano /etc/ssh/sshd_config
    
  3. Busca la línea #PermitRootLogin yes y cámbiala a:

    PermitRootLogin no
    
  4. Guarda y reinicia SSH:

    systemctl restart sshd
    

[TIP] A partir de ahora, conéctate siempre con tu usuario normal y usa sudo para comandos que necesiten permisos de root.


Tercer paso: Usar llaves SSH en lugar de contraseñas

Las contraseñas son fáciles de adivinar o robar. Las llaves SSH son como una llave física imposible de duplicar. Este es el método más seguro para proteger SSH.

Generar tu par de llaves

  1. En tu computadora local (no en el servidor), abre una terminal y escribe:
    ssh-keygen -t rsa -b 4096
    
  2. Te preguntará dónde guardarla. Pulsa Enter para usar la ubicación por defecto.
  3. Te pedirá una frase de contraseña (passphrase). Pon una larga y difícil de adivinar. Esto protege tu llave si alguien roba tu computadora.

Copiar la llave pública al servidor

  1. En tu computadora local, ejecuta:

    ssh-copy-id -p 22022 tu_usuario_admin@tu-servidor.com
    

    (Te pedirá la contraseña de tu usuario admin).

  2. Esto copia tu llave pública al servidor. Ahora prueba a conectarte:

    ssh -p 22022 tu_usuario_admin@tu-servidor.com
    

    Si todo funciona, no te pedirá contraseña (solo la passphrase de tu llave).

Desactivar el acceso por contraseña

Una vez que confirmes que las llaves funcionan, desactiva las contraseñas:

  1. Edita el archivo de configuración:
    sudo nano /etc/ssh/sshd_config
    
  2. Busca y cambia estas líneas:
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
    
  3. Guarda y reinicia SSH:
    sudo systemctl restart sshd
    

[INFO] Si pierdes tu llave privada, no podrás entrar al servidor. Guarda una copia de seguridad en un lugar seguro (como una memoria USB cifrada).


Cuarto paso: Configurar el firewall de Linux

El firewall es tu primera línea de defensa. DirectAdmin tiene un módulo de firewall integrado, pero también puedes usar firewalld (en CentOS/AlmaLinux) o ufw (en Ubuntu) para controlar qué puertos están abiertos.

Con firewalld (CentOS, AlmaLinux, Rocky)

  1. Agrega el nuevo puerto SSH:
    sudo firewall-cmd --permanent --add-port=22022/tcp
    sudo firewall-cmd --permanent --remove-service=ssh
    sudo firewall-cmd --reload
    
  2. Verifica que solo el puerto 22022 esté abierto para SSH:
    sudo firewall-cmd --list-all
    

Con ufw (Ubuntu, Debian)

  1. Permite el nuevo puerto:
    sudo ufw allow 22022/tcp
    sudo ufw deny 22/tcp
    sudo ufw enable
    
  2. Comprueba el estado:
    sudo ufw status
    

[WARNING] Si configuras el firewall antes de cambiar el puerto SSH, te quedarás fuera. Primero cambia el puerto, prueba la conexión y luego configura el firewall.


Quinto paso: Limitar el acceso con fail2ban

Fail2ban es como un portero que vigila quién intenta entrar y bloquea a los sospechosos. Si alguien falla varias veces la contraseña, su IP es bloqueada automáticamente.

Instalar y configurar fail2ban

  1. Instálalo según tu sistema:

    • CentOS/AlmaLinux: sudo yum install fail2ban
    • Ubuntu/Debian: sudo apt install fail2ban
  2. Crea un archivo de configuración local:

    sudo nano /etc/fail2ban/jail.local
    
  3. Añade este contenido:

    [DEFAULT]
    bantime = 3600
    findtime = 600
    maxretry = 3
    
    [sshd]
    enabled = true
    port = 22022
    logpath = /var/log/secure
    

    (En Ubuntu, el logpath es /var/log/auth.log).

  4. Reinicia fail2ban:

    sudo systemctl restart fail2ban
    sudo systemctl enable fail2ban
    

[TIP] Con 3 intentos fallidos en 10 minutos, la IP queda bloqueada durante 1 hora. Puedes ajustar estos valores según tus necesidades.


Sexto paso: Configurar DirectAdmin para mayor seguridad

DirectAdmin tiene opciones específicas para proteger el acceso SSH. Vamos a revisarlas.

Desde el panel de DirectAdmin

  1. Accede a tu panel como administrador.
  2. Ve a Admin LevelCustom BuildSSH Access.
  3. Aquí puedes:
    • Desactivar el acceso SSH temporalmente para usuarios que no lo usen.
    • Restringir direcciones IP que pueden conectarse por SSH.
    • Configurar el tiempo de espera para evitar conexiones inactivas.

Restringir por IP en el servidor

Si solo tú o tu equipo se conectan desde IPs fijas, puedes limitar el acceso:

  1. Edita el archivo de hosts:
    sudo nano /etc/hosts.allow
    
  2. Añade:
    sshd: 192.168.1.100 203.0.113.5
    
  3. En /etc/hosts.deny, añade:
    sshd: ALL
    

[INFO] Esto significa que solo las IPs listadas pueden conectarse por SSH. Si tu IP cambia, tendrás que actualizar esta lista.


Séptimo paso: Monitorear y auditar intentos de acceso

La seguridad no es un evento, es un proceso. Debes revisar periódicamente los intentos de acceso para detectar actividades sospechosas.

Ver los intentos fallidos

Ejecuta:

sudo grep "Failed password" /var/log/secure | tail -20

(En Ubuntu, usa /var/log/auth.log).

Ver los accesos exitosos

sudo grep "Accepted password" /var/log/secure | tail -20

Configurar alertas por correo

Puedes configurar DirectAdmin para enviarte un correo cuando haya un login SSH exitoso. Ve a Admin LevelAlerts y activa las notificaciones de seguridad.


Preguntas frecuentes (FAQ)

¿Puedo usar el firewall de DirectAdmin en lugar de firewalld?

Sí, DirectAdmin tiene un módulo de firewall llamado CSF (ConfigServer Security & Firewall). Si está instalado, puedes configurarlo desde Admin LevelPluginsCSF. Es muy potente y te permite gestionar todo desde el panel.

¿Qué pasa si me equivoco y me quedo fuera del servidor?

No entres en pánico. Si tienes acceso a DirectAdmin (por el puerto 2222), puedes ir a Admin LevelCustom BuildSSH Access y restaurar la configuración por defecto. También puedes contactar a tu proveedor de hosting para que reinicie el servidor en modo de rescate.

¿Es seguro usar el puerto 22 si cambio la contraseña a una muy fuerte?

Es mejor no arriesgarse. Aunque uses una contraseña de 30 caracteres, los bots escanean el puerto 22 constantemente. Cambiar el puerto reduce el ruido y los intentos de ataque en un 90%.

¿Debo usar llaves SSH o contraseñas?

Las llaves SSH son mucho más seguras. Son criptográficamente imposibles de adivinar. Las contraseñas, incluso las fuertes, pueden ser interceptadas o robadas. Usa siempre llaves.

¿Cómo afecta esto a mis usuarios de hosting?

Si tienes clientes que usan SSH, tendrás que informarles del nuevo puerto y de la necesidad de configurar llaves. Puedes crear un instructivo sencillo para ellos.

¿Cada cuánto debo revisar los logs de SSH?

Recomiendo revisarlos al menos una vez por semana. Si notas algo sospechoso, cambia tus llaves y contraseñas inmediatamente.


Resumen final: Tu checklist de seguridad SSH

Sigue esta lista para asegurarte de que tu servidor está protegido:

  • Cambiaste el puerto SSH a uno no estándar (ej: 22022).
  • Desactivaste el acceso root por SSH.
  • Generaste llaves SSH y desactivaste las contraseñas.
  • Configuraste el firewall para permitir solo el nuevo puerto.
  • Instalaste y configuraste fail2ban.
  • Revisaste los logs de acceso semanalmente.
  • Informaste a tus usuarios sobre los nuevos métodos de conexión.

Proteger SSH en tu servidor con DirectAdmin no es complicado, solo requiere un poco de tiempo y atención. Cada paso que implementes aumenta exponencialmente la seguridad de tu servidor y de los datos que alojas.

[TIP] Si además usas un panel como Syspanel (antes conocido como HestiaCP) en otro servidor, recuerda que su puerto de acceso es el 2106 y aplica las mismas medidas de seguridad que te he mostrado aquí.

Empieza hoy mismo. No esperes a ser víctima de un ataque. 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