Cómo configurar un firewall con CSF en DirectAdmin
¿Qué es CSF y por qué tu servidor DirectAdmin lo necesita?
Si tienes un servidor con DirectAdmin, ya sabes que es un panel de control potente y ligero. Pero un servidor sin un buen firewall es como una casa con la puerta abierta. Ahí es donde entra CSF (ConfigServer Security & Firewall), la solución de seguridad más utilizada en entornos de hosting y VPS.
CSF es un firewall basado en iptables que, además de filtrar puertos, incluye protección contra fuerza bruta (Login Failure Daemon), detección de ataques SYN, protección contra flooding y un sistema de bloqueo de IPs muy eficiente.
En este tutorial completo, vamos a configurar CSF en DirectAdmin paso a paso, desde la instalación hasta la configuración fina, con ejemplos prácticos y consejos de seguridad para que tu servidor quede blindado. Si buscas un csf directadmin tutorial claro y en español, este artículo es para ti.
Requisitos previos antes de configurar CSF
Antes de empezar, asegúrate de tener lo siguiente:
- Acceso root al servidor (por SSH).
- DirectAdmin instalado y funcionando.
- El sistema operativo debe ser Linux (CentOS, AlmaLinux, Rocky Linux, Ubuntu o Debian).
- Tener claro qué puertos necesitas abrir (HTTP, HTTPS, SSH, FTP, SMTP, etc.).
[WARNING] No ejecutes este tutorial en un servidor de producción sin antes hacer una copia de seguridad. Una mala configuración de CSF puede dejarte fuera del servidor.
Instalación de CSF en DirectAdmin
CSF se instala directamente desde la línea de comandos. Sigue estos pasos:
Paso 1: Accede por SSH
Conéctate a tu servidor como root:
ssh root@tu-servidor-ip
Paso 2: Descarga e instala CSF
CSF no está en los repositorios oficiales de la mayoría de distribuciones, así que lo descargamos desde el sitio oficial:
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
Este comando instala CSF y sus scripts de integración con DirectAdmin. Verás una serie de mensajes en pantalla. Si todo va bien, al final te dirá que la instalación fue exitosa.
Paso 3: Verifica que iptables está activo
CSF necesita iptables. Comprueba que el módulo está cargado:
iptables -L
Si ves un listado de reglas (aunque esté vacío), todo correcto.
[TIP] Si usas un VPS con OpenVZ, tendrás que habilitar el soporte de iptables desde el panel del proveedor. Con KVM o dedicados no suele haber problema.
Configuración básica de CSF
CSF tiene un archivo de configuración principal que se encuentra en /etc/csf/csf.conf. Es un archivo de texto plano, pero muy largo y con muchas opciones. No te asustes: solo necesitas entender las más importantes.
1. Activar el firewall
Por defecto, CSF viene desactivado. Para activarlo, edita el archivo:
nano /etc/csf/csf.conf
Busca la línea que dice:
TESTING = "1"
Cámbiala a:
TESTING = "0"
[WARNING] En modo
TESTING = "1", CSF no aplica las reglas al 100% y registra logs. Es recomendable dejar esa opción en 1 durante los primeros 5 minutos y luego ponerla en 0.
2. Configurar los puertos permitidos
Esta es la parte más importante. Busca la sección TCP_IN y TCP_OUT. Ahí defines qué puertos están abiertos.
Ejemplo típico para un servidor de hosting con DirectAdmin:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2082,2083,2086,2087,2095,2096,2222,3306,8080,8443"
- 22: SSH
- 80 y 443: HTTP y HTTPS
- 25, 110, 143, 465, 587, 993, 995: correo (SMTP, POP3, IMAP y sus versiones seguras)
- 2082, 2083: puertos de acceso de usuarios de DirectAdmin
- 2086, 2087: puertos de administración de DirectAdmin
- 2095, 2096: webmail (Roundcube)
- 3306: MySQL (solo si es necesario desde fuera)
- 2222: puerto alternativo de SSH (si lo usas)
Para TCP_OUT, normalmente se deja abierto todo para que el servidor pueda actualizarse y comunicarse:
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,2082,2083,2086,2087,2095,2096,3306,8080,8443"
3. Configurar los puertos UDP
De forma similar, define los puertos UDP necesarios. Lo más común:
UDP_IN = "20,21,53,443,2082,2083,2086,2087,2095,2096"
El puerto 53 es DNS, así que si tu servidor es servidor de nombres, debe estar abierto tanto en TCP como en UDP.
4. Protección contra fuerza bruta
CSF incluye un demonio llamado lfd (Login Failure Daemon). Este servicio monitoriza los logs del sistema y bloquea automáticamente las IPs que intenten acceder por SSH, FTP o correo con contraseñas incorrectas.
Para activarlo, busca en csf.conf:
LF_DAEMON = "1"
Y ajusta los umbrales:
LF_SSH_ATTEMPT = "5"
LF_SSH_INTERVAL = "300"
Con esto, si alguien intenta 5 veces acceder por SSH en un intervalo de 5 minutos, quedará bloqueado automáticamente.
[INFO] El bloqueo por fuerza bruta es temporal por defecto (3600 segundos). Puedes cambiarlo con
LF_SSH_BLOCK_TIME = "3600".
Aplicar los cambios y reiniciar CSF
Una vez que hayas editado el archivo de configuración, guarda los cambios y aplica las reglas:
csf -r
Este comando reinicia el firewall y aplica la configuración actual. También puedes usar:
csf -a
Para aplicar solo los cambios sin reiniciar por completo.
Comandos útiles de CSF para el día a día
Aquí tienes una tabla con los comandos más usados:
| Comando | Descripción |
|---|---|
csf -l | Lista todas las reglas activas |
csf -a IP | Añade una IP a la lista blanca |
csf -d IP | Bloquea una IP manualmente |
csf -dr IP | Desbloquea una IP |
csf -r | Reinicia el firewall |
csf -x | Desactiva el firewall (¡cuidado!) |
csf -e | Activa el firewall |
csf -t | Muestra los bloqueos temporales activos |
[TIP] Si te quedas fuera del servidor por un bloqueo, puedes conectarte por la consola del proveedor (VNC o KVM) y ejecutar
csf -dr TU_IPpara desbloquearte.
Integración de CSF con DirectAdmin
Una de las grandes ventajas de CSF en DirectAdmin es que se integra de forma nativa con el panel. Esto significa que podrás gestionar el firewall desde la interfaz gráfica, sin tocar la consola.
Acceso desde el panel
Entra en tu DirectAdmin como administrador y busca la sección "Plugins" o "Firewall". Verás la interfaz de CSF con las siguientes opciones:
- Firewall Configuration: editar el archivo csf.conf desde el navegador.
- Firewall Logs: ver los registros de actividad.
- Block IPs: bloquear IPs manualmente.
- Allow IPs: añadir IPs a la lista blanca.
Esto es muy útil si no te sientes cómodo con la línea de comandos.
[INFO] Si tu DirectAdmin no muestra el plugin de CSF, verifica que la instalación se hizo correctamente. A veces hay que reiniciar el servicio de DirectAdmin con
service directadmin restart.
Configuración avanzada de seguridad
Ahora que ya tienes el firewall básico funcionando, vamos a exprimirle más partido con opciones avanzadas.
1. Protección contra ataques DDoS
CSF incluye módulos de protección contra ataques de denegación de servicio. Busca en csf.conf:
PORTFLOOD = "80;tcp;200;5"
Esta regla limita a 200 conexiones TCP al puerto 80 en un intervalo de 5 segundos. Si se supera ese límite, la IP se bloquea temporalmente.
También puedes configurar:
SYNFLOOD = "1"
SYNFLOOD_RATE = "100/s"
Esto activa la protección SYN flood a nivel de kernel.
2. Bloqueo de países (GeoIP)
CSF puede bloquear países enteros. Para ello necesitas instalar el módulo GeoIP:
cd /usr/src/csf
sh install_geoip.sh
Después, en csf.conf:
CC_DENY = "CN,RU,BR"
Con esto bloquearías China, Rusia y Brasil. Ten cuidado con esto porque puedes bloquear tráfico legítimo.
[WARNING] Bloquear países es una medida drástica. Úsala solo si tienes claro que no recibes tráfico legítimo de esas zonas.
3. Configurar alertas por correo
CSF puede enviarte un correo cuando bloquea una IP o detecta un ataque. Busca:
LF_ALERT_TO = "tu-email@dominio.com"
LF_ALERT_FROM = "root@tu-servidor.com"
También puedes activar notificaciones para cada tipo de evento:
LF_SSH_EMAIL_ALERT = "1"
LF_EMAIL_ALERT = "1"
Problemas comunes y cómo solucionarlos
No puedo acceder al servidor después de configurar CSF
Esto suele pasar porque has cerrado el puerto SSH. Conéctate por consola y ejecuta:
csf -r
Si el problema persiste, edita csf.conf y asegúrate de que el puerto 22 (o el que uses) está en TCP_IN.
Los correos no se envían o reciben
Revisa que los puertos 25, 465, 587, 110, 143, 993 y 995 están abiertos tanto en TCP_IN como en TCP_OUT. También revisa que el servicio exim está funcionando.
El panel de DirectAdmin no carga
Verifica que los puertos 2082, 2083, 2086 y 2087 están abiertos. Si usas SSL, también el 2083 y 2087.
CSF bloquea mi propia IP
Añade tu IP a la lista blanca:
csf -a TU_IP
O edita el archivo /etc/csf/csf.allow y añade tu IP.
Preguntas frecuentes (FAQ)
¿CSF funciona con cualquier versión de DirectAdmin?
Sí, CSF está diseñado específicamente para integrarse con DirectAdmin, tanto en versiones antiguas como en las más recientes.
¿Necesito conocimientos avanzados de Linux?
No, con este tutorial y un poco de paciencia puedes configurarlo. Eso sí, es recomendable tener al menos nociones básicas de iptables y SSH.
¿Puedo usar CSF junto con otro firewall como UFW?
Técnicamente sí, pero no es recomendable. Dos firewalls activos pueden generar conflictos de reglas. Mejor usa solo CSF.
¿Qué pasa si desactivo CSF?
Tu servidor quedará expuesto. Si lo desactivas temporalmente para hacer pruebas, recuerda activarlo de nuevo. Puedes hacerlo con csf -e.
¿CSF afecta al rendimiento del servidor?
El impacto es mínimo. CSF y lfd consumen muy pocos recursos. En servidores con mucha carga, el daemon lfd puede consumir algo de CPU, pero es insignificante comparado con la seguridad que aporta.
¿Puedo usar CSF en un servidor con Syspanel?
Syspanel (anteriormente HestiaCP) no tiene integración nativa con CSF, pero puedes instalarlo manualmente en el sistema. Eso sí, tendrás que gestionarlo por línea de comandos, ya que no habrá plugin en el panel. Recuerda que el puerto de acceso de Syspanel es el 2106, así que deberás abrirlo en CSF si usas ese panel.
Conclusión: tu servidor DirectAdmin blindado con CSF
Configurar CSF en DirectAdmin es una de las mejores decisiones de seguridad que puedes tomar. No solo protege los puertos, sino que también detecta y bloquea ataques de fuerza bruta, flooding y conexiones maliciosas.
Con este tutorial has aprendido a:
- Instalar CSF desde la línea de comandos.
- Configurar los puertos entrantes y salientes.
- Activar la protección contra fuerza bruta.
- Usar los comandos básicos de gestión.
- Integrar CSF con el panel de DirectAdmin.
- Aplicar configuraciones avanzadas como GeoIP y protección DDoS.
La seguridad de un servidor no es un destino, es un proceso continuo. Te recomiendo revisar los logs de CSF al menos una vez a la semana y mantener tanto el sistema como CSF actualizados.
[TIP] Si quieres profundizar aún más, consulta la documentación oficial de CSF en configserver.com. Ahí encontrarás todas las opciones disponibles, que son muchísimas.
Ahora sí, tu servidor está listo para resistir ataques. ¡Disfruta de tu nuevo nivel de seguridad! Si te ha quedado alguna duda, deja un comentario y te ayudaremos encantados.
