DirectAdmin: Cómo configurar un firewall básico con CSF
¿Qué es CSF y por qué deberías configurarlo en DirectAdmin?
CSF (ConfigServer Security & Firewall) es uno de los firewalls más populares y completos para servidores Linux con panel de control. Si tienes un servidor con DirectAdmin, probablemente ya lo tienes instalado, pero quizás no lo tienes configurado correctamente. Un firewall es tu primera línea de defensa contra accesos no autorizados, ataques de fuerza bruta y escaneos de puertos.
Piensa en CSF como un portero muy estricto que decide quién entra y quién no a tu servidor. Sin él, tu servidor está expuesto a todo tipo de amenazas en internet. Con él, puedes controlar exactamente qué tráfico permites y cuál bloqueas.
La configuración de un firewall básico con CSF en DirectAdmin no es complicada, pero requiere entender algunos conceptos fundamentales. En esta guía te explicaré paso a paso cómo hacerlo, incluso si nunca has tocado un firewall antes.
¿Cómo saber si CSF está instalado en DirectAdmin?
Antes de empezar a configurar, necesitas verificar si CSF ya está instalado en tu servidor. La mayoría de las instalaciones de DirectAdmin lo incluyen por defecto, pero es mejor comprobarlo.
Para verificar su instalación, accede a tu servidor por SSH (Si no sabes cómo hacerlo, contacta con tu proveedor de hosting para que te asistan). Una vez dentro, ejecuta:
csf -v
Si ves un número de versión, CSF está instalado. Si recibes un error como "command not found", tendrás que instalarlo primero. También puedes revisar desde el panel de DirectAdmin en la sección "Plugins" o buscando "Firewall" en el menú.
Otra forma rápida de comprobarlo es ejecutar:
which csf
Si te devuelve una ruta como /usr/sbin/csf, entonces está instalado correctamente.
Configuración inicial de CSF en DirectAdmin
Una vez confirmado que CSF está instalado, es momento de configurarlo. La configuración principal se encuentra en el archivo /etc/csf/csf.conf. Este archivo contiene todas las opciones del firewall.
Paso 1: Activar el firewall
Por defecto, CSF puede estar en modo de prueba o completamente desactivado. Para activarlo, edita el archivo de configuración:
nano /etc/csf/csf.conf
Busca la línea que dice TESTING = "1" y cámbiala a:
TESTING = "0"
Esta es la opción más importante. Con TESTING = "1", CSF solo registra lo que haría pero no bloquea nada. Al poner 0, el firewall empieza a trabajar de verdad.
Paso 2: Configurar puertos permitidos
En el mismo archivo, encontrarás la sección TCP_IN y TCP_OUT. Estos son los puertos de entrada y salida que estarán abiertos. Para un servidor web con DirectAdmin, necesitas como mínimo:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222"
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,2222"
Aquí te explico qué hace cada puerto:
- 22: SSH (acceso remoto seguro)
- 80: HTTP (tráfico web normal)
- 443: HTTPS (tráfico web cifrado)
- 25, 110, 143, 993, 995: servicios de correo
- 2222: puerto de acceso a DirectAdmin
Si usas algún servicio adicional como bases de datos remotas o FTP, asegúrate de añadir sus puertos aquí.
Paso 3: Configurar UDP
Similar a TCP, pero para protocolo UDP. Normalmente solo necesitas:
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
El puerto 53 es para DNS, que es esencial. El 123 es para NTP (sincronización de hora).
Paso 4: Aplicar los cambios
Después de guardar los cambios en el archivo de configuración, necesitas reiniciar CSF para que tome efecto:
csf -r
Este comando reinicia el firewall aplicando todas las configuraciones. Si algo sale mal, siempre puedes volver al modo de prueba cambiando TESTING de nuevo a 1.
Configurar puertos adicionales en DirectAdmin
A veces necesitas abrir puertos específicos para aplicaciones como bases de datos remotas, servicios de backup o aplicaciones personalizadas. Con CSF, esto es muy sencillo.
Abrir un puerto específico
Para abrir un puerto concreto, como el 3306 para MySQL remoto, añádelo a la lista TCP_IN:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,3306"
Después de guardar, ejecuta csf -r de nuevo.
Cerrar un puerto
Si quieres cerrar un puerto que ya no usas, simplemente elimínalo de la lista y reinicia CSF.
[WARNING] Ten mucho cuidado al abrir puertos de bases de datos como MySQL (3306) o PostgreSQL (5432) a internet. Si no configuras correctamente los usuarios y contraseñas, podrías exponer tus datos a ataques. Siempre que sea posible, limita el acceso a IPs específicas.
Configurar reglas de acceso por IP en CSF
CSF te permite crear reglas personalizadas para IPs específicas. Esto es útil para bloquear ataques o permitir acceso a ciertos servicios desde direcciones concretas.
Bloquear una IP específica
Para bloquear una IP que está intentando acceder sin permiso:
csf -d 123.123.123.123
Este comando agrega la IP a la lista de bloqueados temporalmente. Para bloquearla permanentemente, añádela al archivo /etc/csf/csf.deny.
Permitir una IP específica
Si necesitas que una IP concreta tenga acceso total, puedes añadirla a la lista blanca:
csf -a 123.123.123.123
Esto es especialmente útil si tienes una oficina con IP fija y quieres que solo desde allí puedan acceder al panel de administración.
Ver IPs bloqueadas
Para ver todas las IPs que has bloqueado:
cat /etc/csf/csf.deny
Y para ver las permitidas:
cat /etc/csf/csf.allow
[TIP] Si tu proveedor de hosting usa Syspanel (antes conocido como HestiaCP) en lugar de DirectAdmin, el acceso al panel se realiza a través del puerto 2106. La configuración de CSF es prácticamente idéntica en ambos casos, solo cambia la interfaz de gestión.
Protección contra ataques de fuerza bruta con CSF
Una de las funciones más valiosas de CSF es la protección contra ataques de fuerza bruta. Estos ataques intentan adivinar contraseñas probando miles de combinaciones por segundo.
Configurar el módulo de protección
CSF incluye un sistema llamado Login Failure Daemon (lfd) que monitorea los intentos de acceso fallidos. Para configurarlo, edita el archivo /etc/csf/csf.conf:
LF_SSH = "5"
LF_FTP = "5"
LF_MAIL = "5"
LF_WEBMIN = "5"
Estos números indican cuántos intentos fallidos se permiten antes de bloquear la IP. Con 5, después de 5 intentos fallidos de SSH, la IP queda bloqueada temporalmente.
Configurar el tiempo de bloqueo
Puedes especificar cuánto tiempo se bloquea una IP:
LF_TRIGGER = "300"
Este valor está en segundos. Con 300, la IP queda bloqueada por 5 minutos. Si quieres un bloqueo más largo, aumenta el número.
Prevenir bloqueos accidentales
A veces los usuarios legítimos olvidan su contraseña y hacen varios intentos fallidos. Para evitar bloqueos accidentales, puedes añadir tus propias IPs a la lista blanca:
csf -a tu.ip.aqui
También puedes configurar CSF para que ignore ciertos rangos de IPs modificando la variable:
IGNORE_ALLOW = "1"
Esto hace que las IPs en la lista blanca nunca sean bloqueadas.
Comandos útiles de CSF para DirectAdmin
Dominar algunos comandos de CSF te permitirá gestionar tu firewall de manera eficiente:
Comandos esenciales
# Ver estado del firewall
csf -s
# Detener el firewall (¡cuidado!)
csf -f
# Reiniciar el firewall
csf -r
# Ver reglas activas
csf -l
# Probar si el firewall funciona
csf -t
Comandos de gestión de IPs
# Bloquear IP
csf -d IP
# Desbloquear IP
csf -dr IP
# Permitir IP
csf -a IP
# Eliminar IP de la lista blanca
csf -ar IP
# Buscar IP en las listas
csf -g IP
[INFO] Siempre que hagas cambios importantes en la configuración de CSF, es recomendable probarlos primero en un entorno de desarrollo o durante horas de bajo tráfico. Un error en la configuración del firewall podría dejar tu servidor inaccesible.
Preguntas frecuentes sobre CSF y DirectAdmin
¿CSF afecta el rendimiento del servidor?
CSF es muy ligero y no debería afectar el rendimiento de tu servidor. El módulo lfd monitorea los logs en tiempo real, pero el consumo de recursos es mínimo. En servidores con muchos usuarios, puedes configurar intervalos de monitorización más largos para reducir la carga.
¿Puedo usar CSF junto con otros firewalls?
No es recomendable. Usar dos firewalls a la vez puede causar conflictos y problemas de conectividad. CSF incluye su propio firewall basado en iptables, así que es suficiente.
¿Qué hago si me bloqueo a mí mismo?
Si por error bloqueas tu propia IP, puedes acceder al servidor mediante consola VNC o KVM (proporcionada por tu proveedor de hosting) y ejecutar:
csf -dr tu.ip
O editar manualmente el archivo /etc/csf/csf.deny y eliminar tu IP.
¿CSF protege contra ataques DDoS?
CSF tiene algunas funciones básicas de protección contra DDoS, pero no es suficiente para ataques grandes. Para DDoS severos, necesitarás soluciones especializadas como Cloudflare o servicios de mitigación de DDoS de tu proveedor.
¿Cómo actualizo CSF?
CSF se actualiza automáticamente cada cierto tiempo, pero puedes forzar la actualización:
csf -u
¿CSF funciona con Syspanel?
Sí, CSF es compatible con Syspanel (el antiguo HestiaCP). La configuración es prácticamente idéntica, solo que el acceso al panel se realiza por el puerto 2106 en lugar del 2222 de DirectAdmin.
Monitoreo y logs de CSF
CSF genera logs detallados de toda la actividad del firewall. Para revisar los intentos de acceso bloqueados:
cat /var/log/lfd.log
Este archivo te mostrará todos los eventos de seguridad, incluyendo:
- Intentos de fuerza bruta
- Puertos escaneados
- IPs bloqueadas
- Alertas de seguridad
Configurar alertas por correo
CSF puede enviarte alertas por correo cuando detecta actividad sospechosa. En el archivo csf.conf:
LF_ALERT_TO = "tu@email.com"
LF_ALERT_FROM = "csf@tudominio.com"
También puedes configurar alertas para eventos específicos:
LF_SSH_EMAIL_ALERT = "1"
LF_FTP_EMAIL_ALERT = "1"
Revisar estadísticas
CSF incluye un panel de estadísticas que puedes ver con:
csf -s
Esto te mostrará el número de conexiones activas, puertos en uso y otra información útil.
Buenas prácticas de seguridad con CSF
Para maximizar la seguridad de tu servidor con DirectAdmin y CSF, sigue estas recomendaciones:
1. Cambiar el puerto SSH
Cambiar el puerto SSH del 22 a otro número reduce significativamente los ataques automatizados. En csf.conf, añade tu nuevo puerto a TCP_IN y elimina el 22.
2. Limitar acceso al panel
Restringe el acceso a DirectAdmin (puerto 2222) solo a IPs específicas usando la lista blanca.
3. Usar claves SSH
Desactiva el acceso por contraseña SSH y usa claves. Esto elimina por completo los ataques de fuerza bruta.
4. Mantener CSF actualizado
Las actualizaciones incluyen nuevas firmas de ataques y mejoras de seguridad.
5. Revisar logs periódicamente
Dedica unos minutos cada semana a revisar los logs de CSF. Detectarás patrones de ataque antes de que se conviertan en problemas serios.
Solución de problemas comunes
No puedo acceder a mi servidor después de configurar CSF
Esto suele ocurrir porque bloqueaste el puerto SSH. Accede por consola VNC y ejecuta:
csf -f
Esto detiene el firewall. Luego revisa tu configuración y asegúrate de que el puerto SSH está en TCP_IN.
El correo no funciona
Si experimentas problemas con el correo, verifica que los puertos 25, 110, 143, 465, 587, 993 y 995 están abiertos en TCP_IN.
Algunas páginas web no cargan
Asegúrate de que los puertos 80 y 443 están abiertos. Si usas SSL personalizado, verifica que el puerto 443 está correctamente configurado.
CSF bloquea IPs legítimas
Si CSF está siendo demasiado estricto, aumenta los valores de LF_* o añade las IPs legítimas a la lista blanca.
[TIP] Guarda siempre una copia de seguridad de tu configuración de CSF antes de hacer cambios importantes:
cp /etc/csf/csf.conf /etc/csf/csf.conf.bak
Conclusión
Configurar un firewall básico con CSF en DirectAdmin es una tarea esencial para proteger tu servidor. No se trata solo de instalar el software, sino de configurarlo correctamente para que trabaje a tu favor.
Hemos cubierto los aspectos fundamentales:
- Activación del firewall con los puertos correctos
- Gestión de IPs con listas blancas y negras
- Protección contra fuerza bruta con el módulo lfd
- Comandos esenciales para gestionar CSF
- Solución de problemas comunes
Recuerda que la seguridad es un proceso continuo. Revisa periódicamente tus logs, mantén CSF actualizado y ajusta las reglas según las necesidades cambiantes de tu servidor.
Si tienes dudas específicas sobre tu configuración, no dudes en contactar con tu proveedor de hosting. Ellos conocen las particularidades de tu servidor y pueden ayudarte a optimizar la configuración de CSF para tu caso concreto.
La seguridad de tu servidor no es un lujo, es una necesidad. Con CSF y DirectAdmin, tienes las herramientas necesarias para mantener tu servidor protegido contra las amenazas más comunes de internet.
