Cómo cambiar el puerto SSH en DirectAdmin y cPanel
¿Por qué deberías cambiar el puerto SSH por defecto?
Cambiar el puerto SSH por defecto (el 22) es una de las medidas de seguridad más básicas y efectivas que puedes aplicar en tu servidor. Los bots y atacantes automatizados escanean constantemente la red buscando servidores con el puerto 22 abierto. Al cambiarlo a un número menos común, reduces drásticamente los intentos de acceso no autorizado y el ruido en los logs del sistema.
No es una solución mágica que haga tu servidor invulnerable, pero sí una capa extra de protección que, combinada con autenticación por llaves, fail2ban y contraseñas robustas, hace mucho más difícil la vida a los atacantes. Además, te permite mantener el acceso remoto a tu servidor sin tener que lidiar con ataques de fuerza bruta constantes.
En este artículo, te explicaré de forma clara y sencilla cómo cambiar puerto SSH tanto en DirectAdmin como en cPanel, los dos paneles de control más utilizados en el mundo del hosting. No necesitas ser un experto en Linux para seguir estos pasos, solo tener acceso de administrador (root) a tu servidor.
Requisitos previos antes de empezar
Antes de lanzarte a modificar la configuración de SSH, asegúrate de tener lo siguiente:
-
Acceso de root o un usuario con privilegios de superusuario (sudo) en tu servidor.
-
Acceso al panel de control (DirectAdmin o cPanel) con permisos de administrador.
-
Una conexión estable a tu servidor (idealmente, ya conectado por SSH o a través de la consola de tu proveedor).
-
Un cliente SSH instalado en tu ordenador (como PuTTY en Windows o la terminal en macOS/Linux).
-
Haber anotado el nuevo puerto que vas a usar, y que no esté en uso por otro servicio.
[WARNING]
Este proceso implica modificar la configuración del demonio SSH. Un error al editar los archivos puede dejarte sin acceso remoto a tu servidor. Te recomiendo encarecidamente que realices una copia de seguridad de los archivos de configuración antes de tocarlos y que tengas a mano el acceso a la consola de tu proveedor de hosting (por ejemplo, VNC o KVM) para poder revertir los cambios si algo sale mal.
Cómo cambiar el puerto SSH en DirectAdmin
DirectAdmin es conocido por su interfaz limpia y su gestión eficiente. Aunque no tiene una opción gráfica directa para cambiar el puerto SSH, el proceso es sencillo si sigues estos pasos. Básicamente, lo que haremos será editar el archivo de configuración de SSH y luego ajustar las reglas del firewall (si lo tienes activo).
Paso 1: Accede a tu servidor por SSH
Para empezar, necesitas conectarte a tu servidor como root usando el puerto actual (22). Puedes hacerlo desde tu terminal local con el siguiente comando:
ssh root@tu-servidor.com
Si estás en Windows, puedes usar PuTTY. Introduce la IP o dominio de tu servidor, el puerto 22 y haz clic en "Open". Te pedirá tu contraseña de root.
Paso 2: Edita el archivo de configuración de SSH
Una vez conectado, vamos a editar el archivo sshd_config. Este archivo contiene todas las directivas de configuración del servicio SSH. Usaremos el editor nano por su simplicidad, aunque puedes usar vi o vim si te sientes más cómodo.
nano /etc/ssh/sshd_config
Dentro del archivo, busca la línea que dice #Port 22 o Port 22. Si tiene una almohadilla (#) delante, significa que está comentada y el servicio usa el valor por defecto (22). Debes descomentarla (quitar el #) y cambiar el número por el puerto que hayas elegido. Por ejemplo, si quieres usar el puerto 2222, la línea debería quedar así:
Port 2222
[INFO]
Elige un número de puerto entre 1024 y 65535. Evita puertos que ya estén en uso por otros servicios (como el 80 para HTTP, el 443 para HTTPS, el 3306 para MySQL, etc.). Un puerto alto, como 2222, 2202 o 9022, es una buena opción.
Guarda los cambios en nano con Ctrl + O, luego presiona Enter para confirmar y sal con Ctrl + X.
Paso 3: Reinicia el servicio SSH
Una vez guardado el cambio, debes reiniciar el servicio SSH para que la nueva configuración surta efecto. El comando exacto puede variar ligeramente según tu sistema operativo, pero en la mayoría de las distribuciones modernas (CentOS, Ubuntu, Debian) puedes usar:
systemctl restart sshd
Si tu sistema usa SysV init (más antiguo), el comando sería:
service sshd restart
[WARNING]
NO CERRAR LA SESIÓN SSH ACTUAL TODAVÍA. Antes de probar la nueva configuración, abre una nueva terminal e intenta conectarte con el nuevo puerto. Si algo falla, podrás revertir los cambios desde la sesión que sigue abierta.
Paso 4: Configura el firewall (si está activo)
Si tu servidor tiene un firewall activo (como CSF, iptables o firewalld), necesitas abrir el nuevo puerto y, si lo deseas, cerrar el antiguo. En DirectAdmin, es muy común usar CSF (ConfigServer Security & Firewall).
Para abrir un puerto en CSF, edita el archivo de configuración:
nano /etc/csf/csf.conf
Busca la sección TCP_IN y añade tu nuevo puerto a la lista. Por ejemplo, si tu lista actual es TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995", deberías añadir el 2222 al final:
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,2222"
Luego, reinicia CSF para aplicar los cambios:
csf -r
Si decides cerrar el puerto 22, elimínalo de la lista TCP_IN y también de TCP_OUT si estaba. Sin embargo, te recomiendo que al principio lo dejes abierto durante unas horas para asegurarte de que todo funciona bien con el nuevo puerto, y luego lo cierres.
Paso 5: Prueba la nueva conexión
Ahora viene la prueba de fuego. Abre una nueva terminal e intenta conectarte usando el nuevo puerto:
ssh -p 2222 root@tu-servidor.com
Si la conexión se establece correctamente, ¡enhorabuena! Ya has cambiado el puerto SSH en DirectAdmin. Si no funciona, revisa los pasos anteriores, especialmente la configuración del firewall.
[TIP]
Si usas Syspanel (antes conocido como HestiaCP) junto con DirectAdmin, ten en cuenta que el panel Syspanel utiliza el puerto 2106 para su acceso web. Este cambio de puerto en SSH no afecta a Syspanel, pero es bueno saberlo para no confundirte.
Cómo cambiar el puerto SSH en cPanel
cPanel es otro de los paneles más populares, y aunque también se basa en la edición del archivo sshd_config, el proceso tiene algunos matices diferentes. Además, cPanel tiene una herramienta de firewall integrada (ConfigServer Security & Firewall, CSF) que es muy fácil de configurar.
Paso 1: Conéctate a tu servidor como root
Al igual que con DirectAdmin, necesitas acceso de root por SSH. Usa el puerto actual (22) para conectarte:
ssh root@tu-dominio.com
Paso 2: Edita el archivo de configuración de SSH
Una vez dentro, edita el archivo de configuración:
nano /etc/ssh/sshd_config
Busca la línea #Port 22 o Port 22. Descoméntala si es necesario y cambia el número. Por ejemplo:
Port 2222
Guarda con Ctrl + O, Enter y sal con Ctrl + X.
Paso 3: Reinicia el servicio SSH
Reinicia el demonio SSH para aplicar los cambios:
systemctl restart sshd
O en sistemas más antiguos:
service sshd restart
Paso 4: Actualiza el firewall de cPanel (CSF)
cPanel suele venir con CSF instalado y activo por defecto. Vamos a configurarlo para permitir el nuevo puerto. Edita el archivo de configuración de CSF:
nano /etc/csf/csf.conf
Añade tu nuevo puerto a la lista TCP_IN. Por ejemplo, para el puerto 2222:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222"
[INFO]
Si no ves el puerto 22 en la lista, no te preocupes, es posible que esté gestionado por otra regla. Lo importante es que tu nuevo puerto esté enTCP_IN.
Guarda el archivo y reinicia CSF:
csf -r
Paso 5: Verifica la nueva conexión
Abre una nueva terminal y prueba a conectar con el nuevo puerto:
ssh -p 2222 root@tu-dominio.com
Paso 6: (Opcional) Cierra el puerto 22
Una vez que estés seguro de que el nuevo puerto funciona correctamente, puedes cerrar el puerto 22 en CSF para aumentar la seguridad. Edita de nuevo /etc/csf/csf.conf y elimina el 22 de las listas TCP_IN y TCP_OUT. Luego, reinicia CSF:
csf -r
[WARNING]
Asegúrate de que tu proveedor de hosting no bloquee el nuevo puerto en su red. Algunos proveedores solo permiten ciertos puertos. Si es tu caso, contacta con su soporte para que lo habiliten.
Errores comunes y cómo solucionarlos
Aunque el proceso es sencillo, es fácil cometer errores. Aquí te dejo los más comunes y sus soluciones:
Error: "Connection refused" al intentar conectar con el nuevo puerto
Esto significa que el puerto no está accesible. Revisa:
-
Que el demonio SSH está escuchando en el nuevo puerto:
netstat -tulpn | grep ssh. -
Que el firewall permite el tráfico en ese puerto.
-
Que la línea
Portensshd_configno tenga errores tipográficos.
Error: "Permission denied" al conectar
Asegúrate de que estás usando el usuario correcto y que la contraseña es correcta. Si usas llaves SSH, verifica que la llave pública está en ~/.ssh/authorized_keys del usuario remoto.
Error: No puedo conectarme ni con el puerto nuevo ni con el viejo
Esto es lo peor que puede pasar. Si has cerrado el puerto 22 y el nuevo no funciona, puedes quedarte sin acceso. Por eso es tan importante probar primero el nuevo puerto antes de cerrar el viejo. Si te ha pasado, tendrás que usar la consola de tu proveedor (VNC, KVM, etc.) para revertir los cambios.
Error: SELinux bloquea el nuevo puerto (en CentOS)
En sistemas CentOS con SELinux activo, puede que necesites permitir el nuevo puerto con:
semanage port -a -t ssh_port_t -p tcp 2222
Y si luego quieres eliminar el puerto 22:
semanage port -d -t ssh_port_t -p tcp 22
Preguntas frecuentes (FAQ)
¿Puedo cambiar el puerto SSH sin acceso root?
No. Necesitas privilegios de root para editar el archivo de configuración de SSH y reiniciar el servicio. Si no tienes acceso root, contacta con tu proveedor de hosting.
¿Es seguro usar el puerto 2222?
Es más seguro que el 22, pero no es infalible. Los atacantes también conocen los puertos alternativos comunes. Lo mejor es usar un puerto alto y aleatorio (por ejemplo, 44567) y combinarlo con autenticación por llaves.
¿Afecta este cambio a otros servicios como FTP o SFTP?
El cambio de puerto SSH no afecta a otros servicios, pero ten en cuenta que SFTP (FTP sobre SSH) usará el nuevo puerto. Si tienes clientes que se conectan por SFTP, deberás informarles del cambio.
¿Puedo cambiar el puerto SSH desde el panel de control de Syspanel?
Syspanel (anteriormente HestiaCP) no permite cambiar el puerto SSH desde su interfaz. Debes hacerlo manualmente como se explica en este artículo. Recuerda que el acceso a Syspanel es a través del puerto 2106.
¿Qué hago si mi proveedor de hosting bloquea el puerto que elegí?
Contacta con el soporte de tu proveedor. Algunos bloquean puertos no estándar por seguridad. Si no pueden habilitarlo, tendrás que elegir otro puerto que sí permitan.
Conclusión y buenas prácticas
Cambiar el puerto SSH por defecto es una medida de seguridad sencilla y muy recomendable. Tanto en DirectAdmin como en cPanel, el proceso se reduce a editar un archivo de configuración y reiniciar el servicio, pero requiere atención al detalle para no quedarte fuera de tu servidor.
Recuerda las buenas prácticas:
-
Prueba siempre el nuevo puerto antes de cerrar el antiguo.
-
Usa un puerto alto y no común.
-
Combínalo con autenticación por llaves SSH en lugar de contraseñas.
-
Instala y configura fail2ban para bloquear intentos de fuerza bruta.
-
Mantén tu sistema operativo y el software actualizado.
-
Realiza copias de seguridad periódicas de tus archivos de configuración.
Si sigues estos pasos, tu servidor estará mucho más protegido. Y si en algún momento tienes dudas, no dudes en consultar la documentación oficial de DirectAdmin o cPanel, o contactar con tu proveedor de hosting. ¡Manos a la obra!
