Ir al contenido

Ironchip RADIUS server

El Ironchip RADIUS server es un servidor RADIUS propio de Ironchip que permite integrar servicios compatibles con RADIUS mediante una API key, sin necesidad de usar NPS. Esta guía es para quien administra el servicio y lo instala en Windows o Linux. Funciona sin contraseñas: el usuario aprueba el acceso en su dispositivo.

  • Acceso a la consola de administración de Ironchip.
  • Un servidor Windows (64 bits) o Linux (64 bits) donde ejecutar el servidor RADIUS.
  • Que el equipo o servicio que quieres proteger (VPN, cortafuegos, wifi) pueda enviar peticiones RADIUS al puerto UDP 1812 de ese servidor.
  • Los usuarios dados de alta en Ironchip, o la sincronización de identidades configurada.

Crea una aplicación Passwordless RADIUS. La consola te da una API key que el servidor RADIUS usa para hablar con Ironchip.

  1. Ve a Applications y haz clic en New application.
  2. En la sección Standard authentication protocols, elige Passwordless RADIUS.
  3. Ponle un nombre identificativo (mínimo 3 caracteres) y haz clic en Add.
  4. Copia la API key o haz clic en Download credentials para descargarla en el fichero credentials.json.
  1. Descarga el ejecutable de la última versión: ironchip_lbauth_radius_server.exe para Windows o ironchip_lbauth_radius_server para Linux.

  2. Cópialo a una carpeta definitiva del servidor. El servicio se ejecuta desde esa ubicación, así que no la muevas después.

  3. Crea junto al ejecutable un fichero de configuración con el mismo nombre que el ejecutable y extensión .json: ironchip_lbauth_radius_server.json. Si renombras el ejecutable, renombra también el fichero.

  4. Pega este contenido y sustituye los valores entre <>:

    ironchip_lbauth_radius_server.json
    {
    "radius_address": "0.0.0.0:1812",
    "radius_key": "<SHARED_SECRET>",
    "ironchip_api_host": "https://api.ironchip.com",
    "ironchip_api_secret": "<API_KEY>",
    "log_level": "info"
    }
  5. Abre una terminal con permisos de administrador (PowerShell en Windows, o sudo en Linux) y ve a la carpeta del ejecutable.

  6. Instala el servicio:

    Windows
    .\ironchip_lbauth_radius_server.exe service install
    Linux
    chmod +x ironchip_lbauth_radius_server
    sudo ./ironchip_lbauth_radius_server service install
  7. Inicia el servicio:

    Windows
    .\ironchip_lbauth_radius_server.exe service start
    Linux
    sudo ./ironchip_lbauth_radius_server service start
  8. Configura el servicio que quieres proteger para que use este servidor como servidor RADIUS: la dirección del equipo donde corre, el puerto 1812 y el mismo secreto compartido que pusiste en radius_key.

Campo Obligatorio Valor por defecto Descripción
radius_address No 0.0.0.0:1812 Dirección y puerto UDP en los que escucha el servidor.
radius_key Sí Secreto compartido con el equipo que envía las peticiones RADIUS. Lo eliges tú, pero debe ser el mismo en el fichero y en ese equipo.
ironchip_api_host No https://api.ironchip.com URL de la API de Ironchip.
ironchip_api_secret Sí La API key de la aplicación Passwordless RADIUS.
log_level No info Nivel de registro: debug, info, warning, error o fatal.
attributes No Atributos RADIUS estándar que se añaden a la respuesta de acceso aceptado. Mira Atributos de respuesta.
vendor-specific_attributes No Atributos específicos de fabricante que se añaden a la respuesta. Mira Atributos de respuesta.

El ejecutable lee este fichero con cualquier comando, también con service install, así que créalo antes de instalar el servicio. Si no lo encuentra, falta un campo obligatorio o log_level no es válido, termina con un error.

Algunos equipos necesitan atributos en la respuesta RADIUS, por ejemplo para asignar a cada usuario un grupo de la VPN. Defínelos en attributes (atributos estándar del RFC 2865) y en vendor-specific_attributes (atributos de fabricante, que el servidor envía dentro del atributo 26). Cada atributo tiene tres campos:

  • number: el número del atributo. En vendor-specific_attributes es el número de fabricante (Vendor-Id).
  • type: el tipo del dato: string, short, integer o integer64.
  • data: un valor fijo o una plantilla con datos del usuario que acaba de autenticarse.

Puedes repetir el mismo number en varios atributos. La plantilla tiene que ser todo el valor de data, como en el ejemplo de abajo: si la mezclas con otro texto, el atributo no se envía. Estas son las plantillas disponibles:

Plantilla Dato
{{.subject}} Identificador del usuario.
{{.name}} Nombre del usuario.
{{.email}} Correo electrónico del usuario.
{{.timestamp}} Marca de tiempo de la autorización.
{{.external_username}} Nombre de usuario en el servicio externo.
{{.external_service_id}} Identificador del servicio externo.
{{.customer_name}} Nombre de la compañía.
{{.group_names}} Grupos del usuario. Se envía un atributo por cada grupo.
{{.location_name}} Nombre de la ubicación desde la que accede.
{{.location_score}} Puntuación de la ubicación.
ironchip_lbauth_radius_server.json
{
"radius_address": "0.0.0.0:1812",
"radius_key": "<SHARED_SECRET>",
"ironchip_api_host": "https://api.ironchip.com",
"ironchip_api_secret": "<API_KEY>",
"log_level": "info",
"attributes": [{ "number": 11, "type": "string", "data": "{{.group_names}}" }],
"vendor-specific_attributes": [{ "number": 43, "type": "string", "data": "1304" }]
}

En este ejemplo, el atributo Filter-Id (11) lleva el nombre de cada grupo del usuario. Usa el tipo string salvo que el equipo exija otro.

  1. Comprueba que el servicio está en marcha:

    Windows
    .\ironchip_lbauth_radius_server.exe service status
    Linux
    sudo ./ironchip_lbauth_radius_server service status

    La salida incluye status: running.

  2. Inicia sesión desde el servicio protegido con un usuario de Ironchip. El usuario recibe la petición de aprobación en su dispositivo y, al aprobarla, el servidor responde con acceso aceptado. Si Ironchip no autoriza al usuario, responde con acceso rechazado.

El servidor usa solo el nombre de usuario de la petición; la contraseña se ignora. Aun así, algunos equipos exigen rellenarla, como se ve en el ejemplo siguiente.

El ejecutable se maneja con service (alias s). service status también tiene el alias s, así que s s equivale a service status.

Comando Qué hace
service install Instala el servicio IronchipRADIUS (nombre visible: Ironchip RADIUS server).
service start Inicia el servicio.
service stop Detiene el servicio.
service restart Reinicia el servicio. Hazlo tras cambiar el fichero de configuración.
service status Muestra si el servicio está en marcha (running) o detenido (stopped).
service uninstall Desinstala el servicio.
service run Ejecuta el servidor en la terminal, fuera del gestor de servicios. Falla si el servicio no está instalado o ya está en marcha.

En Windows, el servidor escribe en el Visor de eventos, en el registro Application, con el origen Ironchip RADIUS Server. En Linux escribe en la salida del proceso, que recoge el gestor de servicios del sistema (con systemd, consúltala con journalctl -u IronchipRADIUS). Sube log_level a debug para ver el detalle de cada autorización, y vuelve a info cuando termines.

  • El servicio no arranca: comprueba que existe el fichero .json con el mismo nombre que el ejecutable, en la misma carpeta, y que radius_key e ironchip_api_secret tienen valor.
  • El equipo no recibe respuesta: abre el puerto UDP 1812 (o el de radius_address) en el cortafuegos del servidor y comprueba que el equipo apunta a la IP correcta.
  • Acceso rechazado para un usuario que existe: comprueba que ironchip_api_secret es la API key de la aplicación Passwordless RADIUS y que el nombre de usuario de la petición es el que Ironchip conoce. El servidor anota el error de autorización en el registro.
  • El secreto compartido no coincide: el equipo descarta las respuestas. Usa exactamente el mismo valor en radius_key y en el equipo.
  • Faltan atributos en la respuesta: comprueba que cada data es un valor fijo o una sola plantilla y que el dato es del tipo indicado en type. Si un atributo falla, el servidor acepta el acceso igualmente, pero no envía ese atributo ni los siguientes, y anota el error en el registro.

El vídeo muestra el acceso a una VPN de WatchGuard con el Ironchip RADIUS server en funcionamiento.

En el vídeo se escribe una contraseña porque WatchGuard no permite campos vacíos. El texto de ese campo puede ser aleatorio, como en los dos ejemplos del vídeo.

Acceso a una VPN de WatchGuard con el Ironchip RADIUS serverReproducir el vídeo