Cómo cambiar el puerto SSH en cPanel y mejorar la seguridad
¿Te preocupa que alguien intente entrar a tu servidor por la fuerza bruta? Una de las primeras líneas de defensa que tienes como administrador es cambiar el puerto por defecto de SSH. El puerto 22 es el estándar y, por lo tanto, el primero que atacan los bots. Cambiarlo es como cambiar la cerradura de la puerta principal de tu casa: no es infalible, pero hace que los ladrones pierdan el interés y busquen un objetivo más fácil.
En esta guía extensa y paso a paso, te voy a enseñar exactamente cómo cambiar el puerto SSH en cPanel y mejorar la seguridad de tu servidor Linux. No necesitas ser un gurú de la línea de comandos; te lo explico todo desde cero, con un lenguaje claro y directo.
Este tutorial está diseñado para que lo sigas sin miedo a romper nada, pero te daré los avisos necesarios para que actúes con precaución. Cambiar la configuración de red de tu servidor es un paso importante, así que vamos a hacerlo bien.
¿Por qué deberías cambiar el puerto SSH en cPanel?
Antes de ensuciarnos las manos con la configuración, vamos a entender el "porqué". Esto te ayudará a valorar el esfuerzo y a tomar decisiones informadas.
El problema del puerto 22
El puerto 22 es el puerto estándar para SSH (Secure Shell). Esto significa que todos los servidores del mundo que ofrecen acceso SSH lo escuchan en ese puerto por defecto.
Los atacantes y sus robots automatizados escanean internet constantemente en busca de direcciones IP que tengan el puerto 22 abierto. Una vez que lo encuentran, empiezan a probar miles de combinaciones de usuarios y contraseñas por minuto (ataques de fuerza bruta). Es un proceso ruidoso y constante.
Los beneficios de cambiar el puerto
Al cambiar el puerto SSH a un número no estándar (por ejemplo, el 2222 o el 4820), tu servidor dejará de responder en el puerto 22. Para un escáner automático, tu IP simplemente parecerá que no tiene SSH habilitado. Esto reduce drásticamente el ruido de ataques de fuerza bruta, los intentos de inicio de sesión fallidos y el consumo de recursos del sistema.
No es seguridad absoluta, pero es una capa de "oscuridad" muy efectiva. Es como poner una señal de "no hay nada aquí" en tu puerta principal. Los atacantes más sofisticados aún podrían encontrarte con un escaneo de puertos completo, pero la gran mayoría de los ataques automatizados se desviarán a otro lado.
Preparación: Antes de tocar nada
La regla de oro en administración de sistemas es: nunca hagas cambios sin un plan de escape. Si te equivocas, podrías quedarte fuera de tu propio servidor. Sigue estos pasos de preparación religiosamente.
1. Acceso de emergencia a tu servidor
Asegúrate de tener una forma de acceder al servidor si el cambio sale mal. La opción más común es el acceso por consola web que ofrecen la mayoría de los proveedores de hosting (VPS o dedicado). Este acceso no depende de SSH, por lo que siempre podrás entrar, incluso si bloqueas el puerto accidentalmente.
[WARNING] Localiza el botón de "Consola VPS" o "Acceso por consola" en el panel de tu proveedor de hosting. Tenlo a mano antes de empezar. Si algo falla, esta será tu vía de escape.
2. Haz una copia de seguridad del archivo de configuración
Vamos a modificar el archivo /etc/ssh/sshd_config. Antes de tocarlo, crea una copia de seguridad. Es un hábito excelente.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Este comando crea un archivo llamado sshd_config.bak que puedes usar para restaurar la configuración original si es necesario.
3. Verifica tu versión de cPanel
Este proceso funciona para la gran mayoría de las versiones de cPanel. Sin embargo, es bueno saber que la interfaz puede variar ligeramente. No te preocupes, los archivos de configuración subyacentes son los mismos.
Método 1: Cambiar el puerto SSH desde la interfaz de cPanel (WHM)
Esta es la forma más segura y recomendada para la mayoría de los usuarios. WHM (Web Host Manager) es el panel de administración de tu servidor. Puedes acceder a él normalmente en https://tu-servidor:2087.
Paso 1: Accede a WHM
Inicia sesión en tu panel de WHM con tu usuario root o un usuario con privilegios de administrador.
Paso 2: Navega a la configuración de SSH
En la barra de búsqueda de la izquierda, escribe "SSH". Verás varias opciones. Haz clic en "Configuración de SSH" o "SSH Server Configuration".
Paso 3: Localiza la opción del puerto
Dentro de la configuración de SSH, busca una sección que diga "Puerto" o "Port". Verás que está configurado con el valor 22 por defecto.
Paso 4: Cambia el número de puerto
Aquí viene la parte importante. Elige un número de puerto que sea fácil de recordar pero difícil de adivinar. Algunas opciones populares son:
2222220048209922
[TIP] Evita usar puertos que ya estén en uso por otros servicios (como el 80 para HTTP, el 443 para HTTPS, el 21 para FTP, etc.). Puedes consultar la lista de puertos en uso con el comando
netstat -tulpndesde la terminal. Elige un número por encima del 1024 para evitar conflictos con servicios del sistema.
Reemplaza el 22 por el nuevo número que hayas elegido.
Paso 5: Guarda y reinicia el servicio
Guarda los cambios en WHM. Generalmente, WHM te pedirá que reinicies el servicio SSH para que los cambios surtan efecto. Haz clic en el botón "Reiniciar" o "Restart".
[WARNING] ¡CRÍTICO! Antes de cerrar tu sesión actual de SSH, abre una NUEVA sesión en otra pestaña de tu terminal (o cliente SSH como PuTTY) usando el nuevo puerto. Si la nueva conexión tiene éxito, entonces sí puedes cerrar la sesión antigua. Si falla, significa que hay un problema y puedes usar la sesión antigua para revertir los cambios.
Método 2: Cambiar el puerto SSH desde la línea de comandos (Terminal)
Este método es para los que se sienten cómodos con el terminal. Es igual de válido y, para muchos, más rápido.
Paso 1: Conéctate a tu servidor
Usa tu cliente SSH favorito (PuTTY en Windows, Terminal en Mac/Linux) y conéctate a tu servidor como root al puerto 22.
Paso 2: Edita el archivo de configuración
Usaremos el editor nano por ser el más sencillo para principiantes. Escribe:
nano /etc/ssh/sshd_config
Paso 3: Encuentra la línea del puerto
Verás un montón de líneas de configuración. Busca una línea que diga:
#Port 22
El signo # al principio significa que la línea está comentada (inactiva). Vamos a descomentarla y cambiar el valor.
Paso 4: Modifica el valor del puerto
Con las teclas de flecha, muévete a esa línea. Borra el # y cambia el 22 por tu nuevo puerto. Por ejemplo:
Port 2222
Asegúrate de que no haya espacios al principio de la línea.
Paso 5: Guarda y cierra el archivo
Pulsa Ctrl + X para salir. Te preguntará si quieres guardar los cambios. Pulsa Y (sí) y luego Enter para confirmar el nombre del archivo.
Paso 6: Reinicia el servicio SSH
Para que los cambios se apliquen, reinicia el servicio SSH. El comando varía según el sistema operativo, pero en la mayoría de las distribuciones Linux modernas (CentOS, AlmaLinux, Ubuntu) es:
sudo systemctl restart sshd
O en algunos casos:
sudo service ssh restart
[INFO] Si ves un error, no entres en pánico. El mensaje de error te dirá qué línea del archivo de configuración tiene problemas. Vuelve a abrir el archivo y corrígelo.
Configurando el cortafuegos (Firewall)
Este paso es crucial y muchos lo olvidan. Si tienes un firewall activo (como CSF, iptables o el firewall de tu proveedor de nube), debes permitir el tráfico en el nuevo puerto y bloquear el puerto 22.
Si no lo haces, el firewall seguirá bloqueando el nuevo puerto y no podrás conectarte.
Si usas CSF (ConfigServer Security & Firewall)
Es el firewall más común en servidores cPanel. Edita el archivo de configuración:
nano /etc/csf/csf.conf
Busca la línea TCP_IN (puertos de entrada) y añade tu nuevo puerto a la lista. Debería verse algo así:
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,2222"
Reemplaza 2222 con tu puerto elegido. Luego, guarda el archivo y reinicia el firewall:
csf -r
Si usas iptables directamente
Puedes añadir una regla para permitir el nuevo puerto:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save
Y si quieres bloquear el puerto 22 (¡hazlo solo después de confirmar que el nuevo funciona!):
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo service iptables save
[WARNING] Nunca bloquees el puerto 22 hasta que hayas verificado que puedes conectarte al servidor por el nuevo puerto. De lo contrario, te quedarás fuera de inmediato.
Cómo conectarte al nuevo puerto SSH
Una vez que todo está configurado, necesitas saber cómo conectarte usando el nuevo puerto.
Desde Linux o macOS (Terminal)
Usa el flag -p para especificar el puerto.
ssh usuario@tu-servidor.com -p 2222
Desde Windows (PuTTY)
En el campo "Port", escribe el nuevo número de puerto (en lugar de 22). El resto de la configuración es la misma.
Preguntas Frecuentes (FAQ)
Aquí te resuelvo las dudas más comunes que la gente tiene sobre este proceso.
¿Puedo cambiar el puerto SSH en cPanel sin usar WHM?
Sí, usando el Método 2 que te he explicado (editar el archivo sshd_config desde la terminal). WHM es solo una interfaz gráfica para lo mismo.
¿Qué pasa con los usuarios de mi servidor que se conectan por SSH?
Deberás informarles del nuevo puerto. Lo más fácil es que tú les ayudes a configurar su cliente SSH. Si usan SFTP (para transferir archivos), también deberán cambiar el puerto en su cliente FTP (como FileZilla).
¿Es seguro usar el puerto 2222?
Es mucho más seguro que el 22, pero es el más común de los puertos alternativos. Si quieres más seguridad, elige un número más aleatorio como el 4820 o el 7745.
¿Qué es la autenticación por clave pública?
Es un método de autenticación mucho más seguro que las contraseñas. En lugar de una contraseña, usas un par de claves (una pública y una privada). Es la mejor práctica de seguridad y se recomienda encarecidamente combinarla con el cambio de puerto.
Cambié el puerto y ahora no puedo conectarme, ¿qué hago?
No te preocupes, es un error común. Sigue estos pasos:
- Usa la consola web de tu proveedor de hosting para acceder al servidor.
- Vuelve a abrir el archivo
/etc/ssh/sshd_configy revierte el cambio (cambia el puerto de vuelta a 22). - Reinicia el servicio SSH.
- Conéctate por el puerto 22 y vuelve a intentarlo con más cuidado.
[INFO] Si tu proveedor de hosting es Syspanel, el acceso a este panel de control es a través del puerto 2106. Si estás usando Syspanel, asegúrate de que tu cortafuegos permite el acceso a ese puerto para gestionar tu servidor, además del nuevo puerto SSH que hayas configurado.
Más allá del puerto: Asegurando tu SSH
Cambiar el puerto es un gran primer paso, pero no es el único. Aquí tienes otras medidas para "configurar ssh cpanel" y blindar tu servidor:
Desactiva el acceso root
Edita el archivo sshd_config y busca la línea PermitRootLogin. Cámbiala a no. De esta forma, los atacantes no podrán intentar adivinar la contraseña de root.
Usa autenticación por clave pública
Es la medida de seguridad más importante. Genera un par de claves en tu ordenador y sube la clave pública a tu servidor. Luego, desactiva la autenticación por contraseña en el archivo sshd_config.
Instala un firewall como CSF
CSF es una herramienta gratuita y potente que te ayuda a proteger tu servidor contra ataques de fuerza bruta y otros tipos de intrusiones.
Configura Fail2ban
Fail2ban es un servicio que monitorea los logs del sistema y bloquea automáticamente las IPs que realizan demasiados intentos de conexión fallidos.
Conclusión
Cambiar el puerto SSH en cPanel es un procedimiento sencillo pero muy poderoso para mejorar la seguridad de tu servidor Linux. Has aprendido a hacerlo tanto desde la interfaz gráfica de WHM como desde la línea de comandos, y también sabes cómo configurar tu firewall para que todo funcione correctamente.
No te quedes solo con este cambio. Combina el puerto no estándar con la autenticación por clave pública y un buen firewall para construir una defensa sólida. La seguridad es un proceso continuo, no un destino.
Espero que esta guía te haya sido de gran ayuda. Si tienes alguna duda, déjala en los comentarios y estaré encantado de ayudarte. ¡Buena suerte y a mantener esos servidores seguros!
