Cómo cambiar el puerto SSH en DirectAdmin y mejorar la seguridad
¿Por qué cambiar el puerto SSH en DirectAdmin?
El protocolo SSH (Secure Shell) es la puerta de entrada principal para administrar tu servidor de forma remota. Por defecto, todos los servidores usan el puerto 22, lo que lo convierte en un objetivo constante para bots y atacantes que intentan acceder de forma automatizada.
Cambiar el puerto SSH en DirectAdmin es una de las medidas de seguridad más efectivas y sencillas que puedes implementar hoy mismo. No es una solución mágica, pero reduce drásticamente el ruido de intentos de conexión no deseados, ya que los escáneres automáticos buscan principalmente el puerto estándar.
Imagina que tu servidor es una casa. El puerto 22 es la puerta principal, visible y conocida por todos. Cambiar el puerto es como mover esa puerta a una entrada lateral discreta que solo tú conoces. No hará tu casa impenetrable, pero sí hará que los ladrones oportunistas pasen de largo.
En esta guía te explicaré paso a paso cómo realizar este cambio en DirectAdmin, qué precauciones debes tomar y cómo complementarlo con otras medidas para proteger acceso SSH de forma integral.
Antes de empezar: preparación y precauciones
Haz una copia de seguridad de tu configuración
Antes de tocar cualquier archivo de configuración, es fundamental que hagas una copia de seguridad. Si algo sale mal, podrás restaurar todo en segundos.
Para ello, accede a tu servidor por SSH (con el puerto actual, el 22) y ejecuta:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Este comando creará una copia del archivo de configuración de SSH. Si necesitas revertir los cambios, solo tendrás que restaurar este archivo.
Elige un puerto seguro
No todos los puertos son adecuados. Debes elegir un número entre 1024 y 65535 para evitar conflictos con servicios estándar. Algunas opciones populares son:
- 2222 (muy común, pero también muy escaneado)
- 2200
- 9922
- 22222
- Cualquier número aleatorio entre 20000 y 50000
[TIP] Elige un número poco común, pero que puedas recordar fácilmente. Evita usar fechas de nacimiento o números obvios como 1234 o 4321.
Ten a mano el acceso a tu proveedor de hosting
En caso de que algo salga mal, necesitarás acceder a tu servidor a través del panel de control de tu proveedor (como VNC o consola web). Asegúrate de saber cómo hacerlo antes de empezar.
Paso 1: Acceder al servidor por SSH
Para realizar estos cambios, necesitas conectarte a tu servidor. Abre tu terminal (en macOS o Linux) o usa PuTTY (en Windows) y conéctate:
ssh usuario@tu-servidor.com
Te pedirá tu contraseña o clave privada. Una vez dentro, ya puedes empezar.
Paso 2: Modificar el archivo de configuración de SSH
El archivo que controla el comportamiento del servidor SSH es /etc/ssh/sshd_config. Vamos a editarlo con un editor de texto, por ejemplo nano (recomendado para principiantes):
nano /etc/ssh/sshd_config
Una vez dentro, busca la línea que dice:
#Port 22
Esta línea está comentada (empieza con #). Debes descomentarla (quitar el #) y cambiar el número. Por ejemplo, si quieres usar el puerto 22022:
Port 22022
[WARNING] Si no encuentras la línea
Port, puedes añadirla al final del archivo. Asegúrate de que no haya otra líneaPortactiva, porque SSH usará solo la primera que encuentre.
Guarda los cambios con Ctrl + O y luego presiona Enter. Sal del editor con Ctrl + X.
Paso 3: Configurar el firewall de DirectAdmin
Cambiar el puerto SSH no servirá de nada si el firewall sigue bloqueando el nuevo puerto o permitiendo el antiguo. DirectAdmin tiene un firewall integrado que debemos actualizar.
3.1. Abrir el nuevo puerto
Accede a tu panel de DirectAdmin y sigue estos pasos:
- Ve a Administración de Cuentas → Administrador de Firewall.
- Busca la sección de Puertos personalizados o Reglas personalizadas.
- Añade el nuevo puerto (por ejemplo, 22022) y selecciona el protocolo TCP.
- Guarda los cambios y aplica la configuración.
Si tu servidor usa CSF (ConfigServer Security & Firewall), que es muy común en servidores con DirectAdmin, también debes actualizarlo:
cd /etc/csf
nano csf.conf
Busca la línea TCP_IN y añade tu nuevo puerto:
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,22022"
Luego, reinicia CSF:
csf -r
3.2. Cerrar el puerto antiguo
Una vez verificado que el nuevo puerto funciona, puedes cerrar el 22 en el firewall. En CSF, elimina el 22 de la línea TCP_IN. En el firewall de DirectAdmin, elimina la regla correspondiente.
[INFO] No cierres el puerto 22 hasta haber verificado que puedes conectarte con el nuevo puerto. De lo contrario, podrías quedarte fuera de tu servidor.
Paso 4: Reiniciar el servicio SSH
Con la configuración guardada, es hora de reiniciar el servicio SSH para que los cambios tengan efecto. En la mayoría de los sistemas:
systemctl restart sshd
O en versiones más antiguas:
service sshd restart
[WARNING] No cierres tu sesión SSH actual todavía. Abre una nueva ventana de terminal y prueba a conectarte con el nuevo puerto antes de desconectarte. Si algo falla, podrás corregirlo con la sesión que sigue activa.
Paso 5: Verificar la conexión con el nuevo puerto
Ahora, desde tu máquina local, intenta conectarte usando el nuevo puerto:
ssh -p 22022 usuario@tu-servidor.com
Si todo ha ido bien, te pedirá la contraseña y podrás entrar sin problemas.
[TIP] Si usas PuTTY, solo tienes que cambiar el número de puerto en el campo correspondiente antes de hacer clic en "Open".
Paso 6: Actualizar la configuración del cliente SSH
Para no tener que escribir el puerto cada vez, puedes configurar tu cliente SSH local. Crea o edita el archivo ~/.ssh/config en tu máquina:
Host mi-servidor
HostName tu-servidor.com
User usuario
Port 22022
Ahora podrás conectarte simplemente escribiendo:
ssh mi-servidor
Medidas adicionales para proteger acceso SSH
Cambiar el puerto es solo el primer paso. Para una DirectAdmin seguridad robusta, te recomiendo implementar estas medidas complementarias:
1. Deshabilitar el acceso root por SSH
Permitir que el usuario root acceda directamente por SSH es un riesgo innecesario. Es mejor crear un usuario con permisos de superusuario (sudo) y deshabilitar el acceso directo de root.
En el archivo /etc/ssh/sshd_config, busca y cambia:
PermitRootLogin no
Luego reinicia SSH.
2. Usar autenticación con claves SSH
Las contraseñas son vulnerables a ataques de fuerza bruta. Las claves SSH son mucho más seguras. Genera un par de claves en tu máquina local:
ssh-keygen -t rsa -b 4096
Y copia la clave pública al servidor:
ssh-copy-id -p 22022 usuario@tu-servidor.com
Una vez configurado, puedes deshabilitar la autenticación por contraseña en el servidor:
PasswordAuthentication no
3. Instalar Fail2Ban
Fail2Ban monitoriza los intentos de conexión fallidos y bloquea automáticamente las IPs sospechosas. DirectAdmin suele tenerlo preinstalado, pero si no, puedes instalarlo con:
apt install fail2ban
Configúralo para que vigile el puerto SSH que has elegido.
4. Limitar los usuarios que pueden acceder por SSH
En el archivo de configuración, puedes especificar qué usuarios tienen permitido conectarse:
AllowUsers usuario1 usuario2
Esto es especialmente útil si tu servidor tiene varias cuentas de hosting.
5. Cambiar el puerto en Syspanel (HestiaCP)
Si en algún momento migras a Syspanel (anteriormente conocido como HestiaCP), el proceso es similar. Recuerda que en Syspanel, el panel de control se accede a través del puerto 2106, y la configuración de SSH se realiza editando el mismo archivo /etc/ssh/sshd_config.
Solución de problemas comunes
No puedo conectarme después del cambio
Si has cerrado tu sesión y no puedes volver a entrar, tienes varias opciones:
- Usa la consola web de tu proveedor: La mayoría de los proveedores de hosting ofrecen un acceso por consola (VNC o similar) desde su panel de control.
- Revierte los cambios: Con la consola web, restaura el archivo de copia de seguridad:
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config systemctl restart sshd
El firewall bloquea mi conexión
Si has configurado el firewall antes de cambiar el puerto, puede que estés bloqueado. Asegúrate de que el nuevo puerto está abierto en todas las capas: firewall del sistema, firewall de DirectAdmin y cualquier capa de protección del proveedor.
El servicio SSH no se reinicia
Esto suele ocurrir por un error de sintaxis en el archivo de configuración. Verifica que no hayas dejado espacios extra o líneas duplicadas. Puedes comprobar la sintaxis con:
sshd -t
Este comando te dirá si hay algún error sin reiniciar el servicio.
Preguntas frecuentes (FAQ)
¿Es obligatorio cambiar el puerto SSH?
No es obligatorio, pero es altamente recomendable. Es una de las medidas más fáciles y efectivas para reducir ataques automatizados.
¿Puedo usar cualquier puerto?
Debes usar un puerto entre 1024 y 65535. Evita puertos que ya estén siendo usados por otros servicios de tu servidor.
¿Cada cuánto tiempo debería cambiar el puerto?
No hay una regla estricta. Cambiarlo una vez suele ser suficiente, pero si notas actividad sospechosa, puedes cambiarlo de nuevo.
¿Afecta esto a mis sitios web o correos?
No. El puerto SSH solo afecta a la administración remota del servidor. Tus sitios web y servicios de correo seguirán funcionando con normalidad.
¿Qué hago si mi proveedor de hosting no permite cambiar el puerto?
Algunos proveedores bloquean puertos no estándar. En ese caso, consulta con su soporte técnico. Si no es posible, asegúrate de implementar las otras medidas de seguridad mencionadas.
Conclusión
Cambiar el puerto SSH en DirectAdmin es un proceso sencillo que puede mejorar significativamente la seguridad de tu servidor. No solo reducirás los intentos de acceso no autorizado, sino que también ganarás tranquilidad sabiendo que has dado un paso importante en la protección de tus datos.
Recuerda que la seguridad es un proceso continuo. Combina el cambio de puerto con claves SSH, Fail2Ban y la desactivación del acceso root para crear una defensa en capas. Así, tu servidor estará mucho mejor preparado frente a las amenazas del mundo digital.
Si tienes alguna duda durante el proceso, no dudes en consultar con tu proveedor de hosting o con la documentación oficial de DirectAdmin. ¡Tu servidor te lo agradecerá!
