Blog Logo

Protege tus aplicaciones web GRATIS con SafeLine WAF

Vale, si tienes aplicaciones web expuestas a internet, ya sea un blog, una API, tu propio Coolify, o lo que sea, te voy a hacer una pregunta muy directa: ¿cómo las estás protegiendo?

Porque mira, en cuanto publicas algo en internet, los bots y los ataques empiezan a llegar. Y no estoy exagerando, literalmente en minutos. Inyecciones SQL, ataques de fuerza bruta, XSS… la lista es larga y da un poco de miedo.

Y aquí viene el problema: los firewalls de aplicaciones web profesionales, los famosos WAF, suelen ser caros de narices. Estamos hablando de cientos o miles de euros al año. Para una empresa grande, vale, se lo pueden permitir. Pero para ti, que tienes un servidor en casa o un VPS modesto… pues como que no cuadra.

Pues hoy te traigo SafeLine, un WAF completamente gratuito, self-hosted, que puedes instalar en tu propio servidor y que te da protección de nivel empresarial. Y no, no me he vuelto loco, existe de verdad.


¿Qué narices es un WAF y por qué lo necesitas?

Bueno, para explicártelo fácil: imagínate que tu servidor web es tu casa, y el WAF es un portero de discoteca enorme puesto en la puerta. Todo el tráfico que quiere entrar a tu web tiene que pasar primero por este portero, que analiza cada petición y decide: “tú pasas porque eres legítimo” o “tú fuera, que vienes con malas intenciones”.

SafeLine hace exactamente eso. Se pone delante de tus aplicaciones web como un reverse proxy, y filtra todo el tráfico malicioso antes de que llegue a tu servidor. Bloquea inyecciones SQL, XSS, intentos de acceso a rutas protegidas, ataques de fuerza bruta, bots malintencionados… básicamente todo lo que no quieres que toque tu aplicación.

Y aquí viene lo fuerte: la versión gratuita de SafeLine es para siempre. No es un trial de 14 días ni una versión capada que no sirve para nada. Puedes proteger hasta 10 aplicaciones sin pagar un euro. Para un homelab o proyectos personales, es más que suficiente.

Lo que te voy a enseñar hoy es cómo instalar SafeLine desde cero, configurarlo para proteger tu primera aplicación, y vamos a ver en vivo cómo bloquea ataques reales. Porque una cosa es que yo te diga que funciona, y otra es verlo con tus propios ojos.


¿Qué necesitas para montar SafeLine?

Vale, antes de ponernos manos a la obra, ¿qué necesitas para montar SafeLine?

La buena noticia es que los requisitos son bastante modestos. Necesitas un servidor Linux, ya sea un VPS, una Raspberry Pi 3 o superior, o ese PC viejo que tienes cogiendo polvo. Eso sí, necesitas arquitectura x86_64 o ARM64.

También necesitas tener Docker versión 20.10 o superior, y Docker Compose versión 2.0 o superior instalados.

Y aquí viene lo que me parece genial: el mínimo de hardware es solo 1 core de CPU, 1GB de RAM y 5GB de disco. O sea, cualquier cosa que tengas por casa te vale.

Hay un detalle técnico: la CPU tiene que soportar instrucciones SSSE3, pero tranquilo, cualquier procesador medianamente moderno las tiene. Si tienes un ordenador de los últimos 10-15 años, vas sobrado.

Si no tienes servidor, te recuerdo que tengo un post donde te enseño a conseguir uno gratis con Oracle Cloud, con 4 cores y 24GB de RAM. Eso sí, para SafeLine te recomiendo que uses uno con arquitectura x86_64 para evitar líos.


Instalación paso a paso (menos de 10 minutos)

Bueno, vamos al barro. Voy a instalar SafeLine desde cero para que veas lo fácil que es.

Paso 1: Conectarte a tu servidor

Primero, abre tu terminal y conéctate a tu servidor por SSH:

ssh usuario@ip_de_tu_servidor

Paso 2: Ejecutar el instalador automático

SafeLine tiene un script de instalación que hace todo el trabajo sucio por ti. Solo tienes que ejecutar este comando:

bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/manager.sh)" -- --en

Este comando descarga el script y lo ejecuta. Lo primero que te va a preguntar es qué quieres hacer: elige la opción 1 para instalación estándar.

Luego te pregunta dónde quieres instalarlo. Por defecto es /data/safeline, y está bien, así que dale a Enter.

Y ahora… esperamos. El script va a instalar Docker si no lo tienes, descargar todas las imágenes necesarias, y configurar todo automáticamente. Dependiendo de tu conexión, puede tardar unos minutillos.

Paso 3: Obtener las credenciales de acceso

Cuando termine la instalación, al final del proceso te va a mostrar algo MUY importante: la URL del panel de administración y las credenciales iniciales. Algo así como:

  • URL: https://tu-ip:9443
  • Usuario: admin
  • Contraseña: una generada aleatoriamente

Apunta esa contraseña porque la vas a necesitar. Si se te pasa o la pierdes, puedes regenerarla ejecutando:

docker exec safeline-mgt resetadmin

Paso 4: Acceder al panel

Ahora ve a tu navegador y escribe la IP de tu servidor seguida del puerto 9443. Por ejemplo: https://192.168.1.100:9443

Te va a salir un aviso de certificado SSL porque es auto-firmado, lo aceptas y ya. Introduces el usuario admin y la contraseña que te dio, y… bienvenido a SafeLine.

Lo primero que verás es el dashboard, que por ahora está vacío porque no hemos configurado nada. Pero eso lo vamos a solucionar ahora mismo.


Configurar tu primera aplicación protegida

Vale, ya tenemos SafeLine funcionando, pero ahora toca lo importante: proteger una aplicación web.

Vamos a la pestaña Applications y hacemos clic en Add Application.

Aquí tienes que rellenar tres cosas clave:

Domain: El dominio o IP de tu aplicación. Por ejemplo, miapp.midominio.com.

Port: El puerto donde SafeLine va a escuchar. Si es HTTP normal, puerto 80. Si es HTTPS, puerto 443. Para HTTPS, tienes que marcar la casilla SSL y añadir un certificado. SafeLine te permite generarlo automáticamente con Let’s Encrypt, así que es súper fácil.

Upstream: Esto es crítico. Es la dirección REAL de tu aplicación, donde SafeLine va a redirigir el tráfico limpio. Si tu app corre en el mismo servidor en el puerto 3000, pondrías http://127.0.0.1:3000.

Le das a guardar, y listo. Ahora todo el tráfico que llegue a ese dominio pasa primero por SafeLine.

Por defecto, SafeLine ya viene configurado para defender contra todos los tipos de ataques más comunes: SQL injection, XSS, path traversal, ejecución de código… No tienes que tocar nada más, ya está protegido.


Viendo SafeLine en acción: bloqueando ataques reales

Bueno, ahora viene lo divertido. Vamos a probar que esto funciona de verdad.

Voy a lanzar algunos ataques típicos a mi aplicación protegida y vamos a ver qué pasa.

Primero, un intento de SQL Injection clásico:

https://miapp.com/rest/products/search?q=%27%20OR%20%271%27=%271

Y… bloqueado. SafeLine nos muestra una página de bloqueo indicando que ha detectado un ataque.

Probamos con XSS (Cross-Site Scripting):

https://miapp.com/#/search?q=%3Cimg%20src%3Dx%20onerror%3Dalert(1)%3E#/

Bloqueado también.

Si vamos al panel, en la pestaña Attacks, vemos todos los intentos de ataque que SafeLine ha interceptado: la IP del atacante, el tipo de ataque, el timestamp… todo registrado.

Pero ojito, que aquí viene una funcionalidad brutal: la protección anti-bot. Vamos a la configuración de nuestra aplicación, activamos Bot Protect, y ahora cualquier bot que intente acceder va a tener que pasar un captcha. Los usuarios humanos lo resuelven sin problema, pero los bots se quedan fuera.

Esta feature en otros WAFs te la cobran, aquí la tienes gratis.


Otras funcionalidades que te van a flipar

Y esto es solo la punta del iceberg. SafeLine tiene muchas más cosas que te van a sorprender.

Rate Limiting: Puedes limitar las peticiones por IP para evitar ataques DDoS o fuerza bruta. Configuras un máximo de peticiones por minuto y ya está, los atacantes se quedan colgados.

Allow/Deny Lists: Bloquea IPs específicas o países enteros si lo necesitas. Si ves que te están atacando desde una región concreta, la bloqueas y listo.

Autenticación: Puedes añadir una capa extra de login a cualquier aplicación sin tocar su código. Esto es brutal si tienes servicios internos que quieres proteger con doble autenticación.

HTTP Flood Protection: Si te intentan tumbar a base de peticiones, SafeLine los manda a una sala de espera. Es como cuando entras a comprar entradas online y te pone “espera tu turno”, pero versión seguridad.

Para proyectos más serios hay planes de pago: 10 dólares al mes el Light, 100 dólares el Pro. Pero sinceramente, la versión gratuita para homelab y proyectos personales es más que suficiente.


Por qué deberías instalar SafeLine ya

Bueno, y esto ha sido SafeLine. Un WAF gratuito, self-hosted, que puedes tener funcionando en menos de 10 minutos y que te protege de verdad.

Si tienes aplicaciones web expuestas a internet y no las estás protegiendo con un WAF, sinceramente te lo recomiendo. Yo lo tengo montado en mi servidor y desde entonces duermo bastante más tranquilo.

Los ataques van a llegar sí o sí. No es una cuestión de si van a atacarte, sino de cuándo. Y cuando ese momento llegue, mejor tener un portero en la puerta que deje fuera a toda la basura.

Además, es gratis. No tienes excusa. En serio, tarda más hacer un café que instalar SafeLine.

Y si todavía no tienes un servidor propio, ya sabes que tengo el tutorial del servidor gratis de Oracle Cloud, que es el complemento perfecto para esto.


Enlaces útiles

Si quieres profundizar más o necesitas la documentación oficial, aquí te dejo algunos enlaces que te van a servir:

Página web oficial de SafeLine: https://ly.safepoint.cloud/HE5s0ug

Discord de SafeLine (por si tienes dudas o quieres ver qué hace la comunidad): https://discord.gg/dy3JT7dkmY

Demo en vivo de SafeLine (para que lo pruebes sin instalar nada): https://demo.waf.chaitin.com:9443/statistics

Documentación oficial de instalación: https://docs.waf.chaitin.com/en/GetStarted/Deploy


Por mi parte esto ha sido todo y nos vemos en el próximo post.


¿Qué te ha parecido?

Déjame tu opinión, pregunta o sugerencia. Los comentarios se sincronizan con GitHub Discussions .

Volver al blog