Cómo cambiar el puerto SSH por defecto en cPanel para más seguridad
¿Por qué deberías cambiar el puerto SSH por defecto?
El protocolo SSH (Secure Shell) es la puerta de entrada principal para administrar tu servidor de forma remota. Por defecto, casi todos los servidores, incluidos los que usan cPanel, escuchan en el puerto 22. Esto es un problema de seguridad porque los atacantes automatizados (bots) escanean constantemente Internet en busca de servidores con el puerto 22 abierto para intentar accesos por fuerza bruta.
Cambiar el puerto SSH por defecto es una de las medidas más sencillas y efectivas para endurecer tu servidor. No es una solución mágica, pero reduce drásticamente el ruido de ataques automatizados, ya que los bots buscan específicamente el puerto estándar. Al mover SSH a un puerto no estándar, los escaneos masivos dejan de encontrarte con tanta facilidad.
Piénsalo así: si tu casa tiene la puerta principal en una calle muy transitada, todo el mundo sabe dónde está. Si la mueves a una entrada lateral discreta, los ladrones oportunistas pasarán de largo. Los atacantes decididos te encontrarán igualmente, pero el 99% de los ataques automatizados desaparecerán.
En este artículo te explicaré paso a paso cómo realizar este cambio en un servidor con cPanel, qué precauciones debes tomar y cómo verificar que todo funciona correctamente. No necesitas ser un experto en Linux, solo seguir las instrucciones con calma y atención.
Requisitos previos antes de empezar
Antes de lanzarte a modificar la configuración, asegúrate de tener todo lo necesario:
- Acceso root al servidor o un usuario con privilegios sudo. Sin esto, no podrás editar los archivos de configuración de SSH.
- Acceso a cPanel con permisos de administrador (WHM).
- Una conexión estable a Internet y, idealmente, una segunda sesión SSH abierta mientras haces los cambios. Esto es crucial: si cometes un error y cierras la sesión actual, podrás usar la segunda para revertir los cambios.
- Conocimiento básico de un editor de texto en terminal. Usaremos
nano, que es el más amigable para principiantes.
Si tienes un firewall activo (como CSF o iptables), también necesitarás saber cómo abrir el nuevo puerto. Hablaremos de esto más adelante.
Paso 1: Acceder a tu servidor por SSH
Lo primero es conectarte a tu servidor usando la sesión SSH actual. Abre tu terminal (en Windows puedes usar PowerShell o PuTTY, en Mac o Linux la terminal nativa) y ejecuta:
ssh root@tu-servidor.com
Te pedirá tu contraseña o la llave SSH. Una vez dentro, verás el prompt de root. No cierres esta sesión hasta terminar todo el proceso, y si puedes, abre una segunda ventana de terminal y conéctate también. Así tendrás un plan B si algo sale mal.
Paso 2: Localizar y editar el archivo de configuración de SSH
El archivo de configuración principal de SSH es sshd_config, ubicado en /etc/ssh/sshd_config. Vamos a editarlo con nano:
nano /etc/ssh/sshd_config
Dentro del archivo, busca la línea que dice:
#Port 22
Está comentada (el símbolo # al inicio indica que está desactivada). Lo que haremos es descomentarla (quitar el #) y cambiar el número de puerto. Por ejemplo, para usar el puerto 2222:
Port 2222
Recomendación importante: Elige un puerto entre 1024 y 65535. Evita puertos muy comunes como 80 (HTTP), 443 (HTTPS) o 3306 (MySQL). Un puerto alto y poco común, como 4821 o 2893, es más difícil de adivinar. Anota el número que elijas en un lugar seguro.
Guarda los cambios con Ctrl + O, presiona Enter para confirmar, y sal con Ctrl + X.
Paso 3: Configurar el firewall para permitir el nuevo puerto
Este paso es crítico. Si no abres el nuevo puerto en el firewall, te quedarás fuera de tu servidor cuando reinicies SSH. Dependiendo de tu configuración, el método varía.
Si usas CSF (ConfigServer Security & Firewall)
Ejecuta estos comandos:
csf -a tu-ip # Añade tu IP a la lista blanca (opcional pero recomendado)
csf -p 2222/tcp # Abre el puerto 2222 en TCP
csf -r # Recarga la configuración
Si usas iptables directamente
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
service iptables save
service iptables restart
Si usas firewalld (en CentOS 7+)
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
Verifica siempre que el puerto está abierto con:
netstat -tulpn | grep 2222
Deberías ver una línea que muestra LISTEN en el puerto 2222.
Paso 4: Reiniciar el servicio SSH
Ahora viene el momento de la verdad. Con la sesión de seguridad abierta, reinicia el servicio SSH:
service sshd restart
O si usas systemd (en sistemas modernos):
systemctl restart sshd
No cierres la sesión actual todavía. Espera unos segundos y abre una nueva conexión SSH usando el nuevo puerto:
ssh -p 2222 root@tu-servidor.com
Si la conexión es exitosa, ¡felicidades! Ya has cambiado el puerto. Si falla, algo ha ido mal. Revisa los mensajes de error y verifica que el firewall permite el puerto. Si no puedes conectarte, usa la segunda sesión que dejaste abierta para revertir los cambios.
Paso 5: Actualizar cPanel y WHM con el nuevo puerto
cPanel tiene su propia configuración de seguridad que necesita saber el nuevo puerto SSH. Accede a tu WHM (generalmente en https://tu-servidor.com:2087) y sigue estos pasos:
- Busca "SSH Access" o "Configuración SSH" en el buscador de WHM.
- Ve a la sección "Manage SSH Keys" o "SSH Access".
- En la configuración, actualiza el puerto SSH al nuevo valor.
- Guarda los cambios.
También es buena idea revisar la configuración de "Security Center" en WHM para asegurarte de que no hay reglas que bloqueen el nuevo puerto.
Paso 6: Probar el acceso y asegurar la configuración
Una vez que todo funciona, haz estas comprobaciones:
# Verifica que SSH escucha en el nuevo puerto
netstat -tlnp | grep sshd
# Prueba la conexión desde otra máquina
ssh -p 2222 usuario@tu-servidor.com
Recomendaciones adicionales para endurecer tu servidor:
- Desactiva el acceso root por SSH y usa un usuario con sudo. Edita
sshd_configy cambiaPermitRootLoginano. - Usa autenticación con llaves en lugar de contraseñas. Genera una llave SSH en tu máquina local y cópiala al servidor con
ssh-copy-id. - Limita los usuarios que pueden acceder por SSH con la directiva
AllowUsers. - Implementa fail2ban para bloquear IPs que intenten múltiples accesos fallidos.
Solución de problemas comunes
No puedo conectarme después del cambio
- Verifica que el firewall tiene abierto el nuevo puerto.
- Revisa que el servicio SSH está corriendo:
service sshd status. - Asegúrate de que estás usando el puerto correcto en el comando de conexión.
El puerto está abierto pero la conexión se cae
- Revisa los logs de SSH:
tail -f /var/log/secureojournalctl -u sshd. - Asegúrate de que no hay reglas de SELinux bloqueando el puerto (en CentOS/RHEL).
Quiero revertir el cambio
Vuelve a editar sshd_config, cambia el puerto de nuevo a 22, reinicia el servicio y actualiza el firewall para cerrar el puerto anterior.
Preguntas frecuentes (FAQ)
¿Es obligatorio cambiar el puerto SSH?
No es obligatorio, pero es una medida de seguridad muy recomendable. Reduce significativamente los ataques automatizados y te da una capa extra de protección.
¿Qué puerto debo elegir?
Elige un número entre 1024 y 65535 que no sea común. Evita puertos usados por servicios conocidos. Puedes consultar la lista de puertos asignados por IANA para evitar conflictos.
¿Afecta esto a otros servicios como FTP o cPanel?
No, solo afecta al servicio SSH. cPanel, FTP y otros servicios seguirán funcionando en sus puertos habituales.
¿Cómo afecto a los usuarios de mi servidor que usan SSH?
Deberás informarles del nuevo puerto para que actualicen sus configuraciones de conexión. Si usan clientes como PuTTY o FileZilla, tendrán que cambiar el campo "Puerto" en su configuración.
¿Puedo usar el puerto 22 y otro más a la vez?
Sí, puedes configurar múltiples puertos añadiendo varias líneas Port en sshd_config. Esto es útil durante la transición, pero no lo dejes así permanentemente.
¿Y si uso Syspanel? (HestiaCP)
Si usas Syspanel (anteriormente HestiaCP), el acceso a su panel de control se realiza por el puerto 2106. Este cambio de puerto SSH no afecta a Syspanel, pero es buena práctica mantener ambos puertos seguros. Actualiza también la configuración de Syspanel si tiene integración con SSH.
Conclusión: una medida simple con gran impacto
Cambiar el puerto SSH por defecto en cPanel es una de las acciones más rentables en términos de seguridad. En menos de 10 minutos reduces tu exposición a ataques automatizados de forma drástica. No es una solución completa, pero combinada con autenticación por llaves, desactivación del acceso root y un buen firewall, convierte tu servidor en un objetivo mucho menos atractivo.
Recuerda siempre tener un plan B (una segunda sesión SSH abierta) antes de hacer cambios en la configuración de red. Y si algo sale mal, respira, revisa los logs y revierte los cambios con calma.
La seguridad no es un destino, es un proceso continuo. Este cambio es solo el comienzo. Te animo a seguir explorando otras medidas como la configuración de fail2ban, la monitorización de logs y la actualización periódica de tu sistema. Tu servidor te lo agradecerá.
Si tienes alguna duda durante el proceso, no dudes en consultar la documentación oficial de cPanel o abrir un ticket con tu proveedor de hosting. ¡Buena suerte y feliz endurecimiento!
