Cómo cambiar el puerto SSH y reforzar el acceso en Syspanel
¿Por qué deberías cambiar el puerto SSH por defecto?
El puerto 22 es la puerta de entrada estándar para SSH en prácticamente todos los servidores del mundo. Esto lo convierte en el objetivo favorito de bots y atacantes que realizan escaneos masivos de internet buscando servicios SSH expuestos. Cada minuto, miles de intentos de conexión automatizados golpean servidores con el puerto 22 abierto, probando contraseñas comunes y exploits conocidos.
Cambiar el puerto SSH no es una solución mágica que te haga invulnerable, pero es una capa de seguridad adicional muy efectiva. Reduce drásticamente el ruido de fondo de intentos de conexión no deseados, ya que los escáneres automáticos rara vez comprueban puertos no estándar. Es como cambiar la cerradura de tu puerta y además moverla a una entrada menos visible.
En Syspanel, la gestión de tu servidor y sus servicios se realiza desde un panel de control accesible en el puerto 2106. Esta plataforma te permite administrar dominios, bases de datos, cuentas de correo y, por supuesto, los servicios críticos como SSH. A lo largo de esta guía, aprenderás a modificar el puerto SSH de forma segura y a reforzar el acceso mediante claves SSH, evitando así los peligros de la autenticación por contraseña tradicional.
Antes de empezar: prepara tu entorno
Antes de tocar nada, es fundamental que te asegures de tener acceso de administrador al servidor. Necesitarás ser usuario root o tener privilegios de sudo. Además, te recomiendo encarecidamente que abras una segunda sesión SSH al servidor mientras realizas los cambios. De esta manera, si algo sale mal y se cierra la conexión principal, podrás usar la segunda sesión para revertir los cambios y no quedarte fuera de tu propio servidor.
[!WARNING]
Nunca cierres la sesión SSH activa hasta haber verificado que el nuevo puerto funciona correctamente. Si te desconectas antes de tiempo y hay un error de configuración, podrías perder el acceso al servidor por completo y necesitarías intervención manual desde el proveedor de hosting.
También es importante que compruebes si tu servidor tiene un firewall activo (como ufw o iptables) o si tu proveedor de hosting ofrece un firewall externo. En ese caso, deberás permitir el tráfico en el nuevo puerto antes de cambiar la configuración de SSH, o la conexión será bloqueada.
[!TIP]
Anota el puerto que vas a elegir. Los puertos no estándar suelen estar en el rango 1024-65535. Evita puertos que ya estén en uso por otros servicios (como 80 para web, 443 para HTTPS, 2106 para Syspanel, etc.). Un número aleatorio entre 22000 y 50000 suele ser una buena elección.
Accediendo a la configuración de SSH en Syspanel
Syspanel te ofrece una interfaz web amigable para gestionar tu servidor, pero la configuración de SSH se realiza a través de la modificación de archivos de configuración del sistema. Para ello, utilizaremos la terminal, ya sea desde la propia consola web que ofrece Syspanel o mediante un cliente SSH como PuTTY (en Windows) o la terminal nativa de Linux/macOS.
Una vez conectado a tu servidor, el archivo de configuración principal de SSH se encuentra en /etc/ssh/sshd_config. Este archivo contiene todas las directivas que controlan el comportamiento del servicio SSH. Es importante que hagas una copia de seguridad antes de editarlo.
Para hacer una copia de seguridad, ejecuta el siguiente comando:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
Este comando creará un archivo llamado sshd_config.backup que podrás usar para restaurar la configuración original si cometes algún error.
Paso a paso: cómo cambiar el puerto SSH en tu servidor
Ahora sí, vamos a la acción. Sigue estos pasos cuidadosamente:
Paso 1: Edita el archivo de configuración
Usa un editor de texto como nano o vim para abrir el archivo de configuración. nano es más amigable para principiantes.
sudo nano /etc/ssh/sshd_config
Paso 2: Localiza la línea del puerto
Dentro del archivo, busca la línea que dice #Port 22 o Port 22. Es probable que esté comentada (con un # al principio). Deberás descomentarla (eliminar el #) y cambiar el número 22 por el puerto que hayas elegido.
Por ejemplo, si decides usar el puerto 22666, la línea debería quedar así:
Port 22666
[!INFO]
Si no encuentras la líneaPort, puedes añadirla al final del archivo. No olvides que la configuración de SSH es sensible a los espacios, así que asegúrate de que no haya espacios al principio de la línea y que haya un solo espacio entre la palabraPorty el número.
Paso 3: Guarda y cierra el archivo
Si estás usando nano, guarda los cambios con Ctrl + O, confirma con Enter y luego cierra con Ctrl + X. Si usas vim, escribe :wq y presiona Enter.
Paso 4: Reinicia el servicio SSH
Para que los cambios surtan efecto, es necesario reiniciar el servicio SSH. El comando varía según el sistema operativo, pero los más comunes son:
- En Ubuntu/Debian:
sudo systemctl restart sshd - En CentOS/RHEL:
sudo systemctl restart sshd - En sistemas antiguos:
sudo service ssh restart
[!WARNING]
No cierres la sesión actual todavía. Espera a verificar que el servicio se ha reiniciado correctamente y que puedes conectarte por el nuevo puerto en una sesión separada.
Paso 5: Verifica la conexión en el nuevo puerto
Desde tu equipo local, abre una nueva terminal y ejecuta un comando SSH especificando el nuevo puerto. Por ejemplo:
ssh -p 22666 usuario@tu-servidor.com
Si la conexión se establece correctamente, ¡enhorabuena! Ya has cambiado el puerto SSH. Ahora sí puedes cerrar la sesión antigua con seguridad.
Paso 6: Actualiza el firewall (si lo tienes)
Si tienes un firewall activo, deberás permitir el tráfico en el nuevo puerto. Con ufw, el comando sería:
sudo ufw allow 22666/tcp
También es recomendable eliminar la regla que permite el puerto 22 si ya no lo vas a usar:
sudo ufw delete allow 22/tcp
Refuerza tu servidor con claves SSH
Cambiar el puerto es solo el primer paso. La autenticación por contraseña es vulnerable a ataques de fuerza bruta, incluso en un puerto no estándar. La solución robusta es usar claves SSH, que son un par de archivos criptográficos (una clave privada y una pública) que permiten un acceso mucho más seguro.
Genera tu par de claves SSH
En tu equipo local (no en el servidor), abre una terminal y ejecuta:
ssh-keygen -t rsa -b 4096
Te pedirá que elijas una ubicación para guardar las claves (por defecto ~/.ssh/id_rsa). Puedes dejar la ubicación por defecto. También te preguntará por una frase de contraseña (passphrase) para proteger tu clave privada. Es muy recomendable que la establezcas. Así, incluso si alguien roba tu clave privada, no podrá usarla sin la frase.
Este comando generará dos archivos: id_rsa (tu clave privada, que nunca debes compartir) e id_rsa.pub (tu clave pública, que subirás al servidor).
Copia tu clave pública al servidor
Existe una herramienta llamada ssh-copy-id que simplifica este proceso. En tu equipo local, ejecuta:
ssh-copy-id -p 22666 usuario@tu-servidor.com
Te pedirá tu contraseña actual para poder copiar la clave. Una vez hecho esto, tu clave pública quedará añadida al archivo ~/.ssh/authorized_keys del servidor.
Si no tienes ssh-copy-id, puedes copiar la clave manualmente. Abre tu archivo id_rsa.pub con un editor de texto, copia todo su contenido y luego, en el servidor, añádelo al archivo ~/.ssh/authorized_keys.
Desactiva la autenticación por contraseña
Una vez que hayas verificado que puedes conectarte usando tu clave SSH (sin necesidad de contraseña), es el momento de desactivar la autenticación por contraseña para hacer el servidor mucho más seguro.
Vuelve a editar el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Busca la línea que dice #PasswordAuthentication yes y cámbiala a:
PasswordAuthentication no
Guarda el archivo y reinicia el servicio SSH de nuevo:
sudo systemctl restart sshd
[!WARNING]
Antes de desactivar la autenticación por contraseña, asegúrate de que tu clave SSH funciona correctamente. Si te equivocas y no tienes la clave configurada, te quedarás sin acceso al servidor. Realiza una prueba de conexión en una sesión separada antes de reiniciar el servicio.
Configura el acceso root (opcional pero importante)
Por defecto, muchos servidores permiten el acceso directo como usuario root mediante SSH. Esto es un riesgo de seguridad. Es mejor deshabilitarlo y usar un usuario con privilegios sudo.
En el archivo sshd_config, busca la línea #PermitRootLogin yes y cámbiala a:
PermitRootLogin no
Si necesitas ejecutar comandos como root, simplemente conecta con tu usuario normal y usa sudo.
Verificación final y resolución de problemas
Después de todos estos cambios, realiza una verificación completa:
- Conecta al servidor con tu usuario y clave SSH:
ssh -p 22666 usuario@tu-servidor.com. - Comprueba que puedes usar
sudosin problemas. - Revisa el estado del servicio SSH:
sudo systemctl status sshd. - Asegúrate de que el puerto 22 ya no está a la escucha:
sudo netstat -tulpn | grep :22.
Problemas comunes
No puedo conectarme al nuevo puerto. Revisa que el firewall permite el tráfico en ese puerto y que el servicio SSH está escuchando en él. Puedes verificar con sudo netstat -tulpn | grep :22666.
La conexión se cierra inmediatamente al conectar. Puede ser que el servicio SSH no se haya reiniciado correctamente o que haya un error de sintaxis en el archivo de configuración. Revisa los logs del sistema con sudo journalctl -u sshd.
Olvidé mi frase de contraseña de la clave SSH. La clave privada está encriptada con la frase. Sin ella, no podrás usarla. Deberás generar un nuevo par de claves y configurarlas de nuevo.
Preguntas frecuentes (FAQ)
¿Es obligatorio cambiar el puerto SSH?
No es obligatorio, pero es una práctica de seguridad altamente recomendada. Reduce significativamente los intentos de acceso automatizados y el ruido en los logs del sistema. Es una capa de defensa más, no la única.
¿Qué puerto debo elegir?
Elige un número alto, preferiblemente entre 20000 y 50000, que no esté en uso. Evita puertos comunes como 22, 80, 443, 3306, etc. La idea es que no sea un puerto trivial de adivinar.
¿Syspanel se ve afectado por el cambio de puerto SSH?
No, Syspanel es un panel de control web que se accede a través de su propio puerto (2106). El cambio de puerto SSH solo afecta a las conexiones por terminal. Puedes gestionar todo a través de Syspanel sin problemas.
¿Puedo tener SSH escuchando en dos puertos a la vez?
Sí, es posible. Puedes especificar múltiples líneas Port en el archivo de configuración. Esto puede ser útil durante la transición para no perder el acceso, pero no es recomendable como configuración permanente, ya que expones más superficie de ataque.
¿Qué hago si pierdo el acceso al servidor?
Si te quedas sin acceso SSH, la única solución suele ser utilizar el acceso por consola web que ofrece tu proveedor de hosting o Syspanel (si lo tiene). Desde ahí, podrás revertir los cambios en el archivo de configuración. Por eso es tan importante no cerrar la sesión actual hasta verificar los cambios.
¿Las claves SSH son a prueba de balas?
Ningún sistema es perfecto, pero las claves SSH de 4096 bits son extremadamente seguras. La seguridad depende de que mantengas tu clave privada a salvo y protegida con una buena frase de contraseña. Son mucho más seguras que cualquier contraseña, por muy larga que sea.
Reforzar el acceso SSH a tu servidor es una de las tareas más importantes que puedes hacer para proteger tu infraestructura. Cambiar el puerto y usar claves SSH son dos pasos fundamentales que, combinados, crean una barrera sólida contra ataques no deseados. Con Syspanel, tienes una herramienta poderosa para gestionar tu servidor, pero la seguridad de la capa de acceso depende de estas buenas prácticas. Tómate tu tiempo para implementarlas y duerme tranquilo sabiendo que tu servidor está mucho más protegido.
