CSF en CentOS 7: instalación y guía completa

Qué es CSF
Config Server Firewall (CSF) es una suite de firewall basada en iptables para servidores Linux. También actúa como detector de inicio de sesión e intrusiones (LFD) para servicios como SSH, SMTP, IMAP, POP3 y el comando su. CSF puede, por ejemplo, detectar un inicio de sesión SSH y alertarte cuando ese usuario intenta ejecutar su para escalar privilegios. Soporta Exim, Dovecot, OpenSSH, Pure-FTPd, vsftpd, ProFTPD y puede integrarse en WHM/cPanel, DirectAdmin y Webmin.
Definición rápida: LFD (Login Failure Daemon) es el componente que analiza logs y aplica bloqueos automáticos.
Prerrequisitos
- CentOS 7 (en el ejemplo el servidor tiene la IP 192.168.1.101).
- Privilegios de root.
Qué haremos en este tutorial
- Instalar dependencias de CSF.
- Descargar e instalar CSF.
- Configurar CSF.
- Comandos básicos de CSF.
- Ajustes avanzados y buenas prácticas.
Paso 1 - Instalación de dependencias de CSF
CSF está escrito en Perl, por lo que necesitamos Perl en el servidor. También instalaremos wget para descargar el instalador y vim (o el editor que prefieras) para editar la configuración.
Ejecuta:
yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes
Importante: en servidores en producción verifica primero con yum localinstall y revisa que no rompa dependencias existentes.
Paso 2 - Instalar CSF
Ve al directorio /usr/src/ y descarga CSF con wget:
cd /usr/src/
wget https://download.configserver.com/csf.tgz
Extrae el archivo y ejecuta el instalador:
tar -xzf csf.tgz
cd csf
sh install.sh
Al final del script verás un mensaje indicando que la instalación ha terminado.
Ahora comprueba que CSF se ejecuta bien. Ejecuta el test incluido:
cd /usr/local/csf/bin/
perl csftest.pl
Si todo va bien verás:
RESULT: csf should function on this server
Paso 3 - Configurar CSF en CentOS 7
CentOS 7 usa por defecto firewalld. Antes de activar CSF debes detener firewalld y deshabilitarlo en el arranque.
Detener firewalld:
systemctl stop firewalld
Deshabilitarlo en el arranque:
systemctl disable firewalld
Editar la configuración de CSF:
cd /etc/csf/
vim csf.conf
Cambia la línea 11 TESTING a 0 para aplicar la configuración del firewall:
TESTING = "0"
Por defecto CSF permite tráfico entrante y saliente por el puerto SSH 22. Si usas otro puerto SSH añade el puerto en la directiva TCP_IN (línea 139 en la configuración original).
Iniciar servicios:
systemctl start csf
systemctl start lfd
Habilitar en el arranque:
systemctl enable csf
systemctl enable lfd
Ver las reglas activas por defecto:
csf -l
Importante: antes de cerrar una sesión SSH que uses para administrar el servidor, asegúrate de que la regla de SSH está correctamente configurada para evitar bloquearte a ti mismo.
Paso 4 - Comandos básicos de CSF
- Iniciar/aplicar reglas:
csf -s
- Vaciar/detener reglas:
csf -f
- Recargar reglas:
csf -r
- Permitir una IP y añadirla a csf.allow:
csf -a 192.168.1.109
Resultado típico:
Adding 192.168.1.109 to csf.allow and iptables ACCEPT...
ACCEPT all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
- Eliminar una IP de csf.allow:
csf -ar 192.168.1.109
- Denegar una IP y añadir a csf.deny:
csf -d 192.168.1.109
- Eliminar una IP de csf.deny:
csf -dr 192.168.1.109
- Desbloquear todas las entradas de csf.deny:
csf -df
- Buscar un patrón en iptables (IP, CIDR, puerto):
csf -g 192.168.1.110
Paso 5 - Configuración avanzada y ajustes útiles
Edita de nuevo /etc/csf/csf.conf para estos ajustes comunes.
- Ignorar IPs en csf.allow para que LFD no las bloquee nunca:
IGNORE_ALLOW = "1"
Esto es útil para IPs estáticas de administración.
- Permitir ICMP entrante y saliente (ping):
ICMP_IN = "1"
ICMP_OUT = "1"
- Bloquear por país usando códigos ISO (CIDR):
CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"
Nota: el filtrado por país se basa en listas CIDR externas. Revisa su impacto antes de aplicar en producción.
- Enviar alertas por email sobre inicios de sesión SSH y uso de su:
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
LF_ALERT_TO = "[email protected]"
Revisa también otras opciones detalladas en /etc/csf/csf.conf.
Buenas prácticas de seguridad y hardening
- Siempre prueba cambios desde una sesión root secundaria o desde la consola del proveedor para evitar quedarte fuera.
- Crea reglas que permitan solo los puertos necesarios (principio de mínimo privilegio).
- Mantén actualizado el sistema operativo y Perl.
- Revisa periódicamente csf.allow y csf.deny para eliminar entradas obsoletas.
- Activa alertas por email y/o integra LFD con tu sistema de monitoreo.
- Haz copias de seguridad de /etc/csf/csf.conf antes de cambios.
Mini metodología para desplegar CSF en producción:
- Preparación: prueba en un servidor staging con la misma configuración.
- Auditoría: listados de puertos y servicios requeridos.
- Instalación: instalar dependencias y CSF.
- Configuración básica: TESTING=0, definir puertos y IPs de administración.
- Pruebas: validar conectividad SSH, HTTP/HTTPS, correo y FTP según caso.
- Monitoreo: habilitar LF_* alerts y revisar logs 24–48 horas.
- Ajustes: afinar temporizadores y thresholds de LFD.
- Documentación: registrar cambios en el runbook.
Criterios de aceptación
- El servidor responde en los puertos permitidos desde IPs autorizadas.
- No hay bloqueos automáticos de administradores legítimos durante 48 horas.
- LFD genera alertas por intentos de acceso sospechoso.
Rollback rápido
- Conectar por consola del proveedor o sesión de emergencia.
- Ejecutar:
csf -f
systemctl restart firewalld # solo si vas a volver a firewalld
- Restaurar /etc/csf/csf.conf desde el backup.
- Revisar logs y elegir ajustes menos restrictivos.
Checklist por roles
Administrador de sistemas (sysadmin)
- Confirmar puerto SSH y usuarios administradores.
- Añadir IPs de administración a csf.allow.
- Hacer backup de csf.conf.
- Testear reglas sin cerrar sesión de administración.
Proveedor de hosting
- Integrar CSF en panel (WHM/cPanel, DirectAdmin, Webmin).
- Definir políticas de bloqueo por país si procede.
- Establecer SLA de desbloqueo para clientes.
Equipo de seguridad
- Revisar umbrales de LFD y false positives.
- Integrar alertas con SIEM o correo.
- Plan de respuesta ante bloqueos masivos.
Alternativas y cuándo no usar CSF
- Si tu entorno está basado en nftables o utiliza firewalld con zones avanzadas y prefieres mantener un único stack, puede ser mejor usar firewalld.
- Para reglas muy dinámicas integradas con orquestadores modernos (Kubernetes, cloud-native), considera soluciones específicas del proveedor (security groups, network policies).
- CSF es muy útil en servidores tradicionales de hosting. En entornos contenedorizados o serverless su utilidad es limitada.
Compatibilidad y migración desde firewalld o fail2ban
- Antes de deshabilitar firewalld, documenta las reglas activas y exporta iptables-save si es necesario.
- CSF puede reemplazar a fail2ban; sin embargo, revisa reglas y thresholds para evitar conflictos.
- Prueba migración en un nodo no crítico antes de aplicar a toda la flota.
Plantillas útiles
Plantilla mínima de csf.allow (ejemplo):
# IPs de administración
192.168.1.101
192.168.1.109
# IP de monitoring
10.0.0.5
Plantilla mínima de csf.deny (ejemplo):
# IPs bloqueadas manualmente
203.0.113.45
198.51.100.23
Tabla de verificación rápida antes de aplicar cambios:
Acción | Comprobación |
---|---|
Backup csf.conf | exists /etc/csf/csf.conf.bak |
SSH en lista blanca | IP admin en csf.allow |
TESTING | TESTING = “0” |
Servicios críticos | Puertos listados en TCP_IN/TCP_OUT |
Glosario (una línea cada término)
CSF: Config Server Firewall, firewall basado en iptables para servidores Linux. LFD: Login Failure Daemon, componente que vigila logs y aplica bloqueos. iptables: Subsistema de filtrado de paquetes en el kernel (usado por CSF). CIDR: Notación para rangos IP, usada en listas de país y redes.
Casos en los que CSF puede fallar o dar falsos positivos
- Umbrales de LFD demasiado estrictos en servicios con picos legítimos de conexiones (por ejemplo, servidores de correo en campañas masivas).
- IPs dinámicas de administradores móviles si no se usan VPNs o saltbox.
- Listas de bloqueo por país que impidan acceso legítimo desde CDN o servicios externos.
Resumen y siguientes pasos
CSF es una solución sólida para administradores de servidores y proveedores de hosting. Es relativamente fácil de instalar y potente cuando se combina con LFD y una política de alertas. Para producción, prueba en staging, automatiza backups de configuración y documenta el plan de rollback. Integra alertas con tu sistema de monitoreo y revisa periódicamente las listas allow/deny.
Importante: no olvides probar los cambios desde una sesión de emergencia o consola del proveedor para evitar quedar bloqueado.
Conclusión
CSF ofrece un control fino del tráfico y detección de intrusiones para servidores Linux basados en iptables. Soporta integración con paneles de hosting y tiene opciones amplias de configuración. Siguiendo esta guía podrás instalar CSF en CentOS 7, configurarlo, aplicar buenas prácticas de seguridad y preparar un despliegue seguro en producción.
Materiales similares

Ver TF1 en EE. UU. – 4 formas para evitar geobloqueos

Solucionar error Origin 65546:0

Arreglar contador '0 Subscribers' de Feedburner

Cómo transferir archivos entre iPad y Android

Escaleras en espiral y círculos en Conan Exiles
