Cómo Configurar un Firewall (CSF) en DirectAdmin
¿Qué es CSF y por qué necesitas un firewall en DirectAdmin?
La seguridad de tu servidor es una de las tareas más importantes que tienes como administrador. Cada día, hay miles de bots y atacantes automáticos intentando acceder a puertos abiertos, probar contraseñas débiles o explotar vulnerabilidades conocidas. Un firewall bien configurado es tu primera línea de defensa, y CSF (ConfigServer Security & Firewall) es una de las herramientas más potentes y utilizadas en el ecosistema de hosting.
CSF es un firewall de aplicación que trabaja a nivel de red, filtrando el tráfico entrante y saliente. No es solo un simple cortafuegos: incluye un sistema de detección de intrusiones (conocido como Login Failure Daemon o LFD), protección contra fuerza bruta, integración con DirectAdmin y una interfaz de gestión muy completa.
Cuando hablamos de CSF DirectAdmin, nos referimos a la integración nativa que tiene este panel de control con el firewall. Esto significa que podrás gestionar reglas, abrir puertos, bloquear IPs y ver estadísticas directamente desde tu panel, sin necesidad de tocar la línea de comandos. Aunque, como veremos, la terminal nos da un control mucho más fino.
Para que te hagas una idea de su importancia: sin un firewall, todos los puertos de tu servidor están expuestos al mundo. Con CSF, puedes cerrar todo y solo abrir lo estrictamente necesario. Esto reduce drásticamente la superficie de ataque y te protege de ataques de fuerza bruta, intentos de explotación y malware que intenta conectarse a servidores externos.
A lo largo de esta guía extensa, vamos a explicarte desde los conceptos básicos hasta la configuración avanzada, siempre con un lenguaje claro y ejemplos prácticos. No necesitas ser un experto en redes, pero sí tener acceso a tu servidor como root y a DirectAdmin como administrador.
Requisitos previos antes de configurar el firewall
Antes de lanzarnos a instalar y configurar CSF, es fundamental que tengas en cuenta una serie de requisitos y precauciones. Un error aquí puede dejarte sin acceso a tu servidor, así que presta mucha atención.
Acceso y credenciales
Necesitas, sí o sí, acceso de root al servidor vía SSH. Si no sabes qué es SSH, es un protocolo que te permite conectarte a la terminal del servidor de forma segura. En Windows puedes usar programas como PuTTY, y en macOS o Linux simplemente abres la terminal y escribes ssh root@tu-servidor.com.
También necesitas acceso al panel de DirectAdmin como administrador. La URL típica es https://tu-servidor.com:2222.
Identifica tus servicios activos
Es un error muy común instalar un firewall sin saber qué puertos necesitas tener abiertos. Si bloqueas el puerto 2222 de DirectAdmin, te quedas sin panel. Si bloqueas el 21 (FTP), tus clientes no podrán subir archivos. Si bloqueas el 25 (SMTP), el correo dejará de funcionar.
Haz una lista de los servicios que usas habitualmente. Los más típicos en un servidor de hosting son:
- 22 para SSH.
- 2222 para DirectAdmin.
- 80 y 443 para HTTP y HTTPS (páginas web).
- 21 para FTP (aunque recomendamos usar SFTP, que va por SSH).
- 25, 110, 143, 993, 995 para correo (SMTP, POP3, IMAP y sus versiones seguras).
- 3306 para MySQL si necesitas acceso remoto (¡mejor mantenerlo cerrado!).
- 2106 para el puerto de acceso a Syspanel, si utilizas ese panel alternativo en algún servidor.
Haz una copia de seguridad de tu configuración
Antes de tocar nada, es recomendable que hagas una copia de seguridad de los archivos de configuración de DirectAdmin y de tu sistema. En la mayoría de los casos, esto es tan sencillo como comprimir una carpeta, pero si no sabes hacerlo, puedes esperar a tener el firewall instalado y usar la función de "backup" que incluye CSF.
Una vez tengas esto claro, podemos empezar.
Instalación de CSF en DirectAdmin paso a paso
La instalación de CSF no es complicada, pero requiere precisión. Vamos a hacerlo mediante comandos SSH. Si eres de los que prefiere la interfaz gráfica, tranquilo, que luego configuraremos todo desde DirectAdmin.
Paso 1: Conectarse por SSH
Abre tu cliente SSH y conéctate a tu servidor como root. Verás algo como root@servidor:~#. Aquí es donde vamos a trabajar.
Paso 2: Descargar e instalar CSF
CSF se distribuye como un paquete comprimido. Los comandos estándar para instalarlo en un sistema CentOS, AlmaLinux o CloudLinux (los más comunes con DirectAdmin) son:
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
El script de instalación se encarga de comprobar las dependencias, instalar los módulos necesarios de Perl y colocar los archivos en su sitio. Verás una salida larga en pantalla. Si todo va bien, al final aparecerá un mensaje de éxito.
Paso 3: Comprobar que el firewall puede funcionar
Antes de activarlo, CSF incluye una herramienta de verificación de compatibilidad con el kernel. Ejecuta:
perl /usr/local/csf/bin/csftest.pl
Este comando comprueba si los módulos de iptables y de red son compatibles. Si ves todo con OK, puedes continuar. Si hay algún FAIL, puede que tengas que actualizar el kernel o instalar paquetes adicionales, pero en servidores modernos esto es raro.
Paso 4: Configuración inicial básica
El archivo de configuración principal de CSF se encuentra en /etc/csf/csf.conf. Antes de activarlo, vamos a hacer un cambio crucial: poner el firewall en modo "testing" para evitar bloquearte. Edita el archivo:
nano /etc/csf/csf.conf
Busca la línea que dice TESTING = "0" y cámbiala a TESTING = "1". Esto hará que el firewall registre lo que haría, pero sin aplicarlo realmente. Cuando estés seguro de que todo funciona, lo pondremos a 0.
Guarda el archivo (en nano, Ctrl+O, luego Enter y Ctrl+X para salir).
Paso 5: Activar y arrancar el servicio
Ahora vamos a arrancar CSF y su demonio de detección de intrusiones LFD:
systemctl enable csf
systemctl enable lfd
systemctl start csf
systemctl start lfd
En servidores más antiguos sin systemd, los comandos serían chkconfig csf on y service csf start.
Paso 6: Verificar que está funcionando
Para ver las reglas activas de iptables que CSF ha aplicado, usa:
csf -l
Deberías ver una lista de cadenas y reglas. Si ves la lista, ¡enhorabuena! Ya tienes CSF DirectAdmin funcionando.
Configuración del firewall desde DirectAdmin
Ahora que tenemos el firewall instalado, vamos a configurarlo desde el panel. DirectAdmin integra CSF en su interfaz, lo que facilita mucho la gestión diaria.
Acceso a la interfaz de CSF en DirectAdmin
Inicia sesión en DirectAdmin como administrador. En el menú principal, busca la sección de "Plugins" o "Gestión de servidor". Deberías ver un icono o enlace llamado "ConfigServer Security&Firewall". Al hacer clic, se abrirá la interfaz de CSF.
Esta interfaz te permite hacer casi todo sin tocar la terminal. Las secciones más importantes son:
- Firewall Configuration: Acceso directo al archivo
csf.confdesde el navegador. - Firewall Allow/Deny: Aquí puedes añadir IPs o rangos de IPs permitidos o bloqueados.
- Firewall IP Search: Para buscar si una IP está bloqueada o permitida.
- Firewall Logs: Para ver los registros de actividad.
- LFD Logs: Registros del sistema de detección de intrusiones.
Abrir y cerrar puertos (TCP_IN y TCP_OUT)
La configuración más habitual es gestionar los puertos de entrada (TCP_IN) y salida (TCP_OUT). En la sección de Firewall Configuration, busca las líneas:
TCP_IN: Lista de puertos de entrada permitidos.TCP_OUT: Lista de puertos de salida permitidos.UDP_INyUDP_OUT: Lo mismo para el protocolo UDP.
Aquí es donde aplicamos la lista de servicios que hicimos al principio. Por ejemplo, un servidor de hosting estándar podría tener:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222"
Los puertos van separados por comas, sin espacios. Si necesitas añadir un puerto para una aplicación específica, solo tienes que añadirlo a la lista y reiniciar el firewall.
[WARNING] No abras puertos innecesarios. Cada puerto abierto es una puerta más para un atacante. Si no sabes para qué sirve un puerto, es mejor dejarlo cerrado.
Configurar la protección contra fuerza bruta (LFD)
El Login Failure Daemon (LFD) es el corazón de la seguridad de CSF. Vigila los logs del sistema y si detecta demasiados intentos fallidos de inicio de sesión (SSH, FTP, correo, DirectAdmin, etc.), bloquea automáticamente la IP del atacante.
En la configuración, busca estas opciones:
LF_DAEMON = "1": Activa el demonio.LF_SSH = "5": Número de intentos fallidos de SSH antes de bloquear.LF_SSH_PERM = "1": Si se bloquea de forma permanente o temporal.LF_INTERVAL = "30": El intervalo de tiempo (en minutos) en el que se cuentan los intentos.
Un valor de LF_SSH = "5" significa que si alguien falla 5 veces en 30 minutos, será bloqueado. Para un servidor con muchos usuarios, quizás quieras subirlo a 10 para evitar bloqueos accidentales.
Listas blancas y negras de IPs
En la sección Firewall Allow/Deny, puedes añadir IPs manualmente.
- Allow IP: Añade una IP a la lista blanca. Es útil para tu IP de oficina, para que nunca te bloqueen.
- Deny IP: Añade una IP a la lista negra. Bloquea inmediatamente todo el tráfico de esa IP.
También puedes usar la opción de "Quick Unblock" si te has bloqueado a ti mismo por error.
[TIP] Si te bloqueas tu propia IP, puedes conectarte por SSH desde otra red o usar la consola de tu proveedor (VNC, KVM) para desbloquearte. El comando desde SSH es
csf -a TU_IP.
Configuración avanzada y ajustes de seguridad
Una vez que tienes lo básico funcionando, es hora de afinar la configuración para una protección de ataques más robusta.
Protección contra ataques SYN Flood y Ping of Death
CSF incluye protecciones contra ataques de denegación de servicio (DoS) a nivel de red. Busca en csf.conf:
SYNFLOOD = "1": Activa la protección contra inundación SYN.SYNFLOOD_RATE = "100/s": El número máximo de paquetes SYN por segundo.SYNFLOOD_BURST = "150": El pico máximo permitido.
Para el ping, tenemos:
ICMP_IN = "1"yICMP_OUT = "1": Permite o deniega pings. Para evitar ser descubierto por escáneres, puedes ponerlos a "0".
Detección de puertos y escaneo
LFD también detecta escaneos de puertos. Si alguien intenta escanear tu servidor, será bloqueado automáticamente. La opción es:
LF_PORTSCAN = "1": Activa la detección.LF_PORTSCAN_UNIQ = "1": Hace que el bloqueo sea único para esa IP.
Protección de correo electrónico
Si tu servidor tiene problemas de spam o de cuentas comprometidas, CSF puede ayudar. Busca:
LF_MAIL = "1": Vigila los logs de correo.LF_MAIL_PERM = "1": Bloqueo permanente.LF_MAIL_LIMIT = "50": Número de correos por hora antes de bloquear.
Esto es muy útil para evitar que un script comprometido envíe miles de correos desde tu servidor.
Whois y GeoIP (bloqueo por país)
CSF puede bloquear países enteros si lo deseas. Esto requiere instalar el módulo GeoIP, pero es una opción muy potente. En la configuración:
CC_DENY = "CN,RU,BR": Bloquea los países que pongas (China, Rusia, Brasil en este ejemplo).CC_ALLOW = "ES,MX,AR": Solo permite esos países (útil si tu negocio es local).
[INFO] El bloqueo por país no es infalible. Un atacante puede usar una VPN o un servidor proxy en un país permitido. Úsalo como capa adicional, no como única defensa.
Configuración de correos de alerta
LFD puede enviarte correos electrónicos cuando bloquea una IP o cuando detecta algo sospechoso. Busca:
LF_ALERT_TO = "tu@email.com": La dirección donde recibirás las alertas.LF_ALERT_FROM = "lfd@tu-servidor.com": El remitente del correo.
Te recomiendo que actives esto, porque te dará una visibilidad excelente de lo que ocurre en tu servidor.
Pruebas, puesta en producción y resolución de problemas
Ya tienes todo configurado. Ahora es el momento de quitar el modo de pruebas y asegurarte de que no bloqueas a nadie legítimo.
Desactivar el modo testing
Edita /etc/csf/csf.conf y cambia TESTING = "1" a TESTING = "0". Luego reinicia el firewall:
csf -r
Este comando reinicia todas las reglas y aplica la configuración nueva. A partir de este momento, el firewall está en modo de producción total.
Cómo comprobar que todo va bien
Después de reiniciar, intenta acceder a tu página web, a DirectAdmin, envía un correo de prueba. Si todo funciona, perfecto. Si algo falla, revisa los logs:
tail -f /var/log/lfd.log
Este comando te muestra en tiempo real lo que LFD está registrando. Es la herramienta más útil para diagnosticar bloqueos.
Desbloquear una IP bloqueada por error
Si has bloqueado una IP legítima, puedes desbloquearla con:
csf -dr IP_AFECTADA
O desde la interfaz de DirectAdmin en la sección Firewall Allow/Deny, buscando la IP y eliminándola de la lista.
Problemas comunes y soluciones
- No puedo acceder por SSH: Revisa que el puerto 22 está en
TCP_IN. Si no, conéctate por la consola del proveedor y corrígelo. - El correo no sale: Asegúrate de que los puertos 25, 465 y 587 están abiertos en
TCP_OUT. - DirectAdmin no carga: Verifica que el puerto 2222 está en
TCP_IN. - El sitio web carga lento: Puede ser que LFD esté bloqueando muchas IPs y eso consuma recursos. Revisa los logs y ajusta los límites.
Preguntas Frecuentes (FAQ)
¿Qué hago si me bloqueo mi propia IP?
Si te has bloqueado, tienes varias opciones. La más rápida es conectarte por SSH desde otra IP (por ejemplo, usando los datos de tu móvil) y ejecutar csf -a TU_IP. Si no tienes acceso, usa la consola de tu proveedor de hosting (VNC o KVM) para entrar y desbloquearte.
¿CSF afecta al rendimiento del servidor?
El impacto es mínimo. CSF usa iptables, que funciona a nivel de kernel, por lo que es muy eficiente. El demonio LFD consume muy pocos recursos. En servidores con mucha
