CSF Firewall: El Primer Muro de Defensa de Tu Servidor cPanel en Chile
Cuando instalas cPanel/WHM en un servidor nuevo, uno de los primeros comandos que debes ejecutar es la instalación de CSF (ConfigServer Security & Firewall). Es el firewall estándar de la industria para servidores cPanel y llevamos desde 2013 instalándolo en cada servidor que configuramos.
Esta guía cubre la instalación, las configuraciones esenciales y los errores más comunes que vemos en servidores mal protegidos.
¿Qué es CSF y qué hace exactamente?
CSF es un firewall basado en iptables (el firewall del kernel Linux) con una interfaz de administración para cPanel/WHM. Incluye además LFD (Login Failure Daemon), un proceso que monitorea los logs en tiempo real y bloquea automáticamente IPs que hacen demasiados intentos fallidos de login.
Lo que CSF protege:
- Acceso SSH (bloquea fuerza bruta)
- Login de cPanel y WHM (bloquea fuerza bruta)
- FTP (bloquea fuerza bruta)
- Exim/SMTP (bloquea intentos de relay no autorizado)
- Puertos de red (solo permite los necesarios)
- Floods de conexiones (protección básica anti-DDoS)
Instalación de CSF en cPanel/WHM
cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
Después de instalar, CSF queda en modo TESTING=1 (no bloquea nada hasta que lo actives). Verifica que iptables funcione correctamente en tu servidor antes de desactivar el modo testing:
perl /usr/local/csf/bin/csftest.pl
Si todos los tests pasan, edita /etc/csf/csf.conf y cambia TESTING = "1" a TESTING = "0", luego reinicia CSF:
csf -r
Configuraciones esenciales en csf.conf
Puertos TCP/UDP a abrir
Solo abre los puertos que realmente necesitas. Esta es nuestra configuración base para un servidor cPanel típico:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096"
TCP_OUT = "20,21,22,25,53,80,110,113,443,465,587,993,995"
UDP_IN = "53"
UDP_OUT = "53,113,123"
Nota importante: Si cambiaste el puerto SSH del 22 a otro (recomendado), agrégalo a TCP_IN y TCP_OUT y quita el 22.
Configuración de LFD para bloqueo de fuerza bruta
LF_TRIGGER = "5" # Bloquear después de 5 intentos fallidos
LF_TRIGGER_PERM = "1" # Bloqueo permanente (no temporal)
LF_SSH = "5" # 5 fallos SSH = bloqueo
LF_CPANEL = "5" # 5 fallos cPanel = bloqueo
LF_SMTP_AUTH = "5" # 5 fallos SMTP AUTH = bloqueo
LF_FTPD = "5" # 5 fallos FTP = bloqueo
Lista blanca de IPs que nunca se bloquean
Agrega tu IP de oficina o casa en /etc/csf/csf.ignore para que nunca sea bloqueada accidentalmente:
# Tu IP fija de oficina
200.XXX.XXX.XXX
Muy importante: Si no tienes IP fija, configura al menos el rango de tu ISP para evitar bloquearte. Un bloqueo accidental en un servidor remoto sin acceso físico puede ser un problema serio.
CSF + BitNinja: cómo funcionan juntos
En todos nuestros servidores usamos CSF + BitNinja juntos. No se duplican — se complementan:
- CSF/LFD actúa a nivel de red/iptables. Bloquea IPs que hacen fuerza bruta a SSH, cPanel, FTP. Muy rápido, muy eficiente a nivel de kernel.
- BitNinja actúa a nivel de aplicación. Analiza el contenido del tráfico HTTP, bloquea por reputación global, tiene WAF y captcha inteligente. Ve cosas que CSF no puede ver.
Un bot que intenta explotar una vulnerabilidad de WordPress no hace fuerza bruta (CSF no lo ve), pero sí hace requests HTTP sospechosos (BitNinja lo bloquea).
Errores comunes con CSF que hemos visto en Chile
- Dejar TESTING=1 indefinidamente: El servidor parece protegido pero CSF no bloquea nada. Error muy común en servidores que «alguien configuró hace años».
- No agregar la propia IP a csf.ignore: El administrador se bloquea a sí mismo haciendo pruebas. Resultado: servidor inaccesible remotamente.
- Abrir todos los puertos en TCP_IN: Vimos servidores con TCP_IN = «0:65535» (todos los puertos abiertos). Equivale a no tener firewall.
- No configurar LF_TRIGGER_PERM=1: Por defecto CSF hace bloqueos temporales. Un bot que vuelve cada hora eventualmente entra.
- No revisar /var/log/lfd.log: LFD registra todos los bloqueos. Revisarlo periódicamente permite detectar ataques dirigidos.
Comandos CSF más usados en el día a día
csf -r # Reiniciar CSF y aplicar cambios
csf -l # Listar todas las IPs bloqueadas actualmente
csf -d 190.xxx.xxx.xxx # Bloquear una IP manualmente
csf -a 190.xxx.xxx.xxx # Desbloquear (allow) una IP bloqueada
csf -tr 190.xxx.xxx.xxx # Desbloquear IP temporal bloqueada por LFD
grep "BLOCK" /var/log/lfd.log | tail -50 # Ver últimos 50 bloqueos
Asesoría en configuración de CSF para tu servidor en Chile
Una mala configuración de CSF puede dejarte fuera de tu propio servidor o, peor, dejar el servidor completamente desprotegido. En SMTP Chile configuramos CSF correctamente desde el primer día, adaptado a los servicios que corre tu servidor.
Ver servicio de asesoría informática | Contactar
Preguntas Frecuentes sobre CSF
¿CSF es gratis?
Sí, CSF es completamente gratuito. Es desarrollado por ConfigServer y se instala de forma nativa en cPanel/WHM. La interfaz gráfica en WHM también es gratis.
¿CSF funciona sin cPanel?
Sí, CSF funciona en cualquier servidor Linux (CentOS, AlmaLinux, Ubuntu, Debian) aunque no tenga cPanel. Sin cPanel se gestiona solo por línea de comandos.
¿Cómo sé si CSF está activo y funcionando?
Ejecuta csf -l en terminal. Si devuelve la lista de reglas iptables, está activo. También puedes verificar en WHM → Plugins → ConfigServer Security & Firewall.
¿CSF puede bloquear ataques DDoS?
CSF tiene protección básica contra floods de conexiones (CT_LIMIT, SYNFLOOD). Para DDoS serios se necesita protección a nivel de datacenter o servicios como Cloudflare. CSF solo protege a nivel de servidor individual.