Аутентификация и хранение учетных записей
Типы пакетов
Тип пакета RADIUS определяется полем Code.
Пакет Accounting-Request
Пакеты Accounting-Request посылаются от клиента (обычно NAS или прокси) к аккаунтинг-серверу RADIUS и содержат информацию, используемую для авторизации доступа к сервису, предоставляемого пользователю. Клиент передает RADIUS-пакет с полем Code, установленным в 4 (Accounting-Request).
При получении Accounting-Request сервер должен передать ответ Accounting-Response, если он успешно записал пакет аккаунтинга, и не должен передавать никакого ответа, если произошел сбой при записи пакета аккаунтинга.
Любой атрибут, который используется в пакетах Access-Request и Access-Accept, может использоваться и в пакете Accounting-Request, за исключением следующих атрибутов, которые не должны присутствовать в пакетах Accounting-Request: User-Password, CHAP-Password, Reply-Message, State. В пакете Accounting-Request должен присутствовать атрибуты либо NAS-IP-Address, либо NAS-Identifier. Пакет должен содержать NAS-Port, или NAS-Port-Type, или оба атрибута, если только в сервисе не определен порт, или NAS не различает свои порты.
Если пакет Accounting-Request содержит Framed-IP-Address, то атрибут должен содержать IP-адрес пользователя. Если Access-Request использует специальные значения для Framed-IP-Address, которые означают, что NAS должен назначить IP-адрес пользователю или вести о нем переговоры, то Framed-IP-Address (если есть) в Accounting-Request должен содержать реальный IP-адрес, который назначен или о котором договорились.
Пакет Accounting-Response
Пакеты Accounting-Response посылаются сервером RADIUS клиенту как подтверждение того, что Accounting-Request был получен и успешно записан. Если Accounting-Request был успешно записан, то аккаунинг сервер должен передать пакет с полем Code, установленным в 5 (Accounting-Response). При получении Accounting-Response клиент проверяет, что поле Identifier соответствует отправленному в запросе. Аутентификатор ответа должен содержать корректное значение. Недействительный пакет молча отбрасывается.
Атрибуты аккаунтинга
Атрибуты отражают детали аутентификации, авторизации и аккаунтинга в запросе и ответе.
Некоторые атрибуты могут быть включены несколько раз. Результат такого включения зависит от атрибута.
Атрибуты имеют следующий формат.
Поле Type
Поле Type имеет длину один октет. Основные типы атрибутов следующие:
40 Acct-Status-Type 41 Acct-Delay-Time 42 Acct-Input-Octets 43 Acct-Output-Octets 44 Acct-Session-Id 45 Acct-Authentic 46 Acct-Session-Time 47 Acct-Input-Packets 48 Acct-Output-Packets 49 Acct-Terminate-Cause 50 Acct-Multi-Session-Id 51 Acct-Link-Count
Поле Length
Поле Length имеет длину один октет и определяет длину данного атрибута, включая поля Type, Length и Value. Если в Accounting-Request получен атрибут с неправильным значением поля Length, то весь пакет отбрасывается.
Поле Value
Поле Value состоит из нуля или более октетов и содержит информацию, зависящую от атрибута. Формат и длина поля Value зависят от типа и длины данного атрибута.
Атрибут Acct-Status-Type
Атрибут указывает, маркирует ли данный пакет Accounting-Request начало пользовательского сервиса (Start) или конец (Stop).
Он может использоваться клиентом для маркировки начала аккаунтинга (например, после перезагрузки), указав специальное значение атрибута Accounting-On и пометив конец аккаунтинга (например, перед плановым перезапуском) специальным значением атрибута Accounting-Off.
Атрибут Acct-Delay-Time
Атрибут указывает сколько секунд клиент пытается послать данную запись, и может вычитаться из времени получения сервером пакета Accounting-Request, т.е. время передачи по сети будет игнорироваться.
Атрибут Acct-Input-Octets
Атрибут определяет, сколько октетов было получено с порта, на котором был предоставлен сервис, и может присутствовать только в пакетах Accounting-Request, в которых Acct-Status-Type установлен в Stop.
Атрибут Acct-Output-Octets
Атрибут определяет, сколько октетов было послано на порт, на котором выполняется данный сервис, и может присутствовать только в пакетах Accounting-Request, в которых атрибут Acct-Status-Type установлен в Stop.
Атрибут Acct-Session-Id
Атрибут содержит уникальный идентификатор, который используется для нахождения соответствующих пар старт- и стоп-записей в лог-файле. Старт- и стоп-записи для данной сессии должны иметь один и тот же Acct-Session-Id. Пакет Access-Request может содержать атрибут Acct-Session-Id. Если он содержит этот атрибут, то NAS должен использовать тот же самый Acct-Session-Id во всех пакетах Accounting-Request, относящихся к данной сессии.
Атрибут Acct-Authentic
Атрибут может быть включен в пакет Accounting-Request для указания того, был ли пользователь аутентифицирован самим NAS или использовался протокол RADIUS или другой протокол удаленной аутентификации. Для пользователей, которые получили сервис без выполнения аутентификации, не должны создаваться записи аккаунтинга.
Атрибут Acct-Session-Time
Атрибут указывает, сколько секунд пользователь получал сервис, и может присутствовать только в пакетах Accounting-Request, в которых атрибут Acct-Status-Type установлен в Stop.
Атрибут Acct-Input-Packets
Атрибут указывает, сколько пакетов было получено с порта в течение использования данного сервиса пользователем, и может присутствовать только в пакетах Accounting-Request, в которых атрибут Acct-Status-Type установлен в Stop.
Атрибут Acct-Output-Packets
Атрибут указывает, сколько пакетов было послано на порт в течение использования данного сервиса пользователем, и может присутствовать только в пакетах Accounting-Request, в которых атрибут Acct-Status-Type установлен в Stop.
Атрибут Acct-Terminate-Cause
Атрибут указывает, как сессия была завершена, и может присутствовать только в пакетах Accounting-Request, в которых атрибут Acct-Status-Type установлен в Stop.
Атрибут Acct-Multi-Session-Id
Данный атрибут является уникальным Accounting ID, что позволяет легко объединить в лог-файле несколько взаимосвязанных сессий. Каждая сессия имеет уникальный атрибут Acct-Session-Id, но взаимосвязанные сессии имеют один и тот же атрибут Acct-Link-Count.
Атрибут Acct-Link-Count
Атрибут содержит количество взаимосвязанных (с помощью атрибута Acct-Link-Count) сессий. NAS может включить атрибут Acct-Link-Count в любой пакет Accounting-Request, который связан с несколькими сессиями.
Это дает возможность аккаунтинг-серверу объединить все записи в логах, относящиеся к взаимосвязанным сессиям.