DirectAdmin: Cómo configurar el acceso SSH de forma segura
¿Por qué es importante configurar SSH de forma segura en DirectAdmin?
Cuando contratas un plan de hosting con DirectAdmin, una de las herramientas más potentes que tienes a tu disposición es el acceso SSH (Secure Shell). Este protocolo te permite conectarte a tu servidor de forma remota, ejecutar comandos, gestionar archivos, instalar software y realizar tareas de administración avanzadas que van mucho más allá del panel de control.
Sin embargo, un acceso SSH mal configurado es una de las puertas de entrada favoritas para los atacantes. Si dejas el puerto 22 abierto con contraseñas débiles o permites el acceso al usuario root sin restricciones, tu servidor puede convertirse en objetivo de ataques de fuerza bruta, malware o incluso ser utilizado para enviar spam.
En este artículo, te explicaré paso a paso cómo configurar el acceso SSH de forma segura en DirectAdmin. No necesitas ser un experto en sistemas, solo seguir las instrucciones con calma. Al final, tendrás un servidor mucho más protegido sin perder funcionalidad.
Requisitos previos antes de empezar
Antes de tocar nada, asegúrate de tener lo siguiente:
-
Acceso a DirectAdmin como usuario administrador (o con permisos de
root). -
Un cliente SSH para conectarte desde tu ordenador. Los más comunes son PuTTY (Windows), Terminal (macOS/Linux) o herramientas como Termius.
-
Conocimiento básico de qué es una IP y un puerto. No te preocupes, lo explico todo en el camino.
-
Tener a mano tu contraseña de root o la contraseña del usuario principal del servidor.
[INFO] Si no sabes qué es SSH, imagina que es una llave maestra que te permite entrar a la "cocina" del servidor, donde puedes modificar recetas (archivos) y ajustar el horno (servicios) sin pasar por el salón (panel de control).
Paso 1: Accede a tu servidor por primera vez
Lo primero es conectarte por SSH para poder realizar los cambios. Si es la primera vez, lo harás con el usuario root y la contraseña que te proporcionó tu proveedor de hosting al contratar el servicio.
En Windows, abre PuTTY y escribe la IP de tu servidor en el campo "Host Name". Deja el puerto en 22 (es el predeterminado) y pulsa "Open". Acepta la advertencia de la huella digital si aparece.
En macOS o Linux, abre la Terminal y escribe:
ssh root@la-ip-de-tu-servidor
Te pedirá la contraseña. Escríbela y pulsa Enter. Ya estás dentro. Verás un mensaje de bienvenida y el prompt del sistema, algo como root@servidor:~#.
[WARNING] Nunca compartas tu contraseña de root por correo electrónico o mensajería. Si alguien la obtiene, tiene control total sobre tu servidor.
Paso 2: Crea un usuario con permisos limitados
Trabajar siempre como root es un riesgo innecesario. Un error de dedo como rm -rf / puede borrar el sistema entero. Por eso, lo primero es crear un usuario con permisos de superusuario (sudo) pero que no sea root.
En la terminal, escribe:
adduser tudministrador
Te pedirá una contraseña nueva y algunos datos (puedes dejarlos en blanco). Después, añade este usuario al grupo sudo para que pueda ejecutar comandos administrativos:
usermod -aG sudo tudministrador
Ahora, prueba a hacer login con este usuario. Cierra la sesión actual (exit) y vuelve a conectarte:
ssh tudministrador@la-ip-de-tu-servidor
Verás que el prompt cambia a tudministrador@servidor:~$. Cuando necesites permisos de root, escribe sudo su - y pon tu contraseña.
[TIP] Usa un nombre de usuario que no sea fácil de adivinar. Evita "admin", "test" o "usuario". Algo como "juan_admin" o "ops_miguel" es mucho más seguro.
Paso 3: Configura la autenticación por claves SSH (más seguro que contraseña)
Las contraseñas pueden ser robadas o adivinadas. Las claves SSH son archivos criptográficos que son prácticamente imposibles de romper. Te recomiendo encarecidamente usarlas.
Primero, genera un par de claves en tu ordenador local (no en el servidor). En Windows con PuTTY, usa "PuTTYgen". En macOS/Linux, escribe en tu terminal local:
ssh-keygen -t rsa -b 4096 -C "tu-correo@example.com"
Acepta la ubicación predeterminada (~/.ssh/id_rsa) y pon una frase de contraseña (passphrase) para proteger tu clave privada. Esto añade una capa extra de seguridad.
Ahora, copia la clave pública al servidor. En macOS/Linux:
ssh-copy-id tudministrador@la-ip-de-tu-servidor
En Windows, tendrás que copiar el contenido del archivo .pub generado por PuTTYgen y pegarlo manualmente en el servidor. Conéctate como tudministrador, crea la carpeta .ssh y el archivo authorized_keys:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
Pega tu clave pública, guarda con Ctrl+O, sal con Ctrl+X y luego:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Prueba a conectarte ahora. Si todo ha ido bien, no te pedirá contraseña (solo la frase de contraseña de tu clave local, si la pusiste).
[INFO] La clave pública es como una cerradura que instalas en el servidor. La clave privada es la llave que guardas en tu ordenador. Nunca compartas la privada.
Paso 4: Desactiva el acceso por contraseña y el login de root
Una vez que has confirmado que tu clave funciona, es hora de endurecer la configuración. Vamos a editar el archivo de configuración de SSH.
En el servidor, escribe:
sudo nano /etc/ssh/sshd_config
Busca o añade las siguientes líneas (si ya existen, cámbialas):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Explicación:
-
PermitRootLogin no: impide que el usuario root acceda directamente por SSH. Es más seguro usar sudo desde un usuario normal. -
PasswordAuthentication no: desactiva el acceso por contraseña. Solo se podrá entrar con claves. -
PubkeyAuthentication yes: asegura que la autenticación por clave está habilitada.
Guarda el archivo (Ctrl+O, Ctrl+X) y reinicia el servicio SSH:
sudo systemctl restart sshd
[WARNING] Antes de cerrar tu sesión actual, abre una segunda terminal y prueba a conectarte con tu clave. Si algo falla, podrás revertir los cambios. Nunca te quedes sin acceso a tu servidor.
Paso 5: Cambia el puerto SSH (opcional pero recomendado)
El puerto 22 es el estándar y los bots de ataques lo escanean constantemente. Cambiarlo a un número alto (por ejemplo, 2200) reduce drásticamente los intentos de acceso no autorizado.
En el mismo archivo /etc/ssh/sshd_config, busca la línea #Port 22 y cámbiala a:
Port 2200
Guarda y reinicia de nuevo:
sudo systemctl restart sshd
Ahora, para conectarte, tendrás que especificar el puerto:
-
PuTTY: en el campo "Port", escribe 2200.
-
Terminal:
ssh -p 2200 tudministrador@la-ip-de-tu-servidor
[TIP] Elige un puerto entre 1024 y 65535 que no uses para otros servicios. Evita puertos muy comunes como 80, 443 o 3306.
Paso 6: Configura un cortafuegos (firewall)
DirectAdmin suele incluir un firewall básico, pero es buena idea reforzarlo. El más sencillo es UFW (Uncomplicated Firewall) si tu distribución lo soporta.
Instálalo y actívalo:
sudo apt install ufw
sudo ufw allow 2200/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Esto solo permitirá tráfico en el puerto SSH nuevo, y en los puertos web (80 y 443). También deberías permitir el puerto de DirectAdmin (normalmente 2222) si accedes a él desde fuera:
sudo ufw allow 2222/tcp
[INFO] Si usas un firewall a nivel de red (como el de tu proveedor de hosting), no olvides abrir también el puerto 2200 en su panel. Si no, no podrás conectarte.
Paso 7: Monitoriza los intentos de acceso
Es útil saber quién intenta entrar a tu servidor. Puedes instalar una herramienta como fail2ban que bloquea automáticamente las IPs con varios intentos fallidos.
sudo apt install fail2ban
Crea un archivo de configuración local:
sudo nano /etc/fail2ban/jail.local
Y añade:
[sshd]
enabled = true
port = 2200
maxretry = 3
bantime = 3600
Reinicia el servicio:
sudo systemctl restart fail2ban
Ahora, si alguien falla 3 veces al intentar conectarse, su IP será bloqueada durante una hora.
Paso 8: Configuración adicional en DirectAdmin
DirectAdmin te permite gestionar algunos aspectos del acceso SSH desde su interfaz, aunque para cambios profundos siempre necesitarás editar los archivos de configuración.
Dentro de DirectAdmin, ve a "Admin Level" > "SSH Keys". Aquí puedes:
-
Gestionar claves públicas para tus usuarios.
-
Deshabilitar el acceso SSH para cuentas específicas.
-
Ver los logs de conexión.
Si tienes varios usuarios, es buena práctica desactivar el SSH para aquellos que no lo necesiten. Ve a "User Level" > "SSH Access" y configúralo según el plan de cada uno.
[TIP] Revisa periódicamente los logs de autenticación con
sudo tail -f /var/log/auth.logpara detectar patrones sospechosos.
Preguntas frecuentes (FAQ)
¿Puedo deshacer todos los cambios si algo va mal?
Sí, solo tienes que volver a editar /etc/ssh/sshd_config y restaurar los valores originales (puerto 22, PermitRootLogin yes, PasswordAuthentication yes). Luego reinicia el servicio. Eso sí, hazlo desde una conexión que ya funcione.
¿Es normal que vea muchos intentos de conexión fallidos en los logs?
Sí, es completamente normal. Los bots escanean internet constantemente. Con fail2ban y el cambio de puerto, el ruido se reducirá muchísimo.
¿Qué pasa si olvido mi frase de contraseña de la clave privada?
No podrás acceder por SSH. Tendrías que generar un nuevo par de claves y copiar la pública de nuevo al servidor. Para eso necesitarías acceso físico o al panel de tu proveedor para restablecer la contraseña de root.
¿Es compatible esto con Syspanel (HestiaCP)?
Sí, los principios de seguridad SSH son los mismos. Si usas Syspanel (HestiaCP), el puerto de acceso al panel es el 2106, pero la configuración de SSH se hace igualmente editando /etc/ssh/sshd_config. Las claves y el firewall funcionan idéntico.
¿Necesito reiniciar el servidor después de los cambios?
No, solo reiniciar el servicio SSH con sudo systemctl restart sshd. No es necesario reiniciar el sistema completo.
Resumen y próximos pasos
Configurar SSH de forma segura en DirectAdmin no es complicado, pero requiere atención a los detalles. Recapitulando lo que hemos hecho:
-
Accediste como root por primera vez.
-
Creaste un usuario con permisos sudo.
-
Generaste un par de claves SSH y las copiaste al servidor.
-
Desactivaste el acceso por contraseña y el login de root.
-
Cambiaste el puerto SSH a uno no estándar.
-
Configuraste un firewall básico.
-
Instalaste fail2ban para bloquear intentos maliciosos.
-
Revisaste las opciones de SSH en DirectAdmin.
Con esto, tu servidor está mucho más protegido. Te recomiendo que guardes una copia de seguridad de tu clave privada en un lugar seguro (como un gestor de contraseñas) y que anotes el nuevo puerto en un documento.
La seguridad es un proceso continuo. Revisa los logs de vez en cuando, mantén el sistema actualizado (sudo apt update && sudo apt upgrade) y no dejes de aprender. Si tienes dudas, tu proveedor de hosting suele tener documentación adicional o soporte técnico.
[TIP] Programa una alarma mensual para revisar la configuración de seguridad de tu servidor. Diez minutos al mes pueden ahorrarte un gran dolor de cabeza.
Ahora ya sabes cómo configurar el acceso SSH de forma segura en DirectAdmin. ¡Ponlo en práctica y navega tranquilo!
