Servidores , Seguridad , Administración de Servidores

Protege tu Servidor cPanel Asegurando SSH y SFTP

Guía práctica para asegurar el acceso SSH y promover el uso de SFTP en servidores cPanel/WHM, reduciendo riesgos de seguridad.

Si administras un servidor con cPanel/WHM, seguro estás familiarizado con el interminable desfile de bots que golpean tu puerta digital día y noche. Los logs de seguridad se llenan de intentos de acceso fallidos, la mayoría dirigidos a un único punto: el puerto 22, la entrada por defecto del servicio SSH.

Afortunadamente, con unos pocos ajustes estratégicos, podemos cerrar esta puerta a los atacantes automáticos y fortalecer significativamente la seguridad de nuestro servidor y de nuestros clientes. En esta guía te mostraré cómo asegurar el acceso SSH y por qué debes guiar a tus clientes para que abandonen el FTP en favor del mucho más seguro SFTP.

SFTP vs. FTP: Una Batalla por la Seguridad

Antes de entrar en la configuración, una aclaración crucial: FTP es inseguro. Envía tu usuario y contraseña en texto plano a través de internet, lo que significa que cualquiera que intercepte la conexión puede robar tus credenciales.

SFTP (Secure File Transfer Protocol), en cambio, es la solución moderna. No es un servicio aparte, sino un subsistema que opera dentro del protocolo SSH. Esto significa que toda la comunicación, incluidas las credenciales, está completamente cifrada.

La regla de oro: Si tu servicio de hosting ofrece SFTP, úsalo siempre. Si eres el administrador, es tu responsabilidad ofrecerlo y configurarlo correctamente.

El Problema: ¿Por Qué el Puerto 22 es un Imán para los Ataques?

El puerto 22 es el estándar mundial para SSH. Es como poner un letrero de neón que dice “Servidor Aquí”. Millones de bots maliciosos no hacen más que escanear rangos de IP buscando puertos 22 abiertos para lanzar ataques de fuerza bruta.

Al dejarlo abierto, no solo expones tu servidor a un riesgo constante, sino que también llenas tus logs de ruido inútil, dificultando la detección de amenazas reales.

La Solución: Una Estrategia en Dos Pasos

Para fortificar nuestro acceso, implementaremos una estrategia simple pero poderosa: cambiar el puerto y limitar el acceso de los usuarios.

Paso 1: Mover la Puerta (Cambiar el Puerto SSH)

Vamos a mover el servicio SSH a un puerto no estándar. Esto nos hará “invisibles” para la gran mayoría de los bots.

1. Elige un nuevo puerto:
Elige un número de puerto entre 1024 y 65535. Evita los puertos conocidos. Para este ejemplo, usaremos el 2222.

2. Edita la configuración de SSH:
Conéctate a tu servidor por SSH (¡la última vez que usarás el puerto 22!) y abre el archivo de configuración.

sudo nano /etc/ssh/sshd_config

Busca la línea que dice #Port 22. Descoméntala (quítale el #) y cambia el número:

#Port 22      # Línea original
Port 2222    # Línea modificada

Guarda el archivo y ciérralo (en nano, es Ctrl+X, luego Y, y Enter).

3. Actualiza el Firewall (firewall-cmd):
Este paso es CRÍTICO. Debemos decirle al firewall que permita el nuevo puerto y que bloquee el antiguo.

# Permite conexiones al nuevo puerto 2222
sudo firewall-cmd --permanent --add-port=2222/tcp

# Elimina la regla del puerto 22 (si la tienes por puerto)
sudo firewall-cmd --permanent --remove-port=22/tcp

# O elimina la regla por servicio (más común)
sudo firewall-cmd --permanent --remove-service=ssh

# Recarga el firewall para aplicar los cambios
sudo firewall-cmd --reload

Importante: Asegúrate de que el comando add-port se ejecute correctamente antes de eliminar el puerto antiguo, ¡o podrías quedarte fuera!

4. Reinicia el servicio SSH:
Puedes hacerlo desde WHM > Restart Services > SSH Server o por terminal:

sudo systemctl restart sshd

¡Listo! A partir de ahora, para conectarte por SSH, deberás especificar el nuevo puerto. Por ejemplo: ssh -p 2222 tu_usuario@tu_servidor.

Paso 2: Enjaular a los Usuarios (Jailed Shell)

Permitir que los clientes usen SFTP no significa darles las llaves del reino. WHM nos da la herramienta perfecta para esto.

  1. En WHM, ve a Account Functions -> Modify an Account.
  2. Selecciona la cuenta de un cliente.
  3. Busca la opción Shell Access.
  4. Asegúrate de que esté seleccionada la opción Jailed Shell.

¿Qué hace Jailed Shell?

  • Permite SFTP: El usuario puede conectarse con su cliente de FTP (como FileZilla) usando el protocolo SFTP y el nuevo puerto.
  • Limita el Acceso: Si el usuario intenta usar SSH, estará “enjaulado” en su propio directorio /home. No podrá navegar por el sistema, ver archivos de otros usuarios o ejecutar comandos peligrosos.

Es el equilibrio perfecto entre funcionalidad y seguridad.

Conclusión: Un Servidor Más Silencioso y Seguro

Al tomar estas dos medidas, hemos logrado:

  • Reducir drásticamente los intentos de acceso automatizados.
  • Limpiar nuestros logs de seguridad, haciendo más fácil detectar amenazas reales.
  • Ofrecer a nuestros clientes un método seguro (SFTP) para gestionar sus archivos.
  • Mantener a los usuarios aislados en sus propios directorios.

Son pasos sencillos que marcan una gran diferencia en la postura de seguridad de cualquier servidor cPanel. Tómate unos minutos para aplicarlos hoy mismo; tu servidor (y tu tranquilidad) te lo agradecerán.