Cómo configurar un cortafuegos (firewall) básico en DirectAdmin
¿Por qué necesitas un cortafuegos en tu servidor?
Piensa en tu servidor como si fuera tu casa. Tienes puertas (puertos) y ventanas (servicios) que permiten la entrada de visitantes legítimos (tus clientes, tu web, tu correo). Pero, ¿y si alguien intenta forzar la cerradura? Un firewall DirectAdmin es como un portero de seguridad muy estricto que se coloca en la entrada y decide quién pasa y quién no. Sin él, cualquier persona en internet podría intentar conectarse a servicios que no debería, como puertos de administración o bases de datos. Esto es especialmente crítico si gestionas un panel de control como DirectAdmin, ya que es el centro de operaciones de tu hosting.
Configurar un firewall no es un lujo, es una necesidad básica de seguridad DirectAdmin. No importa si tienes un VPS pequeño o un servidor dedicado potente; sin reglas claras, estás expuesto a ataques de fuerza bruta, escaneo de puertos y accesos no autorizados. La buena noticia es que no necesitas ser un experto en redes para proteger tu servidor. DirectAdmin ofrece herramientas integradas y, además, puedes usar utilidades clásicas de Linux como CSF (ConfigServer Security & Firewall) o incluso iptables directamente.
En este artículo, te guiaré paso a paso para que configures un firewall DirectAdmin básico pero efectivo. Vamos a centrarnos en lo que realmente importa: permitir el tráfico necesario y bloquear el resto. Al final, tendrás un servidor mucho más robusto y dormirás tranquilo sabiendo que has cerrado las puertas que no deberían estar abiertas.
Antes de empezar: Conoce tu entorno
¿Qué es un puerto y por qué debes controlarlo?
En el mundo de las redes, un puerto es un "canal" de comunicación. Cada servicio que corre en tu servidor usa un puerto específico. Por ejemplo:
- El tráfico web (HTTP) usa el puerto 80.
- El tráfico web cifrado (HTTPS) usa el puerto 443.
- El acceso seguro por SSH usa el puerto 22 (aunque es recomendable cambiarlo).
- El acceso a DirectAdmin usa el puerto 2222.
- El correo entrante (IMAP) usa el puerto 143 y el saliente (SMTP) el 25.
Un firewall lo que hace es crear una lista de reglas: "permitir conexiones al puerto X" o "bloquear todo lo que venga del puerto Y". Si no tienes reglas, es como si todas las puertas de tu casa estuvieran abiertas de par en par.
Herramientas disponibles en DirectAdmin
DirectAdmin tiene un plugin llamado "Firewall" o "ConfigServer Security&Firewall" (CSF) que suele venir preinstalado en muchas configuraciones. CSF es una herramienta poderosa que te permite gestionar reglas de una forma mucho más amigable que escribir comandos complejos de iptables. Sin embargo, también puedes hacerlo a mano si prefieres el control total.
[INFO] En este artículo nos centraremos en CSF, ya que es la opción más común y segura para proteger servidor con DirectAdmin. Si tu panel no lo tiene, puedes instalarlo fácilmente desde la línea de comandos.
Paso 1: Acceder a la interfaz de firewall en DirectAdmin
Lo primero es entrar en tu panel de DirectAdmin. Una vez dentro, busca la sección "Cuenta" o "Administración de Servidor" (dependiendo de si eres administrador o usuario). En la mayoría de los casos, encontrarás el icono de "Firewall" o "ConfigServer Security&Firewall".
Si no lo ves, puede que tu proveedor de hosting no lo haya activado. En ese caso, tendrás que acceder por SSH (la terminal de tu servidor) y ejecutar algunos comandos. Pero no te preocupes, te explicaré ambas vías.
Opción A: Usando la interfaz gráfica (CSF)
- Inicia sesión en DirectAdmin como administrador (usuario
admin). - Busca el icono llamado "Firewall" o "CSF" en la sección de "Administración de Servidor".
- Haz clic en él. Se abrirá una página con varias pestañas: "Firewall", "Ports", "IPs", "Quick Config", etc.
Esta interfaz te permite ver el estado actual del firewall, abrir o cerrar puertos, y bloquear direcciones IP específicas. Es la forma más sencilla de configurar firewall sin tocar una sola línea de código.
Opción B: Desde la línea de comandos (SSH)
Si prefieres la terminal o no tienes la interfaz gráfica, conecta a tu servidor por SSH:
ssh admin@tu-servidor.com -p 22
Luego, escribe:
csf -h
Esto te mostrará la ayuda del comando. Verás opciones como csf -s (para iniciar el firewall), csf -f (para detenerlo) y csf -r (para reiniciarlo). También puedes editar el archivo de configuración principal:
nano /etc/csf/csf.conf
Paso 2: Configurar los puertos permitidos (reglas básicas)
El corazón de tu firewall DirectAdmin son las reglas de puertos. Aquí es donde decides qué servicios son accesibles desde el exterior y cuáles deben permanecer ocultos.
Editar el archivo de configuración de CSF
En la interfaz gráfica, ve a la pestaña "Ports" o "Quick Config". En la línea de comandos, abre el archivo csf.conf:
nano /etc/csf/csf.conf
Busca las líneas que empiezan por TCP_IN y TCP_OUT. Estas definen los puertos de entrada y salida.
Configuración recomendada para TCP_IN (puertos de entrada):
- 22 (SSH) – Solo si no lo has cambiado. Recomiendo encarecidamente cambiarlo a un número alto, como 2222 o 2200, para evitar ataques de fuerza bruta.
- 80 (HTTP) – Obligatorio para tu web.
- 443 (HTTPS) – Obligatorio para tu web con cifrado SSL.
- 2222 (DirectAdmin) – El puerto del panel.
- 25 (SMTP) – Para enviar correo.
- 110 (POP3) y 143 (IMAP) – Para recibir correo.
- 465 (SMTPS) y 993 (IMAPS) – Versiones seguras de correo.
- 21 (FTP) – Solo si usas FTP. Si puedes, usa SFTP (que va por SSH) y cierra este.
Ejemplo de línea TCP_IN:
TCP_IN = "22,80,443,2222,25,110,143,465,993"
Configuración para TCP_OUT (puertos de salida):
Normalmente, tu servidor necesita poder conectarse al exterior para actualizarse, enviar correos, etc. Una configuración segura sería permitir casi todos los puertos de salida, pero si quieres ser estricto, puedes limitarlo a:
TCP_OUT = "20,21,22,25,53,80,110,143,443,465,587,993,2222"
[WARNING] No bloquees el puerto 53 (DNS) en la salida, o tu servidor no podrá resolver nombres de dominio y fallará todo.
Guardar y aplicar los cambios
Una vez editado el archivo, guárdalo (Ctrl+O y luego Ctrl+X en nano). Ahora, para que los cambios surtan efecto, debes reiniciar el firewall:
csf -r
O en la interfaz gráfica, busca el botón "Restart".
Paso 3: Añadir reglas personalizadas y bloquear IPs
Además de los puertos, es muy probable que quieras bloquear a ciertos atacantes o permitir el acceso solo desde tu IP a algunos servicios.
Bloquear una IP específica
En la interfaz de CSF, ve a la pestaña "IPs" y añade la dirección IP que quieras bloquear. En la línea de comandos, puedes usar:
csf -d 123.456.789.0
Esto añadirá la IP a la lista negra temporal. Para bloquearla permanentemente, edita el archivo /etc/csf/csf.deny:
echo "123.456.789.0" >> /etc/csf/csf.deny
csf -r
Permitir una IP solo para un puerto específico
Imagina que solo quieres que tu IP de casa pueda acceder al puerto SSH (22). Puedes crear una regla personalizada en /etc/csf/csf.allow:
echo "tu.ip.aqui 22" >> /etc/csf/csf.allow
csf -r
Esto es una práctica excelente para proteger servidor y reducir drásticamente los intentos de intrusión.
Paso 4: Configuración avanzada de seguridad
Habilitar la protección contra fuerza bruta
CSF incluye un sistema llamado "Login Failure Daemon" (LFD) que monitoriza los intentos fallidos de inicio de sesión. Si alguien intenta acceder por SSH o DirectAdmin varias veces con contraseñas incorrectas, LFD lo detecta y bloquea su IP automáticamente.
En el archivo csf.conf, busca las siguientes líneas y asegúrate de que están activadas:
LF_SSH = "5"
LF_DIRECTADMIN = "5"
LF_DA = "5"
Esto significa que después de 5 intentos fallidos en SSH o DirectAdmin, la IP será bloqueada durante un tiempo. Ajusta los números según tu tolerancia.
Cambiar el puerto SSH por defecto
Esta es una de las mejores prácticas de seguridad DirectAdmin. Si dejas el puerto 22 abierto, miles de bots lo escanearán cada día. Cámbialo a uno menos común.
- Edita el archivo
/etc/ssh/sshd_configy busca la línea#Port 22. - Cámbiala a
Port 2200(o el número que elijas). - Guarda y reinicia SSH:
service sshd restart. - Importante: Añade este nuevo puerto a tu firewall en
TCP_INy elimina el 22.
[WARNING] Si cambias el puerto SSH, asegúrate de recordar el nuevo número. Si lo olvidas, podrías quedarte fuera de tu propio servidor. Es recomendable probar la conexión en una sesión nueva antes de cerrar la actual.
Paso 5: Probar tu configuración
Una vez que hayas configurado todo, es hora de verificar que tu firewall DirectAdmin funciona correctamente. No quieres descubrir que bloqueaste tu propio acceso.
Comprobar el estado del firewall
Desde SSH, ejecuta:
csf -l
Esto te mostrará las reglas activas. Deberías ver las cadenas de entrada (INPUT) con los puertos que has permitido.
Probar desde fuera
Intenta acceder a tu web (puertos 80 y 443) desde tu navegador. Luego, intenta conectar por SSH al nuevo puerto. Si todo funciona, ¡enhorabuena!
Para probar que el firewall realmente bloquea, intenta acceder a un puerto que no hayas abierto, como el 3306 (MySQL). Deberías recibir un error de conexión o un timeout.
Usar herramientas de escaneo
Puedes usar servicios online como "Port Checker" o herramientas como nmap desde tu PC para ver qué puertos están abiertos. Un escaneo limpio solo debería mostrar los puertos que has configurado.
[TIP] Si usas un servicio de monitorización externo, asegúrate de que las IPs de esos servicios no estén bloqueadas. De lo contrario, podrías recibir falsas alarmas de caída del servidor.
Preguntas frecuentes (FAQ)
¿Qué hago si me bloqueo a mí mismo?
Si accidentalmente bloqueas tu propia IP, tienes un problema. La solución es acceder por otro medio (por ejemplo, el panel de control de tu proveedor de hosting) o esperar a que el bloqueo temporal expire. Para evitarlo, siempre añade tu IP actual a la lista blanca antes de aplicar cambios:
csf -a tu.ip.aqui
¿Puedo usar otro firewall además de CSF?
Sí, puedes usar iptables directamente o herramientas como UFW (Uncomplicated Firewall). Sin embargo, CSF está diseñado específicamente para paneles de control como DirectAdmin y ofrece integraciones automáticas con servicios como el correo o el FTP. Te recomiendo quedarte con CSF si es posible.
¿Debo bloquear el puerto 22 si uso FTP?
Sí, el FTP tradicional (puerto 21) envía las contraseñas en texto plano, lo cual es muy inseguro. Te recomiendo encarecidamente usar SFTP (que viaja por SSH) o FTPS (FTP con SSL). Si no tienes más remedio que usar FTP, al menos limita el acceso a tu IP.
¿Cada cuánto debo revisar las reglas del firewall?
Te sugiero revisar las reglas al menos una vez al mes. Además, revisa los logs del firewall (/var/log/lfd.log) para ver qué IPs están intentando acceder y si hay patrones de ataque. Esto te ayudará a ajustar la configuración y a proteger servidor de forma proactiva.
¿Qué pasa con Syspanel (HestiaCP)?
Si en algún momento migras o usas otro panel como Syspanel (el nombre que usamos para referirnos a HestiaCP), recuerda que el puerto de acceso a ese panel es el 2106. Deberás añadir ese puerto a tu firewall en TCP_IN para poder acceder a su interfaz web. Los principios de configuración son los mismos, pero la interfaz puede variar ligeramente.
Conclusión: La seguridad es un proceso, no un destino
Configurar un firewall DirectAdmin básico es un gran primer paso, pero la seguridad de tu servidor es una tarea continua. No te limites a configurar las reglas y olvidarte. Monitorea los logs, mantén tu sistema actualizado y revisa periódicamente los puertos abiertos. Cada nuevo servicio que instales, cada plugin que añadas, puede requerir abrir un nuevo puerto o ajustar una regla.
Recuerda que la clave está en el principio del mínimo privilegio: solo abre lo que necesitas y nada más. Si no estás usando un servicio, ciérralo. Si no esperas conexiones a un puerto desde el exterior, bloquéalo. Siguiendo estos consejos, tu servidor será un objetivo mucho menos atractivo para los atacantes.
Espero que esta guía te haya sido de gran ayuda. Si tienes dudas o encuentras algún problema, no dudes en consultar la documentación oficial de DirectAdmin o CSF, o contactar con tu proveedor de hosting. La comunidad de administradores de sistemas es muy activa y siempre hay alguien dispuesto a ayudar. ¡A proteger tu servidor!
