Guía de tecnologías

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

7 min read Seguridad Actualizado 07 Oct 2025
CSF en CentOS 7: instalación y guía completa
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.

Captura de instalación de CSF completada

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

Captura indicando que CSF se está ejecutando

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

  1. Iniciar/aplicar reglas:
csf -s
  1. Vaciar/detener reglas:
csf -f
  1. Recargar reglas:
csf -r
  1. 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
  1. Eliminar una IP de csf.allow:
csf -ar 192.168.1.109
  1. Denegar una IP y añadir a csf.deny:
csf -d 192.168.1.109
  1. Eliminar una IP de csf.deny:
csf -dr 192.168.1.109
  1. Desbloquear todas las entradas de csf.deny:
csf -df
  1. 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.

  1. 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.

  1. Permitir ICMP entrante y saliente (ping):
ICMP_IN = "1"
ICMP_OUT = "1"
  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.

  1. 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:

  1. Preparación: prueba en un servidor staging con la misma configuración.
  2. Auditoría: listados de puertos y servicios requeridos.
  3. Instalación: instalar dependencias y CSF.
  4. Configuración básica: TESTING=0, definir puertos y IPs de administración.
  5. Pruebas: validar conectividad SSH, HTTP/HTTPS, correo y FTP según caso.
  6. Monitoreo: habilitar LF_* alerts y revisar logs 24–48 horas.
  7. Ajustes: afinar temporizadores y thresholds de LFD.
  8. 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

  1. Conectar por consola del proveedor o sesión de emergencia.
  2. Ejecutar:
csf -f
systemctl restart firewalld  # solo si vas a volver a firewalld
  1. Restaurar /etc/csf/csf.conf desde el backup.
  2. 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ónComprobación
Backup csf.confexists /etc/csf/csf.conf.bak
SSH en lista blancaIP admin en csf.allow
TESTINGTESTING = “0”
Servicios críticosPuertos 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.

Autor
Edición

Materiales similares

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

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

Solucionar error Origin 65546:0
Soporte técnico

Solucionar error Origin 65546:0

Arreglar contador '0 Subscribers' de Feedburner
WordPress

Arreglar contador '0 Subscribers' de Feedburner

Cómo transferir archivos entre iPad y Android
Transferencia de Archivos

Cómo transferir archivos entre iPad y Android

Escaleras en espiral y círculos en Conan Exiles
Guía de juego

Escaleras en espiral y círculos en Conan Exiles

Ver Instagram en privado: métodos anónimos
Privacidad

Ver Instagram en privado: métodos anónimos