CSF (ConfigServer Firewall): el firewall estándar de cPanel
cPanel
21

CSF (ConfigServer Firewall): el firewall estándar de cPanel

CSF es prácticamente sinónimo de firewall en el mundo cPanel. Es gratuito, maduro y lleva años siendo la opción por defecto en servidores de hosting compartido. En el fondo es un wrapper sobre iptables (o nftables en distros modernas) que añade reglas predefinidas, un demonio de detección de fuerza bruta llamado LFD y una interfaz gráfica integrada en WHM.

Qué incluye

  • Firewall stateful con reglas entrantes y salientes.
  • LFD (Login Failure Daemon): monitorea logs y banea IPs que fallan repetidamente al loguearse.
  • Protección contra escaneos de puertos, SYN floods y ataques comunes.
  • Listas blancas, negras y temporales administrables desde WHM.
  • Integración con cPanel, WHM, Exim, Dovecot y varios servicios más.

Instalación manual

CSF no está en los repositorios estándar; se instala desde el sitio oficial:

cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

El script detecta automáticamente si estás en un servidor con cPanel, DirectAdmin o sin panel. Al terminar, corre el test de compatibilidad:

perl /usr/local/csf/bin/csftest.pl

Debe decir que todas las pruebas pasaron. Si algo falla, generalmente es un módulo de iptables ausente en el kernel.

Archivos de configuración

Todo vive en /etc/csf/. Los que vas a tocar más:

  • csf.conf: configuración principal. Acá defines puertos abiertos (TCP_IN, TCP_OUT), umbrales de LFD, notificaciones por correo, etc.
  • csf.allow: IPs permitidas siempre, incluso si intentan logins fallidos.
  • csf.deny: IPs bloqueadas permanentemente.
  • csf.ignore: IPs que LFD nunca banea (pero el firewall puede seguir filtrando).

LFD en acción

LFD observa logs como /var/log/secure, /var/log/exim_mainlog y similares. Cuando detecta demasiados fallos desde la misma IP, la añade a csf.deny automáticamente. Puedes ajustar los umbrales con variables como LF_TRIGGER, LF_SSHD, LF_FTPD. Por ejemplo:

LF_SSHD = 5
LF_SSHD_PERM = 3600

Eso banea temporalmente por una hora tras 5 intentos fallidos de SSH.

Integración con WHM

Después de instalar, en WHM encontrarás la sección ConfigServer Security & Firewall. Desde ahí puedes ver IPs baneadas, abrir puertos, editar csf.conf visualmente y hacer lookup de cualquier IP para saber si está listada, a qué país pertenece y qué servicios la han marcado.

Modo Test y paso a producción

Por defecto CSF arranca en modo test: la variable TESTING = "1" en csf.conf. En este modo, las reglas se limpian cada 5 minutos vía cron para que, si te equivocas y te auto-baneas, recuperes acceso rápido. Una vez que validas que todo funciona (puedes entrar por SSH, los sitios cargan, el correo sale), cámbialo a:

TESTING = "0"

Reinicia CSF con csf -r y queda en producción. Nunca saltes este paso: activar CSF directo en producción sin probarlo es la receta clásica para quedarte fuera de tu propio servidor.