PHP Conference Ehime 2026

Tipos de atributo RADIUS

Estas constantes definen tipos de atributo RADIUS que pueden ser utilizadas con las funciones radius_put_addr(), radius_put_attr(), radius_put_int() y radius_put_string().

RADIUS_USER_NAME (int)

El atributo User-Name. El valor del atributo debe ser un string que contenga el nombre de usuario que desea autenticarse, y puede ser definido utilizando la función radius_put_attr().

RADIUS_USER_PASSWORD (int)

El atributo User-Password. El valor del atributo debe ser un string que contenga la contraseña del usuario, y puede ser definido utilizando la función radius_put_attr(). Este valor será cifrado durante la transmisión como se describe en la » sección 5.2 de la RFC 2865.

RADIUS_CHAP_PASSWORD (int)

El atributo Chap-Password. El valor del atributo debe ser un string que contenga el primer octeto (que es el identificador CHAP), seguido de una subsecuencia de 16 octetos que contenga el hash MD5 del identificador CHAP, la contraseña en texto plano, y el valor del desafío CHAP, todo concatenado. Tenga en cuenta que el valor del desafío CHAP también debe ser enviado por separado en el atributo RADIUS_CHAP_CHALLENGE.

Ejemplo #1 Uso de contraseñas CHAP

<?php
// Primero, creamos un manejador de autenticación y una solicitud.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Supongamos que $password contiene la contraseña en texto plano:

// Generación del desafío.
$challenge = mt_rand();

// Especifica un identificador CHAP.
$ident = 1;

// Añade el atributo Chap-Password.
$cp = hash('md5', pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Añade el atributo Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* A partir de aquí, podemos añadir los otros atributos
 * y llamar a la función radius_send_request(). */
?>
RADIUS_NAS_IP_ADDRESS (int)

El atributo NAS-IP-Address. El valor del atributo esperado es la dirección IP del cliente RADIUS codificada como un entero, que puede ser definida utilizando la función radius_put_addr().

RADIUS_NAS_PORT (int)

El atributo NAS-Port. El valor del atributo esperado es el puerto físico del usuario en el cliente RADIUS, codificado como un entero, que puede ser definido utilizando la función radius_put_int().

RADIUS_SERVICE_TYPE (int)

El atributo Service-Type. El valor del atributo indica el tipo de servicio que el usuario solicita, y debe ser un entero, que puede ser definido utilizando la función radius_put_int().

Se proporcionan constantes para representar los valores posibles de este atributo. Aquí están:

RADIUS_FRAMED_PROTOCOL (int)

El atributo Framed-Protocol. El valor del atributo esperado es un entero, que indica el framing a utilizar para el acceso, y puede ser definido utilizando la función radius_put_int(). Los valores posibles para este atributo son:

RADIUS_FRAMED_IP_ADDRESS (int)

El atributo Framed-IP-Address. El valor esperado es una dirección de la red del usuario codificada como un entero, que puede ser definida utilizando la función radius_put_addr() y recuperada utilizando la función radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (int)

El atributo Framed-IP-Netmask. El valor esperado es una máscara de red del usuario, codificada como un entero, que puede ser definida utilizando la función radius_put_addr() y recuperada utilizando la función radius_cvt_addr().

RADIUS_FRAMED_ROUTING (int)

El atributo Framed-Routing. El valor esperado es un entero que indica el método de enrutamiento para el usuario, que puede ser definido utilizando la función radius_put_int().

Valores posibles:

  • 0: Sin enrutamiento
  • 1: Enviar paquetes de enrutamiento
  • 2: Escuchar paquetes de enrutamiento
  • 3: Enviar y escuchar

RADIUS_FILTER_ID (int)

El atributo Filter-ID. El valor esperado es una implementación específica, legible por humanos, de strings de filtros, que pueden ser definidas utilizando la función radius_put_attr().

RADIUS_FRAMED_MTU (int)

El atributo Framed-MTU. El valor esperado es un entero, que indica el MTU a configurar para el usuario, y puede ser definido utilizando la función radius_put_int().

RADIUS_FRAMED_COMPRESSION (int)

El atributo Framed-Compression. El valor esperado es un entero, que indica el protocolo de compresión a utilizar, y puede ser definido utilizando la función radius_put_int(). Valores posibles:

RADIUS_LOGIN_IP_HOST (int)

El atributo Login-IP-Host. El valor esperado es la dirección IP de conexión del usuario, codificada como un entero, que puede ser definido utilizando la función radius_put_addr().

RADIUS_LOGIN_SERVICE (int)

El atributo Login-Service. El valor esperado es un entero que indica el servicio al que el usuario se conecta en el host de identificación. El valor puede ser convertido a un entero PHP mediante la función radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (int)

El atributo Login-TCP-Port. El valor esperado es un entero que indica el puerto al que el usuario se conecta en el host de identificación. El valor puede ser convertido a un entero PHP mediante la función radius_cvt_int().

RADIUS_REPLY_MESSAGE (int)

El atributo Reply-Message. El valor esperado es un string que contiene un texto que puede ser mostrado al usuario en respuesta a una solicitud de acceso.

RADIUS_CALLBACK_NUMBER (int)

El atributo Callback-Number. El valor esperado es un string que contiene la cadena de marcación a utilizar para la función de devolución de llamada.

RADIUS_CALLBACK_ID (int)

El atributo Callback-Id. El valor esperado es un string que contiene el nombre de la implementación específica del lugar a llamar.

RADIUS_FRAMED_ROUTE (int)

El atributo Framed-Route. El valor esperado es un string que contiene un conjunto de rutas de implementación específica a configurar para el usuario.

RADIUS_FRAMED_IPX_NETWORK (int)

El atributo Framed-IPX-Network. El valor esperado es un entero que contiene la red IPX a configurar para el usuario, o 0xFFFFFFFE para indicar que el cliente RADIUS debe seleccionar la red, y puede ser accedido mediante la función radius_cvt_int().

RADIUS_STATE (int)

El atributo State. El valor esperado es un string que contiene la implementación definida incluida en un Access-Challenge desde un servidor que debe ser incluida en la subsiguiente Access-Request, y puede ser definido utilizando la función radius_put_attr().

RADIUS_CLASS (int)

El atributo Class. El valor esperado es un string arbitrario que incluye el mensaje de un Access-Accept que debe ser enviado al servidor de cuentas en los mensajes Accounting-Request, y puede ser definido mediante la función radius_put_attr().

RADIUS_VENDOR_SPECIFIC (int)

El atributo Vendor-Specific. En general, los valores del atributo del vendedor deben ser definidos utilizando las funciones radius_put_vendor_addr(), radius_put_vendor_attr(), radius_put_vendor_int() y radius_put_vendor_string(), en lugar de hacerlo directamente.

Esta constante es útil al interpretar los atributos específicos del vendedor en las respuestas de un servidor RADIUS; cuando se recibe un atributo específico del vendedor, la función radius_get_vendor_attr() debe ser utilizada para acceder al identificador del vendedor, el tipo de atributo y el valor del atributo.

RADIUS_SESSION_TIMEOUT (int)

Tiempo de espera de la sesión

RADIUS_IDLE_TIMEOUT (int)

Tiempo de expiración

RADIUS_TERMINATION_ACTION (int)

Acción de terminación

RADIUS_CALLED_STATION_ID (int)

Identificador de la estación llamada

RADIUS_CALLING_STATION_ID (int)

Identificador de la estación llamante

RADIUS_NAS_IDENTIFIER (int)

Identificador NAS

RADIUS_PROXY_STATE (int)

Estado del Proxy

RADIUS_LOGIN_LAT_SERVICE (int)

Servicio de identificación LAT

RADIUS_LOGIN_LAT_NODE (int)

Nodo de identificación LAT

RADIUS_LOGIN_LAT_GROUP (int)

Grupo de identificación LAT

Enlace framé Appletalk

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Red framé Appletalk

RADIUS_FRAMED_APPLETALK_ZONE (int)

Zona framé Appletalk

RADIUS_CHAP_CHALLENGE (int)

Desafío

RADIUS_NAS_PORT_TYPE (int)

Tipo de puerto NAS:

RADIUS_PORT_LIMIT (int)

Límite del puerto

RADIUS_LOGIN_LAT_PORT (int)

Puerto de identificación LAT

RADIUS_CONNECT_INFO (int)

Información de conexión

RADIUS_ACCT_STATUS_TYPE (int)

Tipo de estado de la cuenta:

RADIUS_ACCT_DELAY_TIME (int)

Tiempo de espera máximo de identificación

RADIUS_ACCT_INPUT_OCTETS (int)

Octetos de entrada de identificación

RADIUS_ACCT_OUTPUT_OCTETS (int)

Octetos de salida de identificación

RADIUS_ACCT_SESSION_ID (int)

Identificador de sesión de identificación

RADIUS_ACCT_AUTHENTIC (int)

Identificación auténtica, uno entre:

RADIUS_ACCT_SESSION_TIME (int)

Duración de la sesión de identificación

RADIUS_ACCT_INPUT_PACKETS (int)

Paquetes de entrada de identificación

RADIUS_ACCT_OUTPUT_PACKETS (int)

Paquetes de salida de identificación

RADIUS_ACCT_TERMINATE_CAUSE (int)

Causa de la finalización de la identificación, uno entre:

RADIUS_ACCT_MULTI_SESSION_ID (int)

Identificador de una sesión múltiple de identificación

Número de enlaces de identificación

Constantes de tipo de servicio
RADIUS_LOGIN

RADIUS_FRAMED

RADIUS_CALLBACK_LOGIN

RADIUS_CALLBACK_FRAMED

RADIUS_OUTBOUND

RADIUS_ADMINISTRATIVE

RADIUS_NAS_PROMPT

RADIUS_AUTHENTICATE_ONLY

RADIUS_CALLBACK_NAS_PROMPT

Constantes de Framed-Protocol
RADIUS_PPP

RADIUS_SLIP

RADIUS_ARAP

RADIUS_GANDALF

RADIUS_XYLOGICS

Constantes de Framed-Compression
RADIUS_COMP_NONE

RADIUS_COMP_VJ

RADIUS_COMP_IPXHDR

RADIUS_COMP_STAC_LZS

Constantes de tipo de puerto NAS
RADIUS_ASYNC

RADIUS_SYNC

RADIUS_ISDN_SYNC

RADIUS_ISDN_ASYNC_V120

RADIUS_ISDN_ASYNC_V110

RADIUS_VIRTUAL

RADIUS_PIAFS

RADIUS_HDLC_CLEAR_CHANNEL

RADIUS_X_25

RADIUS_X_75

RADIUS_G_3_FAX

RADIUS_SDSL

RADIUS_ADSL_CAP

RADIUS_ADSL_DMT

RADIUS_IDSL

RADIUS_ETHERNET

RADIUS_XDSL

RADIUS_CABLE

RADIUS_WIRELESS_OTHER

RADIUS_WIRELESS_IEEE_802_11

Constantes de tipo de estado de contabilidad
RADIUS_START

RADIUS_STOP

RADIUS_ACCOUNTING_ON

RADIUS_ACCOUNTING_OFF

Constantes de autenticación de contabilidad
RADIUS_AUTH_RADIUS

RADIUS_AUTH_LOCAL

RADIUS_AUTH_REMOTE

Constantes de causa de terminación de contabilidad
RADIUS_TERM_USER_REQUEST

RADIUS_TERM_LOST_CARRIER

RADIUS_TERM_LOST_SERVICE

RADIUS_TERM_IDLE_TIMEOUT

RADIUS_TERM_SESSION_TIMEOUT

RADIUS_TERM_ADMIN_RESET

RADIUS_TERM_ADMIN_REBOOT

RADIUS_TERM_PORT_ERROR

RADIUS_TERM_NAS_ERROR

RADIUS_TERM_NAS_REQUEST

RADIUS_TERM_NAS_REBOOT

RADIUS_TERM_PORT_UNNEEDED

RADIUS_TERM_PORT_PREEMPTED

RADIUS_TERM_PORT_SUSPENDED

RADIUS_TERM_SERVICE_UNAVAILABLE

RADIUS_TERM_CALLBACK

RADIUS_TERM_USER_ERROR

RADIUS_TERM_HOST_REQUEST

RADIUS_MICROSOFT_MS_CHAP_RESPONSE

RADIUS_MICROSOFT_MS_CHAP_ERROR

RADIUS_MICROSOFT_MS_CHAP_PW_1

RADIUS_MICROSOFT_MS_CHAP_PW_2

RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW

RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW

RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY

RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES

RADIUS_MICROSOFT_MS_RAS_VENDOR

RADIUS_MICROSOFT_MS_CHAP_DOMAIN

RADIUS_MICROSOFT_MS_CHAP_CHALLENGE

RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS

RADIUS_MICROSOFT_MS_BAP_USAGE

RADIUS_MICROSOFT_MS_MPPE_SEND_KEY

RADIUS_MICROSOFT_MS_MPPE_RECV_KEY

RADIUS_MICROSOFT_MS_RAS_VERSION

RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD

RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD

RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON

RADIUS_MICROSOFT_MS_FILTER

RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE

RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE

RADIUS_MICROSOFT_MS_CHAP2_RESPONSE

RADIUS_MICROSOFT_MS_CHAP2_SUCCESS

RADIUS_MICROSOFT_MS_CHAP2_PW

RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER

RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER

RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER

RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER

RADIUS_MICROSOFT_MS_ARAP_CHALLENGE

add a note

User Contributed Notes 1 note

up
3
Anonymous
10 years ago
To fix missing the "Alive" of Acct-Status-Type, just :

define('RADIUS_ALIVE', 3);
To Top