ValwispDocs
Implementadores

FreeRADIUS

Despliegue del servidor FreeRADIUS propio de Valwisp — configuración, verificación, y cómo apuntar routers reales.

Valwisp tiene su propio servidor FreeRADIUS, independiente del servidor legacy de Mikrowisp (si vienes de una migración). Vive en infra/freeradius/ y habla contra el PostgreSQL propio de Valwisp (no MySQL) — las mismas tablas que ya usa radius.service.ts de la API (radcheck, radreply, radusergroup, radgroupreply, radacct, radpostauth, mapeadas 1:1 vía Prisma).

Estado actual de RADIUS en Valwisp

Es importante entender esto antes de desplegar: hoy, radcheck se usa solo como interruptor de suspensión — una fila Auth-Type := Reject bloquea a un cliente suspendido. La contraseña PPPoE real vive en el Mikrotik del cliente, no en RADIUS. El authorize{} acepta si no hay fila (Auth-Type := Accept implícito) y rechaza si encuentra el Reject.

accounting{} y post-auth{} llaman además a hooks REST de la API (POST /radius/hooks/accounting y /radius/hooks/post-auth, con header X-Radius-Secret, timeout de 2s para no bloquear una respuesta RADIUS real).

Desplegar

cd /opt/projects/valwisp/infra/freeradius
cp .env.example .env

Completa en .env:

  • POSTGRES_PASSWORD — el mismo valor que el .env.prod de la API.
  • RADIUS_HOOK_SECRET — debe coincidir en ambos lados (API y FreeRADIUS); genera uno con openssl rand -hex 32.
  • RADTEST_SECRET — valor libre, solo para pruebas locales.
docker compose up -d --build

Verificar (sin tocar producción real)

docker exec valwisp-freeradius radiusd -X   # foreground, logs detallados

Luego, contra 127.0.0.1, usa radtest/radclient con un usuario de prueba creado vía API — nunca un cliente real.

Por defecto, los puertos 1812/1813 solo escuchan en 127.0.0.1 del host — el servidor no es alcanzable desde la red pública hasta que se abra explícitamente.

Apuntar routers reales — procedimiento

Este es un cambio de alto impacto (afecta autenticación de clientes reales) y debe hacerse router por router, no en bloque:

  1. Abre el firewall UDP 1812/1813 solo a la IP de ese router específico.
  2. Configura el router para usar este servidor RADIUS.
  3. Monitorea activamente durante la primera hora tras el cambio.
  4. Repite con el siguiente router solo después de confirmar que el anterior está estable.

No existe hoy ningún Mikrotik de producción apuntando a este servidor — es una migración deliberada, gradual, pendiente de ejecutar.

On this page