¿Qué es CSF (ConfigServer Security and Firewall)? Una guía técnica completa
CSF, o ConfigServer Security & Firewall, es un firewall de inspección de paquetes con estado (SPI), un demonio de detección de fallos de inicio de sesión y una suite de refuerzo de seguridad para servidores Linux. Funciona como un frontend rico en funciones para iptables (y nftables en kernels más recientes), abstrayendo la gestión compleja de reglas en una capa de configuración estructurada mientras añade detección activa de amenazas a través de su demonio complementario, LFD (Login Failure Daemon).
Para cualquier servidor Linux en producción — ya sea ejecutando hosting compartido, un VPS o un entorno dedicado bare-metal — CSF proporciona defensa perimetral por capas: filtrado de tráfico entrante/saliente, análisis de registros en tiempo real, mitigación de fuerza bruta, detección de escaneo de puertos y control de acceso a nivel de país, todo gestionable a través de una CLI o una interfaz web integrada con cPanel, DirectAdmin o Webmin.
Cómo Funciona CSF Internamente
CSF no reemplaza iptables ni nftables — los gestiona. Cuando defines reglas en /etc/csf/csf.conf o manipulas listas de IP, CSF traduce esas directivas en reglas netfilter a nivel de kernel y las aplica de forma atómica.
La arquitectura tiene dos componentes principales que funcionan en paralelo:
- csf — el motor de reglas del firewall que lee los archivos de configuración y popula las cadenas
iptables/ip6tables. - lfd — un demonio persistente que monitorea los archivos de registro del sistema en tiempo real, evalúa los eventos de autenticación contra umbrales configurables e instruye a
csfpara bloquear o desbloquear direcciones IP dinámicamente.
Al iniciarse, CSF vacía las cadenas existentes y las reconstruye desde cero basándose en su configuración. Este enfoque de “pizarra en blanco” previene la acumulación de reglas y garantiza que el estado del firewall sea siempre determinista y auditable.
Modos de Operación de CSF
CSF opera en una de dos posturas fundamentales de tráfico:
Modo de Permiso (predeterminado para la mayoría de los despliegues): Todo el tráfico entrante y saliente se deniega por defecto. Solo se permiten los puertos explícitamente listados en las directivas TCP_IN, TCP_OUT, UDP_IN y UDP_OUT. Esta es la postura de producción recomendada.
Modo de Prueba (TESTING = "1"): CSF carga las reglas pero LFD no aplica bloqueos. Esto evita que te bloquees durante la configuración inicial. Siempre deshabilita el modo de prueba antes de poner en producción:
# In /etc/csf/csf.conf, set:
TESTING = "0"
# Then restart CSF:
csf -rCaracterísticas Clave de CSF Explicadas
Motor de Reglas del Firewall
CSF gestiona cuatro listas de puertos principales en csf.conf:
TCP_IN / UDP_IN — puertos abiertos para conexiones entrantes
TCP_OUT / UDP_OUT — puertos permitidos para conexiones salientes
Una configuración mínima de servidor web podría verse así:
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,587,993,995"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
Más allá de la gestión de puertos, CSF admite reglas basadas en CIDR, lo que permite permitir o denegar rangos de red completos. Las reglas se almacenan en archivos planos para facilitar el control de versiones:
Archivo
Propósito
/etc/csf/csf.allow
IPs o CIDRs permanentemente en lista blanca
/etc/csf/csf.deny
IPs o CIDRs permanentemente bloqueadas
/etc/csf/csf.ignore
IPs que LFD nunca bloqueará automáticamente
/etc/csf/csf.dyndns
Nombres de host DNS dinámicos para resolver automáticamente y permitir
Demonio de Fallos de Inicio de Sesión (LFD)
LFD es la capa de inteligencia activa de CSF. Monitorea archivos de registro — incluyendo /var/log/secure, /var/log/maillog, /var/log/exim_mainlog y otros — y cuenta los fallos de autenticación por IP de origen dentro de una ventana de tiempo configurable.
Directivas clave de configuración de LFD:
LF_TRIGGER — número de fallos antes de emitir un bloqueo
LF_INTERVAL — la ventana de tiempo deslizante (en segundos) para contar fallos
LF_DURATION — cuánto dura un bloqueo temporal (0 = permanente)
LF_SSH, LF_FTPD, LF_SMTPAUTH, LF_POP3D, LF_IMAPD — umbrales de fallos por servicio
Un ejemplo práctico de refuerzo: establece LF_SSH = "5" con LF_INTERVAL = "300" para bloquear cualquier IP que falle la autenticación SSH 5 veces en 5 minutos. Esta única directiva elimina la gran mayoría de los ataques automatizados de relleno de credenciales dirigidos al puerto 22.
Caso límite crítico: Si tu sistema de monitoreo o agente de respaldo se autentica desde una IP dinámica, eventualmente activará LFD. Siempre añade esas IPs de origen a /etc/csf/csf.ignore antes de ajustar los umbrales.
Detección de Intrusiones y Seguimiento de Procesos
Más allá del monitoreo de inicio de sesión, LFD realiza varias funciones de detección de intrusiones basadas en el host:
PT_LOAD — monitorea la carga de CPU y alerta o bloquea si un proceso supera los umbrales definidos, útil para detectar minería de criptomonedas o procesos desbocados en infraestructura compartida.
PT_USERMEM y PT_USERTIME — límites de memoria y tiempo de CPU por usuario, críticos para entornos de hosting web compartido donde el aislamiento de recursos es esencial.
LF_DIRWATCH — vigila directorios especificados en busca de cambios en archivos, proporcionando monitoreo rudimentario de integridad de archivos.
LF_SCRIPT_ALERT — detecta scripts que envían correos electrónicos excesivos, un indicador común de una aplicación PHP comprometida.
Detección de Escaneo de Puertos
CSF utiliza el seguimiento del módulo iptables recent para identificar hosts que sondean múltiples puertos en rápida sucesión. Las directivas PS_INTERVAL, PS_LIMIT y PS_PORTS controlan la sensibilidad. Cuando se detecta un escaneo de puertos, la IP de origen se añade inmediatamente a la lista de denegación y se envía una alerta.
Un detalle que vale la pena conocer: la detección agresiva de escaneo de puertos puede generar falsos positivos de escáneres de red legítimos utilizados por equipos de seguridad o servicios de monitoreo de disponibilidad. Añade esas IPs de escáner a csf.ignore de forma proactiva.
DDoS y Limitación de Velocidad de Conexión
CSF proporciona varios mecanismos para absorber o desviar ataques volumétricos:
CT_LIMIT — conexiones simultáneas máximas por IP. Establecer esto en 100–300 para servidores web evita que un solo host monopolice los slots de conexión.
CT_INTERVAL — con qué frecuencia se ejecuta el rastreador de conexiones.
SYNFLOOD y SYNFLOOD_RATE — habilita la protección contra inundaciones SYN de iptables con un límite de velocidad de paquetes configurable.
UDPFLOOD — limita la velocidad de paquetes UDP por IP, mitigando ataques de amplificación UDP.
Es importante entender el alcance de la mitigación DDoS de CSF: es efectivo contra ataques a nivel de aplicación y ataques de red de bajo volumen que se originan desde un número limitado de fuentes. Contra un DDoS volumétrico a gran escala (decenas de Gbps), se requiere null-routing upstream o un servicio dedicado de limpieza DDoS. CSF complementa pero no reemplaza la protección a nivel de red upstream.
Control de Acceso a Nivel de País (CC_DENY / CC_ALLOW)
CSF se integra con las bases de datos GeoIP de MaxMind para aplicar políticas de acceso geográfico. La directiva CC_DENY acepta códigos de país ISO 3166-1 alfa-2:
CC_DENY = "CN,RU,KP,IR"
Alternativamente, CC_ALLOW_FILTER combinado con CC_DENY = "ALL" crea una política geográfica de solo lista blanca — útil para servicios que legal u operativamente sirven solo a jurisdicciones específicas.
Problema operativo: Las bases de datos GeoIP no son perfectamente precisas. Los usuarios legítimos detrás de VPNs corporativas o nodos edge de CDN pueden parecer originarse desde un país bloqueado. Combina el bloqueo por país con la lista blanca de IP para socios conocidos.
Bloqueos Temporales y Desbloqueo
CSF admite bloqueos con límite de tiempo, que son preferibles a las prohibiciones permanentes para casos ambiguos:
# Block an IP for 3600 seconds (1 hour)
csf -td 192.168.1.100 3600 "Suspicious scan activity"
# Remove a temporary block manually
csf -tr 192.168.1.100
# Check if an IP is currently blocked
csf -g 192.168.1.100
Alertas por Correo Electrónico e Informes
CSF envía notificaciones por correo electrónico para una amplia gama de eventos. La directiva LF_ALERT_TO establece la dirección del destinatario. Las categorías de alertas incluyen:
Infracciones del umbral de fallos de inicio de sesión
Inicios de sesión root exitosos
Detecciones de escaneo de puertos
Violaciones de límites de recursos de procesos
Cambios en las reglas del firewall
Modificaciones de archivos sospechosas (si LF_DIRWATCH está habilitado)
Para servidores de alto tráfico, la fatiga de alertas es un riesgo operativo real. Usa umbrales LF_EMAIL_ALERT y considera enrutar las alertas de CSF a un buzón dedicado o una integración SIEM en lugar de una bandeja de entrada general. La entrega confiable de alertas depende de una pila de correo correctamente configurada — si estás ejecutando tu propia infraestructura de correo, el hosting de correo electrónico con la alineación adecuada de SPF/DKIM garantiza que las alertas de CSF no sean descartadas silenciosamente como spam.
Instalación de CSF en un Servidor Linux
CSF no está disponible en los repositorios estándar de distribución. La instalación es sencilla:
# Download the latest release
cd /usr/src
wget https://download.configserver.com/csf.tgz
# Extract and install
tar -xzf csf.tgz
cd csf
sh install.sh
Después de la instalación, verifica que todos los módulos iptables requeridos estén disponibles:
perl /usr/local/csf/bin/csftest.pl
Cualquier resultado FATAL indica módulos de kernel faltantes que deben resolverse antes de que CSF funcione correctamente. Los resultados WARN son informativos y generalmente no bloquean.
La configuración inicial se encuentra en /etc/csf/csf.conf. El primer paso más crítico es deshabilitar el modo de prueba y definir los puertos permitidos antes de reiniciar el demonio.
Integración de CSF con Paneles de Control
CSF incluye plugins de UI nativos para los tres paneles de control de hosting Linux dominantes:
Panel de Control
Método de Integración
Ubicación en la UI
cPanel / WHM
Plugin CSF para WHM
WHM > Plugins > ConfigServer Security & Firewall
DirectAdmin
Plugin CSF
Panel de administración > Funciones Extra
Webmin
Módulo CSF para Webmin
Webmin > Redes > ConfigServer Security & Firewall
La integración con WHM es la más completa en funciones, exponiendo el editor completo de archivos de configuración, búsqueda de IP, gestión de bloqueos temporales y visor de registros dentro de la interfaz de WHM. Para administradores que ejecutan VPS con cPanel, CSF es efectivamente la solución de firewall estándar — está preinstalado o es trivialmente instalable en prácticamente cualquier imagen de VPS con cPanel.
Para entornos sin panel de control, la CLI es completamente capaz. Comandos principales:
csf -s # Start firewall
csf -f # Stop (flush) firewall
csf -r # Restart firewall
csf -l # List current iptables rules
csf -a 203.0.113.5 # Allow an IP permanently
csf -d 203.0.113.5 # Deny an IP permanently
csf -g 203.0.113.5 # Check block status of an IP
csf -u # Check for CSF updates
CSF vs. Soluciones Alternativas de Firewall para Linux
Entender dónde encaja CSF en el ecosistema más amplio te ayuda a tomar una decisión arquitectónica informada.
Característica
CSF + LFD
UFW
firewalld
Fail2ban + iptables
Capa de abstracción principal
iptables / nftables
iptables / nftables
nftables / iptables
iptables / nftables
Mitigación activa de fuerza bruta
Integrada (LFD)
Ninguna (requiere combinación)
Ninguna (requiere combinación)
Característica principal
Integración con panel de control
Nativa (cPanel, DA, Webmin)
Ninguna
Ninguna
Limitada
GeoIP / bloqueo por país
Integrado
Ninguno
Ninguno
Mediante plugin
Detección de escaneo de puertos
Integrada
Ninguna
Ninguna
Mediante filtro
Monitoreo de procesos/recursos
Integrado (PT_*)
Ninguno
Ninguno
Ninguno
Complejidad de configuración
Media-Alta
Baja
Media
Media
Adecuado para hosting compartido
Sí
No
No
Parcial
Soporte IPv6
Sí (ip6tables)
Sí
Sí
Sí
Cuándo elegir CSF: Estás ejecutando un servidor cPanel/DirectAdmin/Webmin, un VPS o un servidor dedicado en un contexto multi-tenant o de hosting, o necesitas una sola herramienta que consolide la gestión del firewall, la detección de fuerza bruta y el monitoreo basado en host sin ensamblar múltiples herramientas separadas.
Cuándo considerar alternativas: Estás ejecutando un entorno de microservicios en contenedores donde la política de red se gestiona en la capa de orquestación (Kubernetes NetworkPolicy, Calico), o necesitas gestión nativa de nftables en una distribución moderna sin shims de compatibilidad heredados de iptables.
Casos de Uso Comunes y Escenarios de Despliegue
Asegurar un Servidor de Hosting Web
En un servidor cPanel típico, CSF debe configurarse para:
Abrir solo los puertos requeridos por los servicios activos (HTTP, HTTPS, SMTP, IMAP, POP3, FTP, SSH, DNS)
Habilitar LF_SCRIPT_ALERT para detectar mailers PHP comprometidos
Establecer CT_LIMIT para prevenir el agotamiento de conexiones desde una sola fuente
Habilitar la integración MODSEC si ModSecurity está instalado, correlacionando los bloqueos de WAF con caídas a nivel de firewall
Reforzar el Acceso SSH
Combinar CSF con autenticación SSH basada en clave y un puerto SSH no estándar crea una postura robusta de control de acceso:
# Allow only your management IP on the SSH port
# In /etc/csf/csf.allow:
tcp|in|d=2222|s=203.0.113.10 # Replace with your actual management IP and SSH port
Establece LF_SSH = "3" para bloquear cualquier IP después de tres intentos fallidos, y añade tu IP de gestión a csf.ignore para prevenir el auto-bloqueo accidental.
Proteger la Infraestructura de Correo Electrónico
Los servidores de correo son objetivos de alto valor para ataques de fuerza bruta. Los umbrales LFD por servicio de CSF (LF_SMTPAUTH, LF_POP3D, LF_IMAPD) deben establecerse de forma agresiva (3–5 fallos) en cualquier servidor que maneje SMTP autenticado. Combina esto con certificados SSL correctamente configurados en todos los puertos de correo para prevenir la interceptación de credenciales que haría inútil la protección contra fuerza bruta.
Cargas de Trabajo GPU y de Alto Rendimiento
Para entornos de hosting GPU que ejecutan APIs de inferencia ML o servicios de renderizado, la protección CT_LIMIT y SYNFLOOD de CSF es particularmente valiosa — estos servicios a menudo exponen endpoints de API de alto valor que atraen sondeos automatizados. Restringe los puertos de API a CIDRs de clientes conocidos mediante csf.allow y usa CC_DENY para filtrar geografías sin base de usuarios legítima.
Lista de Verificación de Refuerzo de Configuración de CSF
Antes de considerar un despliegue de CSF listo para producción, verifica lo siguiente:
TESTING = "0" está establecido y CSF ha sido reiniciado
TCP_IN y TCP_OUT contienen solo los puertos requeridos por los servicios activos — elimina los valores predeterminados que no aplican
Los umbrales LF_SSH, LF_FTPD, LF_SMTPAUTH están establecidos en 3–5 fallos
Tu(s) IP(s) de gestión están en /etc/csf/csf.ignore y /etc/csf/csf.allowCT_LIMIT está habilitado y establecido en un valor razonable (100–300 para servidores web)SYNFLOOD = "1" está habilitado en servidores con acceso a internetLF_SCRIPT_ALERT = "1" está habilitado en servidores que ejecutan aplicaciones PHPLF_ALERT_TO está establecido en un buzón monitoreadocsf -u se ejecuta periódicamente o está automatizado mediante cron para mantener CSF actualizadoperl /usr/local/csf/bin/csftest.pl no devuelve errores FATAL después de cualquier actualización del kernelMatriz de Decisión: ¿Es CSF la Herramienta Adecuada para Tu Entorno?
| Entorno | ¿CSF Recomendado? | Notas |
|---|---|---|
| VPS o servidor dedicado cPanel / WHM | Sí, ampliamente | Integración nativa, estándar de la industria |
| Servidor DirectAdmin | Sí | Soporte completo de plugin |
| VPS Linux bare sin panel de control | Sí | Gestión por CLI, conjunto completo de funciones |
| Hosting compartido (usuario final) | N/A | Gestionado por el host, no por el usuario final |
| Clúster Docker / Kubernetes | No | Usa políticas de red y herramientas basadas en eBPF |
| Windows Server | No | CSF es solo para Linux |
| Origen CDN de alto tráfico | Parcial | Combinar con protección DDoS upstream |
Preguntas Frecuentes
¿Cuál es la diferencia entre CSF y Fail2ban?
Ambas herramientas realizan bloqueo de IP por fuerza bruta analizando archivos de registro, pero CSF es una suite de seguridad completa que también gestiona las reglas del firewall subyacente, el acceso a puertos, la limitación de velocidad de conexión, el monitoreo de procesos y el filtrado GeoIP. Fail2ban es una herramienta enfocada en la prevención de intrusiones que depende de un firewall externo (iptables, nftables o firewalld) para su aplicación. En servidores de hosting con paneles de control, CSF es la solución operativamente más completa. En sistemas Linux mínimos o contenedores, Fail2ban combinado con firewalld puede ser más ligero y apropiado.
¿Puede CSF bloquear tráfico IPv6?
Sí. CSF gestiona tanto los conjuntos de reglas iptables (IPv4) como ip6tables (IPv6). El soporte IPv6 está habilitado por defecto cuando el kernel lo admite. Asegúrate de que IPV6 = "1" esté establecido en csf.conf y de que tus listas de puertos TCP6_IN / TCP6_OUT estén configuradas, ya que por defecto reflejan la configuración IPv4 pero pueden personalizarse de forma independiente.
¿Cómo evito bloquearme accidentalmente al configurar CSF?
Añade tu IP de gestión tanto a /etc/csf/csf.allow como a /etc/csf/csf.ignore antes de realizar cualquier cambio restrictivo. Mantén TESTING = "1" durante la configuración inicial — en modo de prueba, CSF carga las reglas pero LFD no aplica bloqueos, y las reglas se vacían automáticamente después de 5 minutos si no se confirman. Solo establece TESTING = "0" una vez que hayas verificado la conectividad.
¿Funciona CSF en servidores sin panel de control?
Sí, completamente. CSF se instala y gestiona íntegramente a través de la línea de comandos. La interfaz web es una capa de conveniencia opcional para entornos con panel de control. Toda la configuración se realiza a través de archivos planos en /etc/csf/ y el binario CLI csf. Muchos administradores prefieren la gestión solo por CLI para la auditabilidad y la automatización mediante herramientas de gestión de configuración como Ansible o Puppet.
¿Con qué frecuencia debe actualizarse CSF y cómo se hace?
CSF debe actualizarse cada vez que se lance una nueva versión, especialmente para cambios relevantes en seguridad. Comprueba si hay actualizaciones con csf -u, que compara la versión instalada con la última versión en el servidor de descargas de ConfigServer. Las actualizaciones pueden aplicarse directamente desde la UI del plugin de WHM o mediante la CLI. Automatiza la comprobación con un cron job semanal, pero aplica las actualizaciones manualmente después de revisar el registro de cambios — las actualizaciones de CSF ocasionalmente cambian los valores de configuración predeterminados que requieren revisión antes del despliegue.
