Configurar un firewall básico en Syspanel (CSF)
¿Qué es CSF y por qué necesitas un firewall en tu servidor?
Cuando tienes un servidor Linux, ya sea para alojar tu web, un proyecto personal o el negocio de un cliente, la seguridad es una de las primeras cosas que debes tener en cuenta. No importa si tu servidor es pequeño o si apenas tiene visitas: los bots y atacantes automáticos escanean la red constantemente en busca de puertos abiertos o servicios vulnerables. Ahí es donde entra en juego el firewall CSF.
CSF (ConfigServer Security & Firewall) es una de las herramientas más populares y completas para gestionar la seguridad de un servidor Linux. No es solo un firewall al uso: es un conjunto de herramientas que incluye detección de intrusiones, protección contra fuerza bruta, gestión de accesos y reglas de filtrado de paquetes. Además, está diseñado para ser relativamente fácil de usar incluso si no eres un experto en redes.
En este artículo te voy a guiar paso a paso para configurar un firewall básico en Syspanel (CSF). Te explicaré qué es, cómo se instala, cómo se configura y cómo puedes utilizarlo para proteger tu servidor sin volverte loco en el intento. Y lo mejor de todo: lo haremos en un tono claro, didáctico y sin tecnicismos innecesarios.
[INFO]
Si tu servidor está gestionado con Syspanel (antes conocido como HestiaCP), el panel de control incluye una integración muy buena con CSF, pero también puedes gestionarlo directamente por línea de comandos. El acceso al panel de administración de Syspanel es a través del puerto 2106, así que tenlo en cuenta para tus reglas de firewall.
Requisitos previos antes de empezar
Antes de lanzarnos a configurar nada, necesitas cumplir una serie de requisitos. No te saltes este apartado, porque aquí es donde se evitan el 90% de los problemas que luego aparecen en los foros.
Acceso SSH al servidor
Necesitas tener acceso por SSH a tu servidor Linux. Esto significa que debes tener las credenciales de root o de un usuario con permisos de superusuario. Si ya usas Syspanel, es probable que hayas configurado el servidor con un usuario administrador, pero para instalar CSF te recomiendo usar root directamente.
Sistema operativo compatible
CSF funciona en la mayoría de distribuciones Linux, pero lo más habitual es encontrarlo en CentOS, AlmaLinux, Rocky Linux, Ubuntu o Debian. En este artículo usaremos ejemplos válidos para las dos grandes familias (RedHat y Debian), así que no te preocupes si tu distribución es distinta.
Conexión estable a internet
La instalación de CSF descarga paquetes desde los repositorios de tu sistema y desde la web oficial de ConfigServer. Asegúrate de tener una conexión estable, porque si se corta a mitad de la instalación, podrías dejar el firewall a medias y eso sí que es un problema.
Tener claro qué puertos quieres abrir
Esto es clave. Antes de activar el firewall, debes saber qué servicios usas. Por ejemplo:
- Puerto 22 para SSH (aunque te recomiendo cambiarlo o limitarlo por IP).
- Puerto 80 para HTTP.
- Puerto 443 para HTTPS.
- Puerto 2106 para el panel de Syspanel.
- Puerto 25, 110, 143, 993, 995 si usas correo.
- Puerto 21 o 990 si usas FTP (mejor SFTP).
Si no sabes qué puertos necesitas, revisa la configuración de tus servicios o pregunta a tu proveedor. Una vez que lo tengas claro, podemos seguir.
Instalación de CSF en tu servidor Linux
La instalación de CSF es un proceso sencillo, pero hay que hacerlo con cuidado. Vamos a verlo paso a paso.
Paso 1: Actualizar el sistema
Siempre es buena idea empezar con el sistema actualizado. Ejecuta estos comandos según tu distribución:
En CentOS, AlmaLinux o Rocky Linux:
sudo yum update -y
En Ubuntu o Debian:
sudo apt update && sudo apt upgrade -y
Paso 2: Descargar e instalar CSF
CSF se distribuye como un archivo comprimido que incluye un script de instalación. Para descargarlo, ve a la carpeta /usr/src 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 se encargará de instalar todas las dependencias necesarias y de colocar los archivos de configuración en su sitio. Al finalizar, verás un mensaje indicando que la instalación ha sido correcta.
Paso 3: Comprobar que el firewall funciona
CSF incluye una herramienta de verificación rápida. Ejecuta:
perl /usr/local/csf/bin/csftest.pl
Este comando comprobará si tu kernel soporta todas las funciones de firewall que necesita CSF. Si todo está bien, verás una serie de mensajes con OK en cada línea. Si aparece algún fallo, probablemente necesites reiniciar el servidor o actualizar el kernel.
[WARNING]
No actives todavía el firewall. Antes de hacerlo, debemos configurar al menos los puertos básicos para no quedarte fuera del servidor.
Configuración básica del firewall CSF
Ahora viene la parte interesante. La configuración de CSF se realiza en un archivo de texto plano llamado csf.conf, que se encuentra en /etc/csf/. Vamos a editarlo con calma.
Abrir el archivo de configuración
Usa tu editor de texto favorito. Si no tienes preferencia, te recomiendo nano por su sencillez:
nano /etc/csf/csf.conf
Si prefieres vi o vim, también puedes usarlos, pero para este tutorial usaremos nano.
Configurar el modo de prueba
CSF tiene un modo de prueba que es oro puro para evitar desastres. Cuando lo activas, el firewall se aplica pero se desactiva automáticamente después de 5 minutos si no lo confirmas. Esto te permite probar si te has dejado algún puerto cerrado sin quedarte fuera del servidor.
Busca la línea que dice:
TESTING = "0"
Cámbiala a:
TESTING = "1"
Más adelante, cuando estés seguro de que todo funciona, la pondrás a "0".
Configurar la interfaz de red
CSF necesita saber qué interfaz de red usar. Normalmente lo detecta solo, pero si tienes dudas, ejecuta ip a para ver tus interfaces. Busca la línea:
ETH_DEVICE = "eth0"
Si tu interfaz se llama ens3, enp0s3 o algo parecido, cámbiala. En servidores modernos es común ver nombres como eth0 o ens3.
Configurar los puertos permitidos
Esta es la parte más importante. Busca la sección que dice:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2106"
Esta línea define los puertos TCP entrantes que estarán abiertos. Ajusta la lista según tus necesidades. Por ejemplo, si solo tienes una web y el panel de Syspanel, podrías dejarla así:
TCP_IN = "22,80,443,2106"
Y para los puertos UDP entrantes, busca:
UDP_IN = "20,21,53"
Normalmente solo necesitas el puerto 53 para DNS, así que puedes dejarlo así:
UDP_IN = "53"
Los puertos salientes (TCP_OUT y UDP_OUT) suelen dejarse abiertos en la mayoría de configuraciones, pero si quieres ser más estricto, puedes limitarlos también. Para una configuración básica, déjalos como están.
[TIP]
No olvides incluir siempre el puerto 2106 enTCP_INsi usas Syspanel. De lo contrario, no podrás acceder al panel de administración y te llevarás un buen susto.
Configurar la IP de tu equipo para acceso remoto
CSF permite limitar el acceso a ciertos puertos solo desde IPs específicas. Esto es especialmente útil para SSH. Busca la línea:
ALLOW_IP = ""
Y añade tu IP pública. Por ejemplo:
ALLOW_IP = "123.123.123.123"
Si no sabes cuál es tu IP pública, visita whatismyip.com o ejecuta curl ifconfig.me en tu máquina local.
[INFO]
Si configurasALLOW_IP, solo esa IP podrá acceder a los puertos que indiques enALLOW_IP. Esto es perfecto para proteger SSH, pero ten cuidado si tu IP cambia con frecuencia (por ejemplo, si trabajas desde casa sin IP fija).
Aplicar los cambios y activar el firewall
Una vez que has terminado de editar el archivo de configuración, es hora de guardar los cambios y aplicar el firewall.
Guardar y salir del editor
Si usas nano, pulsa Ctrl + O para guardar y Ctrl + X para salir.
Activar CSF
Para iniciar el firewall y que se apliquen las reglas, ejecuta:
systemctl restart csf
systemctl restart lfd
El primer comando reinicia CSF y el segundo reinicia LFD (Login Failure Daemon), que es el sistema de detección de intrusiones que viene integrado.
Comprobar el estado del firewall
Para ver si CSF está activo y qué reglas tiene, usa:
csf -l
Esto te mostrará una lista de reglas de iptables aplicadas. Si ves tus puertos abiertos y no aparece ningún error, ¡enhorabuena! Ya tienes tu firewall funcionando.
Salir del modo de prueba
Ahora viene el momento de la verdad. Si todo funciona correctamente y puedes acceder a tu web, al panel de Syspanel y al SSH, vuelve a editar csf.conf y cambia:
TESTING = "1"
a:
TESTING = "0"
Y reinicia de nuevo:
systemctl restart csf
[WARNING]
Si te quedas fuera del servidor en modo prueba, espera 5 minutos y el firewall se desactivará solo. Si no puedes esperar, reinicia el servidor desde tu proveedor de hosting o VPS.
Comandos útiles de CSF que debes conocer
CSF tiene una serie de comandos que te van a salvar la vida más de una vez. Aquí te dejo los más útiles:
Permitir o bloquear una IP temporalmente
Para bloquear una IP que está intentando entrar por fuerza bruta:
csf -d 1.2.3.4
Para permitir una IP:
csf -a 1.2.3.4
Para eliminar la IP de la lista de bloqueados:
csf -dr 1.2.3.4
Ver el estado del firewall
csf -s
Parar el firewall (¡cuidado!)
csf -f
Este comando detiene el firewall por completo. Úsalo solo en caso de emergencia.
Recargar la configuración sin cortar conexiones
csf -r
Protección extra: LFD y detección de fuerza bruta
CSF no sería tan potente sin LFD. Este daemon vigila los logs del sistema y detecta intentos de acceso fallidos, ataques de fuerza bruta y comportamientos sospechosos.
Por defecto, LFD ya viene configurado con unos valores razonables, pero puedes ajustarlos en el archivo /etc/csf/csf.conf en la sección de LF_*. Por ejemplo:
LF_SSH_EMAIL_ALERT = "1"te envía un correo cuando alguien falla al intentar entrar por SSH.LF_SSH_BLOCK = "1"bloquea automáticamente las IPs que fallan más de un número determinado de veces.LF_SSH_PERM = "5"es el número de intentos fallidos antes de bloquear.LF_SSH_INTERVAL = "30"es el intervalo de tiempo en segundos en el que se cuentan los intentos.
Puedes ajustar estos valores según tu nivel de paranoia. Para un servidor básico, los valores por defecto están bien.
Preguntas frecuentes (FAQ)
¿CSF es compatible con Syspanel?
Sí, totalmente. De hecho, Syspanel (el antiguo HestiaCP) tiene una integración nativa con CSF. Puedes gestionar las IPs bloqueadas y permitidas desde el propio panel, aunque siempre es recomendable saber usar la línea de comandos para casos avanzados. Recuerda que el acceso al panel es por el puerto 2106.
¿Qué pasa si bloqueo mi propia IP?
Si bloqueas tu IP accidentalmente, puedes desbloquearla de dos formas:
- Usando otra conexión (por ejemplo, desde el móvil o una VPN) para entrar por SSH y ejecutar
csf -dr TU_IP. - Reiniciando el servidor desde el panel de tu proveedor. Al reiniciar, CSF se detiene y no se aplican las reglas hasta que lo inicies de nuevo.
¿Debo abrir el puerto 21 para FTP?
Mi recomendación es que no uses FTP clásico si puedes evitarlo. Usa SFTP (que va por el puerto 22) o FTPS (puerto 990). El FTP tradicional envía las contraseñas en texto plano, lo cual es un riesgo de seguridad enorme.
¿CSF ralentiza mi servidor?
No. CSF usa iptables, que funciona a nivel de kernel y es extremadamente rápido. El impacto en el rendimiento es prácticamente nulo. Eso sí, LFD consume algunos recursos al analizar logs, pero es insignificante en servidores modernos.
¿Qué hago si no puedo acceder a mi web después de activar el firewall?
Revisa los puertos 80 y 443 en TCP_IN. También revisa que tu servidor web esté escuchando en esas interfaces. Puedes comprobarlo con:
netstat -tulpn | grep :80
Si el puerto no aparece, es que tu servicio web no está activo o está usando otro puerto.
¿Puedo usar CSF en un servidor con Docker?
Sí, pero ten cuidado. Docker manipula las reglas de iptables por su cuenta, y a veces puede entrar en conflicto con CSF. Si usas Docker, te recomiendo investigar un poco más sobre cómo integrar ambos sistemas, o usar la red de Docker en modo bridge con precaución.
Conclusión y buenas prácticas
Configurar un firewall básico en Syspanel (CSF) es una de las mejores inversiones de tiempo que puedes hacer para proteger tu servidor. No solo evitas accesos no autorizados, sino que también te proteges contra ataques de fuerza bruta y otros comportamientos maliciosos.
Para resumir, estos son los pasos clave que hemos visto:
- Instalar CSF desde la web oficial.
- Editar
csf.confpara configurar puertos y accesos. - Activar el modo de prueba antes de hacer cambios definitivos.
- Reiniciar CSF y comprobar que todo funciona.
- Desactivar el modo de prueba cuando estés seguro.
Y recuerda siempre estas buenas prácticas:
- No abras más puertos de los necesarios. Cada puerto abierto es una superficie de ataque.
- Limita el acceso SSH por IP siempre que puedas.
- Mantén CSF actualizado. ConfigServer publica actualizaciones periódicas con mejoras y parches de seguridad.
- Revisa los logs de LFD de vez en cuando para ver si hay intentos de ataque y actuar en consecuencia.
Con esto, tu servidor Linux estará mucho más seguro, y tú tendrás la tranquilidad de saber que has configurado un firewall robusto y fiable. Si tienes dudas, no dudes en consultar la documentación oficial de CSF o preguntar en tu proveedor de hosting.
¡Ahora sí, a proteger ese servidor!
