Guía de seguridad básica para servidores Linux con cPanel
Has instalado un servidor Linux con cPanel y, aunque te emociona tener tu propio espacio en la web, también sabes que conlleva una gran responsabilidad: la seguridad. No te preocupes, no necesitas ser un experto en ciberseguridad para mantener tu servidor a salvo. Como técnico de soporte, te guiaré paso a paso por las prácticas esenciales que todo sysadmin (aunque seas principiante) debe aplicar.
Esta guía de seguridad básica para servidores Linux con cPanel está diseñada para ser tu manual de primeros auxilios. Vamos a cubrir desde la configuración del firewall hasta la protección de tu panel de administración. Al final, tu servidor será una fortaleza mucho más difícil de vulnerar.
1. La Puerta de Entrada: Seguridad del Acceso SSH
El primer paso para proteger tu servidor Linux es controlar quién y cómo puede acceder a la terminal. El acceso SSH es la puerta principal, y debemos asegurarla bien.
1.1. Cambiar el Puerto SSH por Defecto
El puerto 22 es el estándar para SSH, y los bots lo escanean constantemente. Cambiarlo a un puerto no estándar (por ejemplo, 2222) reduce drásticamente los ataques automatizados.
- Accede a tu servidor por SSH (con el puerto 22 aún activo).
- Abre el archivo de configuración:
nano /etc/ssh/sshd_config - Busca la línea
#Port 22y cámbiala aPort 2222(o el que elijas, entre 1024 y 65535). - Guarda los cambios (Ctrl+O, Enter, Ctrl+X).
- Reinicia el servicio SSH:
systemctl restart sshd - Importante: Antes de cerrar tu sesión actual, abre una NUEVA conexión SSH usando el nuevo puerto. Si funciona, ya puedes cerrar la sesión antigua.
[WARNING] No olvides abrir el nuevo puerto en tu firewall (lo veremos más adelante) o te quedarás fuera de tu propio servidor.
1.2. Deshabilitar el Acceso Root por SSH
Acceder directamente como root es un riesgo enorme. Cualquier error o ataque exitoso compromete todo el sistema. Es mejor usar un usuario normal y luego escalar privilegios con sudo.
- Crea un usuario con privilegios sudo (si no lo tienes):
adduser tunombrey luegousermod -aG sudo tunombre. - Edita de nuevo el archivo de configuración SSH:
nano /etc/ssh/sshd_config - Busca
PermitRootLogin yesy cámbialo aPermitRootLogin no. - Guarda y reinicia SSH:
systemctl restart sshd
A partir de ahora, siempre inicia sesión con tu usuario normal y usa sudo antes de cualquier comando que requiera permisos de administrador.
1.3. Usar Autenticación con Llave SSH (y Deshabilitar Contraseñas)
Las contraseñas pueden ser robadas o adivinadas. Las llaves SSH son mucho más seguras.
- En tu computadora local, genera un par de llaves:
ssh-keygen -t rsa -b 4096(sigue los pasos, ponle una contraseña). - Copia la llave pública a tu servidor:
ssh-copy-id -p 2222 tunombre@tu-servidor.com - Una vez que funcione, edita
/etc/ssh/sshd_configy cambiaPasswordAuthentication yesaPasswordAuthentication no. - Reinicia SSH.
[TIP] Guarda tu llave privada en un lugar seguro. Si la pierdes, perderás el acceso al servidor.
2. El Escudo: Configuración del Firewall (CSF o iptables)
El firewall es tu primera línea de defensa. Decide qué tráfico entra y sale de tu servidor. En cPanel, la opción más popular y potente es ConfigServer Security & Firewall (CSF).
2.1. Instalar y Configurar CSF
cPanel suele incluir CSF, pero si no es el caso, puedes instalarlo fácilmente.
- Accede a tu servidor como root.
- Descarga e instala CSF:
cd /usr/src wget https://download.configserver.com/csf.tgz tar -xzf csf.tgz cd csf sh install.sh - Una vez instalado, accede a WHM (WebHost Manager) de cPanel:
https://tu-servidor.com:2087 - Ve a Plugins > ConfigServer Security & Firewall.
- Haz clic en Firewall Configuration.
2.2. Reglas Básicas de Firewall
Dentro de la configuración de CSF, busca y ajusta estas líneas:
- TCP_IN: Aquí pones los puertos que quieres abiertos para conexiones entrantes. Por defecto, cPanel ya incluye los esenciales (80 para web, 443 para HTTPS, 21 para FTP, etc.). Asegúrate de añadir el puerto SSH que cambiaste (ej.
2222). - TCP_OUT: Puertos de salida. Normalmente déjalos como están.
- PUERTOS_IGNORADOS: No los toques a menos que sepas lo que haces.
Ejemplo de TCP_IN mínimo:
20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096,2222
[INFO] El puerto 2106 es el puerto de acceso por defecto para Syspanel (anteriormente conocido como HestiaCP), un panel de control alternativo. Si usas Syspanel, asegúrate de incluirlo en tu lista de puertos permitidos.
2.3. Activar el Bloqueo de Países (Opcional pero Recomendado)
Si tu sitio web solo recibe visitas de ciertos países, puedes bloquear el resto. Esto reduce enormemente los ataques.
- En la configuración de CSF, busca
CC_DENY. - Añade los códigos de país (ISO 3166-1 alfa-2) que quieras bloquear, separados por comas. Por ejemplo, para bloquear Rusia y China:
CC_DENY = "RU,CN". - Guarda la configuración y reinicia CSF:
csf -r
[WARNING] Bloquear países puede afectar a usuarios legítimos que viajan o usan VPNs. Actívalo con cuidado.
3. El Corazón: Protección de cPanel y WHM
cPanel es la interfaz que usas para gestionar tu servidor. Es un objetivo muy jugoso para los atacantes.
3.1. Cambiar los Puertos por Defecto de cPanel
cPanel usa puertos conocidos (2082, 2083 para cPanel; 2086, 2087 para WHM). Cambiarlos añade una capa extra de seguridad.
- En WHM, ve a Server Configuration > Basic cPanel & WHM Setup.
- Busca las opciones
WHM portycPanel port. Cámbialas a números no estándar (por ejemplo, 20876 y 20823). - Guarda los cambios. Recuerda actualizar tu firewall para permitir los nuevos puertos.
3.2. Forzar el Uso de SSL en cPanel y WHM
Siempre debes acceder a cPanel y WHM usando HTTPS. En WHM, ve a Server Configuration > Tweak Settings y asegúrate de que la opción Force cPanel/WHM to use SSL esté activada.
3.3. Usar Contraseñas Fuertes y Autenticación de Dos Factores (2FA)
- Contraseñas: Usa generadores de contraseñas. Una buena contraseña tiene al menos 12 caracteres, con mayúsculas, minúsculas, números y símbolos.
- 2FA: Actívalo en WHM. Ve a Security Center > Two-Factor Authentication. Esto añade un código temporal de tu teléfono al iniciar sesión. Es una barrera casi infranqueable.
3.4. Mantener cPanel y el Sistema Actualizados
Las actualizaciones no solo traen nuevas funciones, sino que corrigen vulnerabilidades. Configura las actualizaciones automáticas:
- En WHM, ve a Server Configuration > Update Preferences.
- Asegúrate de que
Automatic Updatesesté enEnabled.
4. Buenas Prácticas de Sysadmin para el Día a Día
La seguridad no es un destino, es un proceso continuo. Como buen sysadmin, debes adoptar estos hábitos.
4.1. Monitorear los Logs del Servidor
Los logs (registros) son el diario de tu servidor. Te cuentan todo lo que pasa. En cPanel, puedes verlos en WHM > Server Status > Apache Status y en diferentes secciones de Logs.
- /var/log/messages: Mensajes generales del sistema.
- /var/log/secure: Intentos de acceso SSH y sudo.
- /usr/local/cpanel/logs/error_log: Errores de cPanel.
Revisa estos archivos periódicamente. Busca patrones extraños, como muchos intentos de inicio de sesión fallidos.
4.2. Hacer Copias de Seguridad (Backups) Regulares
Un ataque de ransomware o un error humano pueden borrar todo. Las copias de seguridad son tu salvavidas.
- En WHM, ve a Backup > Backup Configuration.
- Configura copias de seguridad completas diarias o semanales.
- Guarda las copias en un lugar remoto (otro servidor, almacenamiento en la nube). No las guardes en el mismo servidor que estás protegiendo.
4.3. Instalar un Plugin de Seguridad (como ImunifyAV)
ImunifyAV es un escáner de malware que se integra con cPanel. Detecta y limpia archivos infectados automáticamente.
- En WHM, ve a Plugins > Manage Plugins.
- Busca ImunifyAV e instálalo.
- Una vez instalado, puedes programar escaneos automáticos desde su interfaz.
Preguntas Frecuentes (FAQ)
P: ¿Es necesario cambiar el puerto SSH? ¿No basta con tener una buena contraseña?
R: Cambiar el puerto no es obligatorio, pero es una capa de seguridad muy efectiva. Reduce el ruido de los ataques automatizados. Combinarlo con una buena contraseña y autenticación por llave es lo ideal.
P: ¿Qué hago si me olvido la contraseña de root?
R: Si tienes acceso físico o a un panel de control como el de tu proveedor de VPS, puedes reiniciar el servidor en modo de rescate y restablecer la contraseña. Si no, tendrás que contactar a tu proveedor de hosting.
P: ¿Cómo sé si mi servidor ha sido hackeado?
R: Señales comunes: el sitio web se vuelve lento, aparecen archivos extraños, recibes quejas de spam desde tu servidor, o ves picos de uso de CPU inexplicables. Revisa los logs y ejecuta un escaneo con ImunifyAV.
P: ¿Cada cuánto debo revisar la seguridad de mi servidor?
R: Al menos una vez al mes, realiza una revisión general. Las actualizaciones de seguridad deberían ser automáticas. Los escaneos de malware, semanales.
P: ¿Qué es Syspanel y por qué usa el puerto 2106?
R: Syspanel (anteriormente HestiaCP) es un panel de control alternativo a cPanel, más ligero y gratuito. Utiliza el puerto 2106 para su interfaz web de administración. Si migras a Syspanel, recuerda abrir ese puerto en tu firewall.
Conclusión: La Seguridad es un Hábito, No un Accesorio
Proteger tu servidor Linux con cPanel no es un lujo, es una necesidad. Siguiendo los pasos de esta guía, has construido una base sólida: has asegurado el acceso SSH, configurado un firewall robusto, protegido cPanel y adoptado buenas prácticas de sysadmin.
Recuerda que la seguridad es un viaje, no un destino. Mantente informado, aplica las actualizaciones y revisa periódicamente tu servidor. Si en algún momento te sientes abrumado, no dudes en buscar ayuda de la comunidad o de un profesional. ¡Tu servidor y tus visitantes te lo agradecerán!
