ADC

Soporte RADIUS para respondedor

El lenguaje de expresiones de NetScaler contiene expresiones que pueden extraer información de las solicitudes RADIUS y manipularlas. Estas expresiones le permiten utilizar la función Responder para responder a las solicitudes de RADIUS. Sus directivas y acciones de respuesta pueden usar cualquier expresión que sea apropiada o relevante para una solicitud de RADIUS. Las expresiones disponibles permiten identificar el tipo de mensaje RADIUS, extraer cualquier par atributo-valor (AVP) de la conexión y enviar diferentes respuestas en función de esa información. También puede crear etiquetas de directivas que invoquen todas las directivas de respuesta para las conexiones RADIUS.

Puede usar expresiones RADIUS para crear respuestas simples que no requieran comunicación con el servidor RADIUS al que se envió la solicitud. Cuando una directiva de respuesta coincide con una conexión, NetScaler crea y envía la respuesta RADIUS adecuada sin contactar con el servidor de autenticación RADIUS. Por ejemplo, si la dirección IP de origen de una solicitud RADIUS proviene de una subred especificada en la directiva de respuesta, NetScaler puede responder a esa solicitud con un mensaje de rechazo de acceso o simplemente anular la solicitud.

También puede crear etiquetas de directivas para enrutar tipos específicos de solicitudes RADIUS a través de una serie de directivas que sean apropiadas para esas solicitudes.

Nota: Las expresiones RADIUS actuales no funcionan con los atributos IPv6 de RADIUS.

La documentación de NetScaler para las expresiones compatibles con RADIUS asume que está familiarizado con la estructura básica y el propósito de las comunicaciones RADIUS. Si necesita más información sobre RADIUS, consulte la documentación del servidor RADIUS o busque en Internet una introducción al protocolo RADIUS.

Configuración de directivas de respuesta para RADIUS

El siguiente procedimiento utiliza la línea de comandos de NetScaler para configurar una acción y una directiva de respuesta y vincular la directiva a un punto de enlace global específico de RADIUS.

Para configurar una acción y una directiva de Responder y vincular la directiva:

En el símbolo del sistema, escriba los comandos siguientes:

  • add responder action <actName> <actType>
  • add responder policy <polName> <rule> <actName>
  • bind responder policy <polName> <priority> <nextExpr> -type <bindPoint> donde <bindPoint> representa uno de los puntos de enlace globales específicos de RADIUS.

Expresiones RADIUS para respondedor

En una configuración de respuesta, puede utilizar las siguientes expresiones de NetScaler para hacer referencia a varias partes de una solicitud RADIUS.

Identificación del tipo de conexión:

  • RADIUS.IS_CLIENT. Devuelve TRUE si la conexión es un mensaje de cliente RADIUS (solicitud).

  • RADIUS.IS_SERVER. Devuelve TRUE si la conexión es un mensaje de servidor RADIUS (respuesta).

Expresiones de solicitud:

  • RADIUS.REQ.CODE. Devuelve el número que corresponde al tipo de solicitud RADIUS. Un derivado de la clase num_at. Por ejemplo, una solicitud de acceso RADIUS devolvería 1 (uno). Una solicitud de contabilidad de RADIUS devolvería 4.
  • RADIUS.REQ.LENGTH. Devuelve la longitud de la solicitud RADIUS, incluido el encabezado. Un derivado de la clase num_at.
  • RADIUS.REQ.IDENTIFIER. Devuelve el identificador de solicitud RADIUS, un número asignado a cada solicitud que permite hacer coincidir la solicitud con la respuesta correspondiente. Un derivado de la clase num_at.
  • RADIUS.REQ.AVP(<AVP Code No>).VALUE. Devuelve el valor de la primera aparición de este AVP como una cadena de tipo text_t.
  • RADIUS.REQ.AVP(<AVP code no>).INSTANCE(instance number). Devuelve la instancia especificada del AVP como una cadena de tipo RAVP_t. Un AVP RADIUS específico puede aparecer varias veces en un mensaje RADIUS. INSTANCE (0) devuelve la primera instancia, INSTANCE (1) devuelve la segunda instancia y así sucesivamente, hasta dieciséis instancias.
  • RADIUS.REQ.AVP(<AVP code no>).VALUE(instance number). Devuelve el valor de la instancia especificada del AVP como una cadena de tipo text_t.
  • RADIUS.REQ.AVP(<AVP code no>).COUNT. Devuelve el número de instancias de un AVP específico en una conexión RADIUS, como un entero.
  • RADIUS.REQ.AVP(<AVP code no>).EXISTS. Devuelve TRUE si el tipo de AVP especificado existe en el mensaje, o FALSE si no existe.

Expresiones de respuesta:

Las expresiones de respuesta RADIUS son idénticas a las expresiones de solicitud de RADIUS, excepto que RES reemplaza a REQ.

Tipografías de valores AVP:

El ADC admite expresiones para convertir valores de RADIUS AVP a los tipos de datos de texto, entero, entero sin signo, largo, largo sin signo, dirección ipv4, dirección ipv6, prefijo ipv6 y tiempo. La sintaxis es la misma que la de otras expresiones de tipo de NetScaler.

Ejemplo:

El ADC admite expresiones para convertir valores de RADIUS AVP a los tipos de datos de texto, entero, entero sin signo, largo, largo sin signo, dirección ipv4, dirección ipv6, prefijo ipv6 y tiempo. La sintaxis es la misma que la de otras expresiones de tipo de NetScaler.

RADIUS.REQ.AVP(8).VALUE(0).typecast_ip_address_at
<!--NeedCopy-->

Expresiones de tipo AVP:

NetScaler admite expresiones para extraer valores de RADIUS AVP mediante los códigos enteros asignados que se describen en RFC2865 y RFC2866. También puede utilizar alias de texto para realizar la misma tarea. A continuación se muestran algunos ejemplos.

  • RADIUS.REQ.AVP (1) .VALUE o RADIUS.REQ.USERNAME.value. Extrae el valor del nombre de usuario RADIUS.
  • RADIUS.REQ.AVP (4). VALUE o RADIUS.REQ. ACCT_SESSION_ID.value. Extrae el AVP ACCT-Session-ID (código 44) del mensaje.
  • RADIUS.REQ.AVP (26). VALUE o RADIUS.REQ.VENDOR_SPECIFIC.VALUE. Extrae el valor específico del proveedor.

Los valores de las AVP RADIUS más utilizadas se pueden extraer de la misma manera.

Puntos de enlace RADIUS:

Hay cuatro puntos de enlace globales disponibles para las directivas que contienen expresiones RADIUS.

  • RADIUS_REQ_OVERRIDE. Lista de directivas de prioridad o anulación de solicitudes.
  • RADIUS_REQ_DEFAULT. Cola de directivas de solicitudes estándar.
  • RADIUS_RES_OVERRIDE. Prioriza o anula la cola de directivas de respuestas.
  • RADIUS_RES_DEFAULT. Cola de directivas de respuesta estándar.

Expresiones específicas de RADIUS Responder:

  • RADIUS_RESPONDWITH. Responda con la respuesta RADIUS especificada. La respuesta se crea con expresiones de NetScaler, tanto expresiones RADIUS como cualquier otra que sea aplicable.
  • RADIUS.NEW_ANSWER. Envía una nueva respuesta RADIUS al usuario.
  • RADIUS.NEW_ACCESSRECHACE. Rechaza la solicitud de RADIUS.
  • RADIUS.NEW_AVP. Agrega el nuevo AVP especificado a la respuesta.

Casos de uso

Los siguientes son casos de uso de RADIUS con respondedor.

Bloquear las solicitudes RADIUS de una red específica

Para configurar la función de respuesta para bloquear las solicitudes de autenticación de una red específica, comience por crear una acción de respuesta que rechace las solicitudes. Utilice la acción en una directiva que seleccione las solicitudes de las redes que desee bloquear. Enlazar la directiva de respuesta a un punto de enlace global específico de RADIUS, especificando:

  • La prioridad
  • END como valor de nextExpr, para garantizar que la evaluación de la directiva se detenga cuando esta directiva coincida
  • RADIUS_REQ_OVERRIDE como la cola a la que se asigna la directiva, de modo que se evalúe antes de que las directivas se asignen a la cola predeterminada

Para configurar Responder para que bloquee los inicios de sesión de una red específica**

  • add responder action <actName> <actType>
  • add responder policy <polName> <rule> <actName>
  • bind responder global <polName> <priority> <nextExpr> -type <bindPoint>

Ejemplo:

> add responder action rspActRadiusReject respondwith radius.new_accessreject
Done

> add responder policy rspPolRadiusReject client.ip.src.in_subnet(10.224.85.0/24) rspActRadiusReject
Done

> bind responder global rspPolRadiusReject 1 END -type RADIUS_REQ_OVERRIDE
<!--NeedCopy-->
Soporte RADIUS para respondedor