PHP Conference Kansai 2025

Tipos de atributos RADIUS

Essas constantes definem tipos de atributos RADIUS que podem ser usados ​​com radius_put_addr(), radius_put_attr(), radius_put_int() e radius_put_string().

RADIUS_USER_NAME (int)

O atributo "User-Name". O valor do atributo deve ser uma string contendo o nome do usuário que está sendo autenticado, e pode ser definido usando radius_put_attr().

RADIUS_USER_PASSWORD (int)

O atributo "User-Password". O valor do atributo deve ser uma string contendo a senha do usuário e pode ser definido usando radius_put_attr(). Este valor será ofuscado na transmissão, conforme descrito na » seção 5.2 da RFC 2865.

RADIUS_CHAP_PASSWORD (int)

O atributo "Chap-Password". O valor do atributo deve ser uma string com o primeiro byte contendo o identificador CHAP, e os 16 bytes subsequentes contendo o hash MD5 do identificador CHAP, a senha em texto simples e o valor do desafio CHAP, concatenados. Observe que o valor do desafio CHAP também deve ser enviado separadamente em um atributo RADIUS_CHAP_CHALLENGE.

Exemplo #1 Usando senhas CHAP

<?php
// Primeiro, criaremos um identificador de autenticação e uma solicitação.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Supondo que $password contém a senha em texto simples, agora:

// Gere um desafio.
$challenge = mt_rand();

// Especifique um identificador CHAP.
$ident = 1;

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

// Adicione o atributo Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* A partir daqui, seriam adicionados os atributos restantes e
* a função radius_send_request() seria chamada. */
?>

RADIUS_NAS_IP_ADDRESS (int)

O atributo "NAS-IP-Address". O valor do atributo é esperado para o endereço IP do cliente RADIUS, codificado como um int, que pode ser definido usando radius_put_addr().

RADIUS_NAS_PORT (int)

O atributo "NAS-Port". O valor do atributo deve ser a porta física do usuário no cliente RADIUS, codificada como um int, que pode ser definido usando radius_put_int().

RADIUS_SERVICE_TYPE (int)

O atributo "Service-Type". O valor do atributo indica o tipo de serviço que o usuário está solicitando e deve ser um int, que pode ser definido usando radius_put_int().

Várias constantes são fornecidas para representar os valores possíveis deste atributo. Elas incluem:

RADIUS_FRAMED_PROTOCOL (int)

O atributo "Framed-Protocol". O valor do atributo deve ser um int indicando o enquadramento a ser usado para acesso enquadrado e pode ser definido usando radius_put_int(). Os valores possíveis do atributo incluem estas constantes:

RADIUS_FRAMED_IP_ADDRESS (int)

O atributo "Framed-IP-Address". O valor do atributo deve ser o endereço de rede do usuário codificado como um int, que pode ser definido usando radius_put_addr() e recuperado usando radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (int)

O atributo "Framed-IP-Netmask". O valor do atributo deve ser a máscara de rede da rede do usuário, codificada como um int, que pode ser definida usando radius_put_addr() e recuperada usando radius_cvt_addr().

RADIUS_FRAMED_ROUTING (int)

O atributo "Framed-Routing". O valor do atributo deve ser um int indicando o método de roteamento para o usuário, que pode ser definido usando radius_put_int().

Os valores possíveis incluem:

  • 0: Sem roteamento
  • 1: Enviar pacotes de roteamento
  • 2: Escutar pacotes de roteamento
  • 3: Enviar e escutar

RADIUS_FILTER_ID (int)

O atributo "Filter-ID". O valor do atributo deve ser uma string de filtros específica da implementação e legível por humanos, que pode ser definida usando radius_put_attr().

RADIUS_FRAMED_MTU (int)

O atributo "Framed-MTU". O valor do atributo deve ser um int indicando o MTU a ser configurado para o usuário, e pode ser definido usando radius_put_int().

RADIUS_FRAMED_COMPRESSION (int)

O atributo "Framed-Compression". O valor do atributo deve ser um int indicando o protocolo de compressão a ser utilizado, e pode ser definido usando radius_put_int(). Os valores possíveis incluem estas constantes:

RADIUS_LOGIN_IP_HOST (int)

O atributo "Login-IP-Host". O valor do atributo é esperado para o endereço IP ao qual o usuário se conectará, codificado como um int, que pode ser definido usando radius_put_addr().

RADIUS_LOGIN_SERVICE (int)

O atributo "Login-Service". O valor do atributo é um int que indica o serviço ao qual o usuário se conectará no host de login. O valor pode ser convertido para um inteiro PHP via radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (int)

O atributo "Login-TCP-Port". O valor do atributo é um int que indica a porta para conectar o usuário no host de login. O valor pode ser convertido para um inteiro PHP via radius_cvt_int().

RADIUS_REPLY_MESSAGE (int)

O atributo "Reply-Message". O valor do atributo é uma string contendo texto que pode ser exibido ao usuário em resposta a uma solicitação de acesso.

RADIUS_CALLBACK_NUMBER (int)

O atributo "Callback-Number". O valor do atributo é uma string contendo a string de discagem a ser usada para o retorno de chamada.

RADIUS_CALLBACK_ID (int)

O atributo "Callback-Id". O valor do atributo é uma string contendo um nome específico da implementação do local a ser chamado.

RADIUS_FRAMED_ROUTE (int)

O atributo "Framed-Route". O valor do atributo é uma string contendo um conjunto de rotas específicas da implementação a serem configuradas para o usuário.

RADIUS_FRAMED_IPX_NETWORK (int)

O atributo "Framed-IPX-Network". O valor do atributo é um int contendo a rede IPX a ser configurada para o usuário, ou 0xFFFFFFFE para indicar que o cliente RADIUS deve selecionar a rede, e pode ser acessado via radius_cvt_int().

RADIUS_STATE (int)

O atributo "State". O valor do atributo é uma string definida pela implementação, incluída em um Desafio de Acesso de um servidor que deve ser incluída na Solicitação de Acesso subsequente e pode ser definida usando radius_put_attr().

RADIUS_CLASS (int)

O atributo "Class". O valor do atributo é uma string arbitrária incluída em uma mensagem Access-Accept que deve então ser enviada ao servidor de contabilidade em mensagens Accounting-Request, e pode ser definida usando radius_put_attr().

RADIUS_VENDOR_SPECIFIC (int)

O atributo "Vendor-Specific". Em geral, os valores do atributo do fornecedor devem ser definidos usando radius_put_vendor_addr(), radius_put_vendor_attr(), radius_put_vendor_int() e radius_put_vendor_string(), em vez de diretamente.

Esta constante é útil principalmente ao interpretar atributos específicos do fornecedor em respostas de um servidor RADIUS; quando um atributo específico do fornecedor é recebido, a função radius_get_vendor_attr() deve ser usada para acessar o ID do fornecedor, o tipo de atributo e o valor do atributo.

RADIUS_SESSION_TIMEOUT (int)

Tempo limite da sessão

RADIUS_IDLE_TIMEOUT (int)

Tempo limite de inatividade

RADIUS_TERMINATION_ACTION (int)

Ação de rescisão

RADIUS_CALLED_STATION_ID (int)

ID da estação chamada

RADIUS_CALLING_STATION_ID (int)

ID da estação que faz a chamada

RADIUS_NAS_IDENTIFIER (int)

ID NAS

RADIUS_PROXY_STATE (int)

Estado do proxy

RADIUS_LOGIN_LAT_SERVICE (int)

Serviço de Login LAT

RADIUS_LOGIN_LAT_NODE (int)

Nó de Login LAT

RADIUS_LOGIN_LAT_GROUP (int)

Grupo de Login LAT

Link de Framed Appletalk

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Rede de Framed Appletalk

RADIUS_FRAMED_APPLETALK_ZONE (int)

Zona de Framed Appletalk

RADIUS_CHAP_CHALLENGE (int)

Desafio

RADIUS_NAS_PORT_TYPE (int)

Tipo de porta NAS, um dos seguintes:

RADIUS_PORT_LIMIT (int)

Limite de porta

RADIUS_LOGIN_LAT_PORT (int)

Porta de Login LAT

RADIUS_CONNECT_INFO (int)

Informação de conexão

RADIUS_ACCT_STATUS_TYPE (int)

Tipo de status contábil, um dos seguintes:

RADIUS_ACCT_DELAY_TIME (int)

Tempo de atraso contábil

RADIUS_ACCT_INPUT_OCTETS (int)

Bytes de entrada contábil

RADIUS_ACCT_OUTPUT_OCTETS (int)

Bytes de saída contábil

RADIUS_ACCT_SESSION_ID (int)

ID da sessão contábil

RADIUS_ACCT_AUTHENTIC (int)

Tipo de autenticação de contabilidade, uma das constantes:

RADIUS_ACCT_SESSION_TIME (int)

Tempo de sessão de contabilidade

RADIUS_ACCT_INPUT_PACKETS (int)

Pacotes de entrada de contabilidade

RADIUS_ACCT_OUTPUT_PACKETS (int)

Pacotes de saída de contabilidade

RADIUS_ACCT_TERMINATE_CAUSE (int)

Causa de encerramento da contabilidade, uma das seguintes:

RADIUS_ACCT_MULTI_SESSION_ID (int)

ID de multissessão de contabilidade

Contagem de conexões de contabilidade

Constantes de tipo de serviço
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
Contantes de Framed-Compression
RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR
RADIUS_COMP_STAC_LZS
Contantes de Tipo de Porta 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
Contantes de Tipo de Status de Contabilidade
RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
Contantes de Autenticação de Contabilidade
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
Constantes de Causa de Término de Contabilidade
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
adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

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

define('RADIUS_ALIVE', 3);
To Top