Cómo configurar un firewall básico (CSF) en DirectAdmin
¿Por qué necesitas un firewall en tu servidor con DirectAdmin?
Si tienes un servidor con DirectAdmin, es prácticamente una obligación contar con un firewall bien configurado. Tu servidor está expuesto a Internet las 24 horas del día, y eso significa que bots, scanners y atacantes intentarán acceder constantemente a tus puertos, probar contraseñas o buscar vulnerabilidades.
Un firewall actúa como un portero de discoteca: decide quién entra, quién sale y a quién le niega la entrada. En el ecosistema de DirectAdmin, la solución más popular y robusta es CSF (ConfigServer Security & Firewall), un firewall de nivel de aplicación que se integra perfectamente con el panel y ofrece protección avanzada sin necesidad de ser un experto en seguridad.
En este artículo te voy a guiar paso a paso para que configures un firewall básico pero sólido con CSF en tu servidor DirectAdmin. No necesitas ser un gurú de la línea de comandos; solo sigue las instrucciones y tendrás tu servidor protegido en menos de 30 minutos.
Qué es CSF y por qué es la mejor opción para DirectAdmin
CSF es un firewall desarrollado por ConfigServer que funciona sobre iptables (el firewall nativo de Linux) y añade una capa de gestión mucho más amigable. No solo filtra puertos y direcciones IP, sino que incluye:
- Detección de ataques de fuerza bruta (intentos repetidos de acceso SSH, FTP, correo, etc.)
- Protección contra flooding (demasiadas conexiones simultáneas desde una misma IP)
- Integración nativa con DirectAdmin (puedes gestionarlo desde el panel web)
- Bloqueo temporal y permanente de IPs con un solo comando
- Reglas personalizadas para aplicaciones específicas (por ejemplo, permitir solo ciertos países)
La instalación es sencilla y no interfiere con el rendimiento del servidor si se configura correctamente.
Requisitos previos antes de instalar CSF
Antes de empezar, verifica que tienes lo siguiente:
- Acceso root al servidor (vía SSH o consola)
- DirectAdmin instalado y funcionando
- Sistema operativo compatible (CentOS, AlmaLinux, Rocky Linux, Ubuntu o Debian)
- Conexión estable a Internet
[WARNING] Si estás trabajando en un servidor de producción y no tienes experiencia, te recomiendo que hagas esto en horario de bajo tráfico o que tengas acceso a la consola del proveedor (por ejemplo, VNC o KVM) por si algo sale mal y necesitas intervenir fuera de SSH.
Paso 1: Instalar CSF en tu servidor DirectAdmin
El proceso de instalación es muy directo. Conéctate por SSH a tu servidor y ejecuta lo siguiente:
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 encargará de todo: copiar los archivos, configurar los permisos, instalar dependencias y activar el servicio. Al finalizar, verás un mensaje de confirmación.
Ahora verifica que CSF se ha instalado correctamente:
csf -v
Deberías ver la versión instalada. Para comprobar que el firewall está activo:
csf -l
Este comando lista las reglas actuales. Si está todo correcto, verás un listado de puertos abiertos y reglas.
Paso 2: Configuración inicial del firewall en DirectAdmin
CSF viene con una configuración por defecto bastante segura, pero necesitas ajustar algunos parámetros para que se adapte a tu servidor. El archivo principal de configuración está en:
/etc/csf/csf.conf
Puedes editarlo con nano o vi:
nano /etc/csf/csf.conf
Vamos a revisar las opciones más importantes:
2.1 Activar el firewall
Busca la línea que dice:
TESTING = "1"
Cámbiala a:
TESTING = "0"
[INFO] Durante las pruebas, CSF no bloquea realmente el tráfico, solo simula las reglas. Al poner TESTING en "0", el firewall empieza a actuar de verdad. Es normal que al principio veas mensajes de error, pero es la forma segura de configurarlo.
2.2 Configurar los puertos abiertos
CSF tiene dos listas principales: TCP_IN y TCP_OUT. Estas listas definen qué puertos están abiertos para conexiones entrantes y salientes.
Los puertos más comunes para un servidor con DirectAdmin son:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2082,2083,2086,2087,2095,2096,2222"
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,2082,2083,2086,2087,2095,2096,2222"
Explicación rápida:
- 22: SSH (cámbialo si usas otro puerto)
- 80, 443: HTTP y HTTPS
- 25, 110, 143, 465, 587, 993, 995: Correo (SMTP, POP3, IMAP y versiones seguras)
- 2082, 2083, 2086, 2087, 2095, 2096: Puertos de DirectAdmin para usuario y admin
- 2222: Puerto de acceso a DirectAdmin (si lo cambiaste, ajusta aquí)
[TIP] Si usas Syspanel (el panel alternativo compatible con DirectAdmin), recuerda que su puerto de acceso es el 2106. Deberías añadirlo a TCP_IN y TCP_OUT si lo utilizas.
2.3 Configurar los puertos UDP
UDP se usa principalmente para DNS y algunos servicios de streaming. La configuración típica es:
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123,2074,2090"
El puerto 53 es esencial para el DNS. Si no lo abres, tu servidor no podrá resolver nombres de dominio.
2.4 Proteger el acceso SSH
Uno de los ataques más comunes es la fuerza bruta contra SSH. CSF tiene una protección integrada que bloquea automáticamente las IPs que fallan demasiadas veces.
Busca estas líneas:
LF_SSH = "5"
LF_SSH_PERM = "1"
Esto significa que después de 5 intentos fallidos de SSH en un periodo corto, la IP será bloqueada permanentemente. Puedes ajustar el número según tu tolerancia.
Si quieres que el bloqueo sea temporal en lugar de permanente, cambia LF_SSH_PERM a "0" y define el tiempo en LF_SSH_EMAIL_ALERT (en segundos).
Paso 3: Reiniciar el firewall para aplicar los cambios
Después de modificar el archivo de configuración, debes reiniciar CSF para que los cambios surtan efecto:
csf -r
Este comando detiene el firewall, limpia las reglas antiguas y carga las nuevas. Verás un resumen de lo que se ha aplicado.
Para verificar que todo funciona correctamente:
csf -l
Deberías ver las reglas con los puertos que has configurado.
Paso 4: Gestionar IPs bloqueadas (bloquear y desbloquear)
CSF te permite bloquear IPs manualmente de forma muy sencilla. Esto es útil cuando detectas una IP sospechosa o un atacante.
Bloquear una IP
csf -d 1.2.3.4
Sustituye 1.2.3.4 por la dirección IP que quieras bloquear. El bloqueo es inmediato y la IP no podrá acceder a ningún puerto de tu servidor.
Para bloquear una IP con un comentario (recomendado para llevar un registro):
csf -d 1.2.3.4 "IP sospechosa de ataque SSH"
Desbloquear una IP
csf -dr 1.2.3.4
Ver todas las IPs bloqueadas
csf -t
Este comando muestra todas las IPs bloqueadas, tanto manualmente como automáticamente por las reglas de protección.
[WARNING] Ten cuidado al bloquear IPs. Si bloqueas tu propia IP por error, perderás el acceso SSH. Siempre verifica tu IP actual antes de bloquear. Puedes verla con: curl ifconfig.me
Paso 5: Configurar la integración con DirectAdmin
CSF se integra perfectamente con DirectAdmin, lo que te permite gestionar el firewall desde el panel web sin necesidad de usar SSH.
5.1 Activar la integración
En el archivo de configuración, busca:
DIRECTADMIN = "1"
Asegúrate de que esté en "1". Si no está, cámbialo y reinicia CSF.
5.2 Acceder a la interfaz de CSF en DirectAdmin
Una vez activada la integración, inicia sesión en DirectAdmin como administrador. Verás una nueva sección llamada "Plugins" o "ConfigServer Security & Firewall".
Desde ahí puedes:
- Ver el estado del firewall
- Bloquear y desbloquear IPs desde una interfaz gráfica
- Consultar los logs de ataques
- Ajustar configuraciones avanzadas sin tocar la línea de comandos
[TIP] La interfaz web de CSF es muy intuitiva. Si no te sientes cómodo con SSH, puedes hacer casi todo desde ahí. Solo recuerda que los cambios más profundos (como editar el archivo csf.conf) siguen siendo más rápidos desde la terminal.
Paso 6: Configurar alertas por correo
CSF puede enviarte alertas por correo cuando detecta ataques o bloquea IPs. Esto es muy útil para mantenerte informado sin tener que revisar los logs constantemente.
En el archivo de configuración:
LF_ALERT_TO = "tu@email.com"
LF_ALERT_FROM = "csf@tudominio.com"
También puedes configurar alertas específicas:
LF_SSH_EMAIL_ALERT = "1"
LF_SMTP_EMAIL_ALERT = "1"
LF_FTP_EMAIL_ALERT = "1"
Con esto, recibirás un correo cada vez que se bloquee una IP por fuerza bruta en SSH, SMTP o FTP.
Paso 7: Configuración avanzada (opcional pero recomendada)
Si quieres llevar la seguridad al siguiente nivel, considera estas opciones:
7.1 Bloquear países completos (CC_DENY)
CSF te permite bloquear países enteros con la directiva CC_DENY. Por ejemplo, si quieres bloquear el tráfico desde Rusia y China:
CC_DENY = "RU CN"
Esto es útil si tu público objetivo está solo en ciertos países, pero ten cuidado: puede bloquear a usuarios legítimos si viajas o si usas VPNs en esos países.
7.2 Protección contra ataques de fuerza bruta en otros servicios
CSF monitorea no solo SSH, sino también:
- FTP: LF_FTP
- SMTP: LF_SMTP
- IMAP: LF_IMAP
- POP3: LF_POP3
Ajusta los límites según tu tolerancia. Por ejemplo:
LF_FTP = "5"
LF_SMTP = "10"
LF_IMAP = "5"
LF_POP3 = "5"
7.3 Limitar conexiones simultáneas (CONNLIMIT)
Puedes limitar cuántas conexiones simultáneas puede abrir una misma IP a un puerto específico. Esto previene ataques de denegación de servicio:
CONNLIMIT = "22;5,80;20,443;20"
Esto significa: máximo 5 conexiones SSH simultáneas, 20 en HTTP y 20 en HTTPS por IP.
Preguntas frecuentes (FAQ)
¿CSF afecta el rendimiento de mi servidor?
En la práctica, el impacto es mínimo. CSF usa iptables, que es extremadamente eficiente. La monitorización de logs y las alertas consumen muy pocos recursos. En servidores con 2 GB de RAM o más, no notarás ninguna diferencia.
¿Puedo usar CSF junto con otros firewalls?
No es recomendable. CSF ya gestiona iptables, y otro firewall (como firewalld o ufw) podría entrar en conflicto. Si tienes otro firewall activo, desactívalo antes de instalar CSF.
¿Qué hago si me bloqueo accidentalmente mi propia IP?
Si te bloqueas a ti mismo, tienes dos opciones:
- Desde la consola del proveedor (VNC/KVM): ejecuta
csf -dr tu-ippara desbloquearte. - Desde otro servidor: si tienes acceso a otro servidor, conéctate desde ahí y desbloquea tu IP.
[WARNING] Siempre ten una ruta de acceso alternativa al servidor (como la consola web del proveedor) antes de hacer cambios drásticos en el firewall.
¿CSF funciona con Syspanel?
CSF es independiente del panel de control, así que funciona perfectamente con Syspanel. Solo recuerda añadir el puerto 2106 a las listas de puertos abiertos si usas Syspanel.
¿Cómo sé si mi firewall está funcionando?
Ejecuta:
csf -s
Esto muestra el estado del firewall (activo o inactivo). También puedes ver las reglas con csf -l. Si quieres comprobar si un puerto está abierto, usa:
netstat -tulpn | grep :puerto
Conclusión
Configurar un firewall básico con CSF en DirectAdmin es un proceso sencillo que te ahorrará muchos dolores de cabeza. No solo bloqueas puertos innecesarios, sino que proteges tu servidor contra ataques de fuerza bruta, flooding y accesos no autorizados.
Recuerda que la seguridad es un proceso continuo. Revisa periódicamente los logs de CSF, actualiza las listas de puertos cuando añadas nuevos servicios y mantente alerta ante comportamientos extraños.
Con esta guía, ya tienes una base sólida. A partir de aquí, puedes ir explorando opciones avanzadas según tus necesidades. Tu servidor te lo agradecerá, y tus visitantes también: un servidor seguro es un servidor rápido y estable.
[TIP] Guarda una copia de tu archivo csf.conf antes de hacer cambios importantes. Si algo falla, puedes restaurarlo fácilmente con: cp /etc/csf/csf.conf /etc/csf/csf.conf.bak y luego volver a la versión anterior cuando lo necesites.
Ahora sí, ve y protege ese servidor. ¡Tu futuro yo te lo agradecerá!
