To fix missing the "Alive" of Acct-Status-Type, just :
define('RADIUS_ALIVE', 3);
Эти константы описывают типы атрибутов RADIUS, которые можно использовать в функциях radius_put_addr(), radius_put_attr(), radius_put_int() и radius_put_string().
RADIUS_USER_NAME
(int)
Атрибут User-Name. Должен быть типа string и содержать имя аутентифицируемого пользователя. Атрибут можно установить функцией radius_put_attr().
RADIUS_USER_PASSWORD
(int)
Атрибут User-Password. Должен быть типа string и содержать пароль пользователя. Атрибут можно установить функцией radius_put_attr(). Это значение будет обфусцировано при передаче согласно » секции 5.2 RFC 2865.
RADIUS_CHAP_PASSWORD
(int)
Атрибут Chap-Password. Должен быть типа string и содержать
идентификатор CHAP пользователя, 16 байт, содержащими
MD5-хеш идентификатора CHAP, текстовое представление пароля и проверочное значение
CHAP соединёнными в одну строку. Обратите внимание, что проверочное значение
CHAP также должно быть отдельно послано в атрибуте
RADIUS_CHAP_CHALLENGE
.
Пример #1 Использование паролей CHAP
<?php
// Для начала создадим обработчик аутентификации и запрос.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);
// Считая, что $password содержит пароль в незашифрованном виде, мы делаем:
// Создаём проверочное значение.
$challenge = mt_rand();
// Задаём идентификатор CHAP.
$ident = 1;
// Добавляем атрибут Chap-Password.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);
// Добавляем атрибут Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);
/* Теперь можно добавлять прочие необходимые аттриубты
* и вызывать radius_send_request(). */
?>
RADIUS_NAS_IP_ADDRESS
(int)
Атрибут NAS-IP-Address. Ожидается, что значение будет IP-адресом клиента RADIUS в виде целого числа. Атрибут устанавливается функцией radius_put_addr().
RADIUS_NAS_PORT
(int)
Атрибут NAS-Port. Ожидается, что значение будет физическим портом клиента RADIUS в виде целого числа. Атрибут устанавливается функцией radius_put_addr().
RADIUS_SERVICE_TYPE
(int)
Атрибут Service-Type. Значение атрибута обозначает тип сервиса запрашиваемого клиентом, должно быть целым числом. Атрибут устанавливается функцией radius_put_addr().
Допустимы следующие значения:
RADIUS_LOGIN
RADIUS_FRAMED
RADIUS_CALLBACK_LOGIN
RADIUS_CALLBACK_FRAMED
RADIUS_OUTBOUND
RADIUS_ADMINISTRATIVE
RADIUS_NAS_PROMPT
RADIUS_AUTHENTICATE_ONLY
RADIUS_CALLBACK_NAS_PROMPT
RADIUS_FRAMED_PROTOCOL
(int)
Атрибут Framed-Protocol. Атрибут должен быть целым числом, означающим используемый протокол обёртку. Атрибут устанавливается функцией radius_put_addr(). Допустимые значения:
RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS
RADIUS_FRAMED_IP_ADDRESS
(int)
Атрибут Framed-IP-Address. Атрибут должен содержать адрес пользовательской сети в виде целого числа. Атрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr().
RADIUS_FRAMED_IP_NETMASK
(int)
Атрибут Framed-IP-Netmask. Атрибут должен содержать маску пользовательской сети в виде целого числа. Атрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr()
RADIUS_FRAMED_ROUTING
(int)
Атрибут Framed-Routing. Атрибут должен быть целым числом и содержать метод маршрутизации. Атрибут устанавливается функцией radius_put_addr().
Допустимые значения:
0
: Без маршрутизации1
: Посылка пакетов маршрутизации2
: Ожидать пакеты маршрутизации3
: Посылать и ожидатьRADIUS_FILTER_ID
(int)
Атрибут Filter-ID. Атрибут должен быть зависящей от реализации, человеко-читаемой строкой фильтров. Атрибут устанавливается функцией radius_put_addr()
RADIUS_FRAMED_MTU
(int)
Атрибут Framed-MTU. Целое число, означающее значение MTU. Атрибут устанавливается функцией radius_put_addr()
RADIUS_FRAMED_COMPRESSION
(int)
Атрибут Framed-Compression. Целое число, означающее протокол сжатия. Атрибут устанавливается функцией radius_put_addr() Допустимые значения:
RADIUS_COMP_NONE
: Без сжатияRADIUS_COMP_VJ
: Сжатие заголовков VJ TCP/IPRADIUS_COMP_IPXHDR
: Сжатие заголовков IPXRADIUS_COMP_STAC_LZS
:
Сжатие Stac-LZS (добавлено в PECL radius 1.3.0b2)
RADIUS_LOGIN_IP_HOST
(int)
Атрибут Login-IP-Host. Целое число, представляющее IP-адрес, с которым соединяется пользователь. Атрибут устанавливается функцией radius_put_addr()
RADIUS_LOGIN_SERVICE
(int)
Атрибут Login-Service. Значение атрибута означает сервис, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().
RADIUS_LOGIN_TCP_PORT
(int)
Атрибут Login-TCP-Port. Значение атрибута означает порт, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().
RADIUS_REPLY_MESSAGE
(int)
Атрибут Reply-Message. Значение атрибута содержит текст, который можно показать пользователю в ответ на запрос аутентификации.
RADIUS_CALLBACK_NUMBER
(int)
Атрибут Callback-Number. Атрибут содержит строку, которую можно использовать как функцию обратного вызова.
RADIUS_CALLBACK_ID
(int)
Атрибут Callback-Id. Строка, содержащая имя вызываемого метода специфичного для конкретной реализации.
RADIUS_FRAMED_ROUTE
(int)
Атрибут Framed-Route. Строка, содержащая зависящий от реализации список маршрутов сконфигурированных для пользователя.
RADIUS_FRAMED_IPX_NETWORK
(int)
Атрибут Framed-IPX-Network. Целое число, определяющее сеть IPX, настроенную
для пользователя или 0xFFFFFFFE
, что призывает клиента RADIUS
выбрать сеть самостоятельно. Можно извлечь с помощью
radius_cvt_int().
RADIUS_STATE
(int)
Атрибут State. Зависящая от реализации строка, включённая в ответ Access-Challenge пришедший от сервера, которую необходимо включить в последующий запрос Access-Request. Должен устанавливаться функцией radius_put_attr().
RADIUS_CLASS
(int)
Атрибут Class. Произвольная строка включённая в сообщение Access-Accept и которая должна быть отослана серверу учётных данных в запросе Accounting-Request. Должен устанавливаться функцией radius_put_attr().
RADIUS_VENDOR_SPECIFIC
(int)
Атрибут Vendor-Specific . В целом, значения этого атрибута должны устанавливаться с использованием функций radius_put_vendor_addr(), radius_put_vendor_attr(), radius_put_vendor_int() и radius_put_vendor_string(), а не напрямую.
Эти константы необходимы для интерпретации специфичных, зависящих от производителя атрибутов, пришедших в ответах от сервера RADIUS; когда получены такие атрибуты, то нужно использовать функцию radius_get_vendor_attr() для извлечения идентификатора вендора, типа атрибута и его значения.
RADIUS_SESSION_TIMEOUT
(int)
Время ожидания сессии
RADIUS_IDLE_TIMEOUT
(int)
Время ожидания простоя
RADIUS_TERMINATION_ACTION
(int)
Прекращение операции
RADIUS_CALLED_STATION_ID
(int)
Идентификатор вызываемой станции
RADIUS_CALLING_STATION_ID
(int)
Идентификатор вызывающей станции
RADIUS_NAS_IDENTIFIER
(int)
NAS ID
RADIUS_PROXY_STATE
(int)
Состояние прокси
RADIUS_LOGIN_LAT_SERVICE
(int)
Сервис входа в систему LAT
RADIUS_LOGIN_LAT_NODE
(int)
Узел входа в систему LAT
RADIUS_LOGIN_LAT_GROUP
(int)
Группа входа в систему LAT
RADIUS_FRAMED_APPLETALK_LINK
(int)
Framed Appletalk Link
RADIUS_FRAMED_APPLETALK_NETWORK
(int)
Framed Appletalk Network
RADIUS_FRAMED_APPLETALK_ZONE
(int)
Framed Appletalk Zone
RADIUS_CHAP_CHALLENGE
(int)
Проверочное значение
RADIUS_NAS_PORT_TYPE
(int)
Тип порта 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
RADIUS_PORT_LIMIT
(int)
Ограничение на порты
RADIUS_LOGIN_LAT_PORT
(int)
Порт входа в систему LAT
RADIUS_CONNECT_INFO
(int)
Информация о соединении
RADIUS_ACCT_STATUS_TYPE
(int)
Статус системы управления учётными данными, одна из констант:
RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
RADIUS_ACCT_DELAY_TIME
(int)
Время задержки системы управления учётными данными
RADIUS_ACCT_INPUT_OCTETS
(int)
Входящие байты в систему управления учётными данными
RADIUS_ACCT_OUTPUT_OCTETS
(int)
Исходящие байты из системы управления учётными данными
RADIUS_ACCT_SESSION_ID
(int)
Идентификатор сессии системы управления учётными данными
RADIUS_ACCT_AUTHENTIC
(int)
Тип системы управления учётными данными, одна из констант:
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
RADIUS_ACCT_SESSION_TIME
(int)
Время сессии в системе управления учётными данными
RADIUS_ACCT_INPUT_PACKETS
(int)
Входящие пакеты в систему управления учётными данными
RADIUS_ACCT_OUTPUT_PACKETS
(int)
Исходящие пакеты из системы управления учётными данными
RADIUS_ACCT_TERMINATE_CAUSE
(int)
Аварийное завершение сеанса управления учётными данными:
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_ACCT_MULTI_SESSION_ID
(int)
Многосессионный идентификатор системы управления учётными данными
RADIUS_ACCT_LINK_COUNT
(int)
Количество соединений системы управления учётными данными