Cómo configurar un cortafuegos en cPanel con CSF
¿Qué es CSF y por qué necesitas proteger tu servidor cPanel?
Cuando tienes un servidor con cPanel, estás gestionando un equipo que está expuesto a Internet las 24 horas del día. Eso significa que, tarde o temprano, alguien intentará acceder a él sin permiso. Por eso, una de las primeras cosas que debes hacer tras montar tu servidor es configurar CSF, también conocido como ConfigServer Security Firewall.
CSF es un firewall de nivel de aplicación y kernel que se integra perfectamente con cPanel. No es un simple cortafuegos de los que bloquean puertos; es una herramienta completa que incluye detección de intrusiones, protección contra fuerza bruta, filtrado de IPs y mucho más. En este artículo, te voy a explicar paso a paso cómo instalar y configurar CSF para proteger tu servidor cPanel, sin necesidad de ser un experto en seguridad.
Vamos a ello. Te prometo que al final de esta guía, tu servidor estará mucho más blindado y tú te sentirás más tranquilo.
Requisitos previos antes de instalar CSF
Antes de lanzarnos a instalar CSF, asegúrate de que cumples estos requisitos. Si no los tienes, podrías encontrarte con problemas durante la instalación.
Acceso SSH a tu servidor
Necesitas acceso por SSH (terminal) a tu servidor. Si no sabes cómo conectarte, puedes usar programas como PuTTY (en Windows) o la terminal nativa de Mac/Linux. Necesitarás las credenciales de root o de un usuario con privilegios sudo.
Sistema operativo compatible
CSF funciona en los principales sistemas operativos que soporta cPanel: CentOS, AlmaLinux, Rocky Linux, CloudLinux y Ubuntu (aunque cPanel ya no recomienda Ubuntu, sigue siendo posible). Asegúrate de que tu sistema está actualizado antes de empezar.
Tener instalado cPanel
Lógicamente, necesitas tener cPanel instalado y funcionando. CSF está diseñado para integrarse con él, así que si no tienes cPanel, esta guía no te servirá.
Configuración de red básica
Es recomendable que conozcas la IP pública de tu servidor y que tengas acceso al panel de tu proveedor de hosting para poder reiniciar el servidor si algo sale mal. No te preocupes, te daré consejos para evitar bloquearte fuera.
[WARNING] Si te equivocas con las reglas del firewall, podrías quedarte fuera de tu propio servidor. Asegúrate de tener acceso al panel de control de tu proveedor (como Vultr, DigitalOcean o Hetzner) para poder reiniciar o acceder por consola en caso de emergencia.
Paso 1: Instalar CSF en cPanel
La instalación de CSF es sorprendentemente sencilla, sobre todo porque cPanel tiene un mecanismo de instalación de plugins integrado. Te voy a mostrar dos formas de hacerlo: la más rápida (con comandos) y la recomendada (desde el panel).
Método 1: Instalación desde la línea de comandos (SSH)
Conéctate por SSH a tu servidor y ejecuta los siguientes comandos uno a uno:
-
Descarga el archivo de instalación:
cd /usr/src wget https://download.configserver.com/csf.tgz -
Descomprime el archivo:
tar -xzf csf.tgz -
Entra en el directorio recién creado:
cd csf -
Ejecuta el instalador:
sh install.sh
Este proceso tarda unos minutos. Al final, verás un mensaje de confirmación. Lo que hace el instalador es copiar los archivos a su ubicación definitiva, configurar los permisos y activar el módulo de Perl que necesita.
Método 2: Instalación desde cPanel (recomendado para novatos)
cPanel tiene una sección llamada Marketplace o Plugins donde puedes instalar CSF sin usar la terminal.
- Accede a tu WHM (Web Host Manager) con tu usuario root.
- Busca la sección Plugins o Marketplace en el menú lateral.
- Busca ConfigServer Security & Firewall y haz clic en Install.
- Sigue las instrucciones en pantalla.
Este método es más visual y evita posibles errores de tipeo, pero ambos funcionan perfectamente.
Paso 2: Configurar CSF por primera vez
Una vez instalado, no está activado por defecto. Debes configurarlo y activarlo manualmente. La configuración principal se encuentra en el archivo /etc/csf/csf.conf.
Acceder al archivo de configuración
Para editar el archivo, usa un editor de texto desde SSH, como nano o vi.
nano /etc/csf/csf.conf
Parámetros esenciales que debes revisar
Dentro de este archivo, hay varias opciones que son críticas para no quedarte fuera de tu servidor. Te las detallo a continuación.
1. Configurar la interfaz de red (INTERFACE)
Busca la línea que dice INTERFACE. Por defecto, suele estar vacía o con eth0. Si tu servidor usa una interfaz distinta (por ejemplo, ens3 o enp0s3), debes especificarla. Para saber cuál es tu interfaz, ejecuta este comando antes de editar el archivo:
ip addr show
Busca la que tiene tu IP pública y anota su nombre. Luego, en el archivo csf.conf, escribe:
INTERFACE = "eth0"
[INFO] Si no sabes qué interfaz es, déjalo en blanco. CSF intentará detectarla automáticamente, pero es mejor especificarla para evitar problemas.
2. Configurar la IP de tu servidor
Busca la línea SERVER_IP. Es muy importante que pongas aquí la IP pública de tu servidor. Si tienes varias IPs, puedes listarlas separadas por comas.
SERVER_IP = "192.168.1.100"
3. Activar el firewall (TESTING)
Esta es la opción más importante. Busca la línea que dice TESTING. Está configurada en 1 por defecto, lo que significa que el firewall está en modo de prueba. En este modo, CSF se activa pero se desactiva automáticamente después de un tiempo (por defecto, 5 minutos) para que no te quedes bloqueado.
TESTING = "1"
Cuando estés seguro de que todo funciona, cambia este valor a 0 para que el firewall esté siempre activo.
[TIP] Te recomiendo dejar
TESTING = "1"durante las primeras horas. Así, si algo sale mal, no te quedarás fuera del servidor para siempre. Una vez que confirmes que todo va bien, cámbialo a0.
Paso 3: Activar y probar CSF
Ahora que has configurado lo básico, es hora de activar el firewall.
Activar el servicio
Ejecuta estos comandos en orden:
-
Para probar la configuración:
csf -cEsto verificará que no hay errores en el archivo de configuración.
-
Para iniciar el firewall:
csf -s -
Para asegurarte de que se inicie automáticamente al arrancar el servidor:
systemctl enable csf
Verificar que todo funciona
Puedes comprobar el estado del firewall con:
csf -l
Este comando te mostrará todas las reglas activas. También puedes ver los puertos abiertos con csf -p.
Paso 4: Configurar puertos y servicios (reglas básicas)
CSF viene con una lista de puertos predefinidos. Sin embargo, es probable que necesites abrir o cerrar puertos específicos para tus aplicaciones.
Editar los puertos permitidos
En el archivo csf.conf, busca las líneas TCP_IN y TCP_OUT. Aquí es donde defines qué puertos están abiertos para conexiones entrantes y salientes.
Por ejemplo, para un servidor web estándar, deberías tener algo así:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2082,2083,2086,2087,2095,2096"
TCP_OUT = "20,21,22,25,37,43,53,80,110,113,443,587,873,993,995,2082,2083,2086,2087,2095,2096"
Si necesitas abrir un puerto específico, como el 3000 para una aplicación web, solo tienes que añadirlo a la lista. Por ejemplo:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2082,2083,2086,2087,2095,2096,3000"
Después de cualquier cambio, debes reiniciar el firewall:
csf -r
[TIP] No abras puertos innecesarios. Cada puerto abierto es una puerta potencial para un atacante. Si no sabes qué puerto necesitas, no lo abras.
Paso 5: Protección contra fuerza bruta (Login Failure)
Una de las características más potentes de CSF es su capacidad para bloquear IPs que intentan acceder por fuerza bruta (es decir, que prueban miles de contraseñas por minuto).
Activar y configurar la protección
En el archivo csf.conf, busca la sección LF_* (Login Failure). Estos son los ajustes clave:
LF_TRIGGER: Número de intentos fallidos antes de bloquear (por defecto, 5).LF_TRIGGER_PERM: Número de intentos fallidos para un bloqueo permanente (por defecto, 30).LF_INTERVAL: Ventana de tiempo en segundos para contar los intentos (por defecto, 60).LF_BLOCK_TIME: Duración del bloqueo temporal en segundos (por defecto, 600).
Un ejemplo de configuración razonable sería:
LF_TRIGGER = "5"
LF_TRIGGER_PERM = "30"
LF_INTERVAL = "60"
LF_BLOCK_TIME = "600"
Protección específica para cPanel
CSF también puede monitorear los intentos de acceso a WHM, cPanel, SSH, FTP, etc. Asegúrate de que las siguientes líneas estén en 1:
LF_CPANEL = "1"
LF_SSH = "1"
LF_FTP = "1"
LF_SMTPAUTH = "1"
Paso 6: Listas blancas y negras (manejo de IPs)
A veces necesitas bloquear manualmente una IP que está causando problemas o permitir una IP específica que no debería ser bloqueada por error.
Añadir una IP a la lista negra
Para bloquear una IP de forma permanente, usa el comando:
csf -d 192.168.1.50
Para desbloquearla:
csf -dr 192.168.1.50
Añadir una IP a la lista blanca
Si quieres asegurarte de que una IP nunca sea bloqueada (por ejemplo, la IP de tu oficina), puedes añadirla al archivo /etc/csf/csf.allow. Simplemente edita el archivo y añade la IP en una línea nueva.
nano /etc/csf/csf.allow
Después de guardar, recarga el firewall:
csf -r
Paso 7: Usar la interfaz gráfica de CSF en WHM
Aunque todo se puede hacer por terminal, CSF tiene una interfaz gráfica integrada en WHM que es muy útil para los que prefieren no usar comandos.
Acceder a la interfaz
- Inicia sesión en tu WHM.
- En el menú de la izquierda, busca Plugins.
- Haz clic en ConfigServer Security & Firewall.
Desde aquí puedes:
- Ver el estado del firewall.
- Modificar la configuración principal (es como editar el archivo
csf.conf, pero con botones). - Gestionar listas de IPs bloqueadas y permitidas.
- Ver los logs de ataques bloqueados.
- Activar o desactivar la protección contra fuerza bruta.
Esta interfaz es excelente para principiantes, ya que evita errores de sintaxis.
Paso 8: Configuraciones avanzadas (opcional pero recomendado)
Si quieres llevar la protección de tu servidor al siguiente nivel, aquí tienes algunas configuraciones avanzadas que vale la pena revisar.
Protección SYN Flood
Busca la línea SYNFLOOD y actívala:
SYNFLOOD = "1"
Esto protege contra ataques de denegación de servicio que saturan la tabla de conexiones del servidor.
Bloqueo de puertos de escaneo
CSF puede detectar y bloquear automáticamente puertos que se escanean de forma maliciosa. Busca PORTFLOOD y configúralo:
PORTFLOOD = "22;tcp;5;3"
Esto significa que si se intentan más de 5 conexiones TCP al puerto 22 en 3 segundos, la IP será bloqueada.
Notificaciones por correo
Configura una dirección de correo para recibir alertas cuando se bloquee una IP. Busca LF_ALERT_TO y añade tu correo:
LF_ALERT_TO = "tu@correo.com"
Solución de problemas comunes (FAQ)
Aquí te dejo las dudas más frecuentes que suelen tener los usuarios al configurar CSF.
¿Por qué no puedo acceder a mi servidor después de activar CSF?
Lo más probable es que hayas bloqueado el puerto 22 (SSH) o que la configuración de TCP_IN no incluya los puertos necesarios. Revisa que el puerto 22 esté en TCP_IN. Si no puedes acceder, usa la consola de tu proveedor de hosting para editar el archivo csf.conf y cambiar TESTING a 1.
¿Cómo sé si CSF está funcionando?
Ejecuta csf -l y verás las reglas activas. También puedes ver el estado con systemctl status csf.
¿Puedo usar CSF en un servidor que no tiene cPanel?
Sí, CSF funciona en servidores independientes, pero esta guía está enfocada a cPanel. Si usas Syspanel (antes conocido como HestiaCP), también puedes instalar CSF, pero la integración no será tan profunda. En Syspanel, recuerda que el puerto de acceso al panel es el 2106, así que asegúrate de que ese puerto esté abierto en tu configuración de CSF.
¿Con qué frecuencia debo actualizar las reglas?
CSF se actualiza automáticamente con los paquetes del sistema. Sin embargo, es una buena práctica revisar los logs semanalmente para ver si hay ataques recurrentes y ajustar las reglas en consecuencia.
¿CSF ralentiza mi servidor?
No de forma significativa. CSF está optimizado para funcionar con bajo consumo de recursos. En servidores modestos, el impacto es mínimo.
Conclusión y buenas prácticas finales
Configurar CSF en tu servidor cPanel es una de las mejores decisiones que puedes tomar para proteger tu infraestructura. No es un proceso complicado, pero requiere atención a los detalles.
Resumen de pasos clave
- Instala CSF desde la terminal o desde WHM.
- Configura los parámetros básicos (
INTERFACE,SERVER_IP,TESTING). - Activa el firewall y comprueba que todo funciona.
- Abre solo los puertos necesarios en
TCP_INyTCP_OUT. - Activa la protección contra fuerza bruta (
LF_*). - Gestiona listas blancas y negras para IPs específicas.
- Usa la interfaz gráfica de WHM para facilitar la gestión.
- Activa funciones avanzadas como SYN Flood y Port Flood.
Buenas prácticas para mantener tu servidor seguro
- Actualiza CSF regularmente: El equipo de ConfigServer lanza parches de seguridad con frecuencia.
- Revisa los logs:
/var/log/lfd.loges tu mejor amigo para detectar ataques. - No bloquees tu propia IP: Siempre añade tu IP a la lista blanca (
csf.allow). - Usa contraseñas fuertes: El firewall no sirve de nada si tu contraseña de root es "123456".
[WARNING] Si usas **
