UTM5 RADIUS

10    

Введение#

UTM5 RADIUS взаимодействует с серверами доступа (далее NAS) по протоколу RADIUS в соответствии со стандартами RFC 2865, 2866 и 5176.

Протокол Remote Authentication Dial In User Service (RADIUS) обеспечивает авторизацию, аутентификацию и аккаунтинг между сервером доступа и сервером авторизации.

Данный протокол упрощает управление большим количеством NAS. Например, когда в сети имеются несколько устройств, к которым пользователи должны иметь доступ, и на каждом устройстве содержится информация обо всех пользователях, то администрирование такой системы значительно усложняется. Проблема может быть решена установкой одного центрального сервера авторизации, чтобы все сетевые устройства отправляли ему запросы по стандартному протоколу RADIUS. При этом в качестве серверов доступа могут выступать устройства любых производителей, поддерживающие протокол RADIUS.

По данному протоколу возможна передача информации о полученных пользователями услугах (время соединения, потребленный трафик, IP-адрес пользователя и т. п.).

Работа с NAS описана в разделе Список NAS.

UTM5 RADIUS взаимодействует с ядром UTM5 по протоколу Stream.

 

Один экземпляр ядра UTM5 может работать только с одним RADIUS-сервером.

Пакет RADIUS входит в состав трёх модулей, требующих отдельных лицензий. Проверить наличие и срок действия лицензий можно в интерфейсе администратора UTM5 (см. Лицензии, пункты Модуль Hotspot, Модуль коммутируемых и VPN соединений и Модуль телефонии).

Описание взаимодействия по протоколу RADIUS#

Если NAS настроен на взаимодействие с UTM5 RADIUS по протоколу RADIUS, он не хранит базу данных пользователей.

При подключении пользователя NAS отправляет запрос на проверку возможности доступа (Access-Request).

UTM5 RADIUS принимает решение о возможности подключения абонента. В случае принятия положительного решения на NAS отправляется ответ о возможности подключения абонента (Access-Accept). При отрицательном решении на NAS отправляется ответ, запрещающий доступ (Access-Reject).Если для принятия решения требуется дополнительная информация, которую NAS должен предоставить на основании запроса от UTM5 RADIUS, на NAS отправляется ответ Access-Challenge.

RADIUS_NAS.jpg

Если NAS настроен на передачу информации о соединении, UTM5 RADIUS после установления соединения отправляет запрос на учет (Accounting-Request), содержащий информацию о начале сессии. В зависимости от конфигурации, NAS также может отправлять дополнительные запросы на учет (Accounting-Request), содержащие информацию о текущем состоянии установленного соединения, с периодичностью, определенной в конфигурации NAS.

Если для соединения был отправлен хотя бы один запрос Accounting-Request, то при разрыве данного соединения NAS должен отправить Accounting-Request с итоговой информацией о соединении.

При получении запроса Accounting-Request UTM5 RADIUS создает, изменяет или удаляет объект, ассоциированный с соединением. В зависимости от содержания запроса могут выполняться дополнительные действия, направленные на сохранение в оперативном доступе необходимой информации о соединении.

В случае успешной обработки запроса Accounting-Request UTM5 RADIUS отправляет на NAS ответ Accounting-Response с информацией об успешной отработке запроса.В случае неудачной обработки любого запроса ответы на NAS не передаются.Пакеты от неизвестного (незарегистрированного в системе) NAS игнорируются.

Взаимодействие UTM5 RADIUS и NAS осуществляется посредством RADIUS-пакетов. Для передачи RADIUS-пакетов используется протокол UDP. Для приема запросов на проверку доступа (Access-Request) UTM5 RADIUS обычно использует порт 1812. Для приема запросов на учет (Accounting-Request) UTM5 RADIUS обычно использует порт 1813.

В общем случае RADIUS-пакет выглядит следующим образом:

RADIUS_packet.jpg

Описание полей пакета:

Code

поле, используемое для идентификации типа RADIUS-пакета. UTM5 RADIUS поддерживает RADIUS-пакеты со следующими кодами:

Тип

Название

Принимается или передается UTM5 RADIUS

1

Access-Request

принимается

2

Access-Accept

передается

3

Access-Reject

передается

4

Accounting-Request

принимается

5

Accounting-Response

передается

11

Access-Challenge

передается

Identifier

число, предназначенное для соотнесения запроса и ответа. Дублирующиеся запросы с одинаковым идентификатором, поступившие в течение короткого промежутка времени от одного и того же NAS, игнорируются.

Length

суммарная длина полей Code, Identifier, Authenticator и Attributes.

Authenticator

для запроса это уникальная последовательность символов, используемая совместно с MD5-суммой общего для UTM5 RADIUS и NAS секретного слова (secret) для шифрования пароля пользователя с помощью обратимого алгоритма. Для ответа это MD5-сумма полей Code, Identifier, Length, Authenticator, Attributes и общего секретного слова.
В целях обеспечения безопасности общее секретное слово должно быть достаточно длинным и сложным для подбора. Категорически не рекомендуется использовать пустое общее секретное слово. Для определения того, какое общее секретное слово будет использоваться, UTM5 RADIUS использует адрес отправителя RADIUS-пакета.

Attributes

поле переменной длины, содержащее список атрибутов RADIUS.

 

В системе UTM5 версии 5-3.004 реализована поддержка тегированных атрибутов RADIUS.

RADIUS_attributes.jpg

 Каждый RADIUS-атрибут содержит специфичную дополнительную информацию о запросе или ответе. В общем случае RADIUS-атрибут выглядит следующим образом:

Type

число, определяющее назначение данного атрибута.
Описание типов RADIUS-атрибутов: http://www.iana.org/assignments/radius-types/radius-types.xhtml#radius-types-2

Length

суммарная длина полей Type, Length и Value.

Value

информация, специфичная для каждого типа атрибута. В зависимости от типа атрибута данное поле может содержать следующие данные:

text

от 1 до 253 байт, содержащих текст в UTF-8 (в строке недопустимо использование символа с нулевым кодом);

string

от 1 до 253 байт, содержащих бинарную информацию;

address

32 бита, интерпретируемые как адрес;

integer

32 бита, интерпретируемые как беззнаковое целое число;

time

32 бита, интерпретируемые как время в секундах с 00:00:00 1 января 1970 UTC.

Некоторые атрибуты могут быть включены в пакет более одного раза. В этом случае их интерпретация зависит от типа атрибута. Порядок следования атрибутов является существенным.

В пакет также включаются дополнительные атрибуты, указанные в настройках NAS, услуг и сервисных связок. Атрибуты, указанные в настройках NAS, добавляются первыми, в настройках услуг - вторыми, в настройках сервисных связок - в последнюю очередь. UTM5 позволяет настроить определенные действия при добавлении атрибутов, например, заменить или удалить ранее добавленный атрибут. Таким образом, наибольший приоритет имеют атрибуты, указанные в свойствах сервисных связок. Подробнее см. Дополнительные атрибуты RADIUS

В дальнейшем при указании на какой-либо RADIUS-атрибут будет использоваться его общепринятое название, а идентификатор типа будет указан в скобках. Например, атрибут User-Name (1).

RADIUS_vendor.jpg

 Существует тип атрибута Vendor-specific (26), предназначенный для передачи расширенных атрибутов, назначение которых определяется различными организациями. Данные, передаваемые в этом атрибуте, интерпретируются следующим образом:

Vendor-Id

число, идентифицирующее организацию, которая определяет назначение данного атрибута.

Vendor-Type

число, определяющее назначение данного атрибута.

Vendor-Length

суммарная длина полей Vendor-Type, Vendor-Length и Data.

Data

данные специфичной части атрибута.

В дальнейшем при упоминании vendor-specific атрибутов будет использоваться их общепринятое название, а Vendor-Id и Vendor-Type будут указаны в скобках через точку с запятой. Например, Cisco-AVPair (9;1).

Запросы DM и CoA#

При необходимости изменения параметров сессии или ее разрыва UTM5 RADIUS может отправлять запросы DM (Disconnect Message) и CoA (Change of Authorization) в соответствии с RFC 5176. Для изменения параметров или разрыва каждой сессии UTM5 RADIUS отправляет отдельный запрос.

Запрос разрыва соединения (DM) и запрос изменения параметров сессии (CoA) имеют одинаковый формат и отправляются по умолчанию на UDP-порт 3799. Номер порта можно изменить в настройках NAS (см. Список NAS).

Запросы DM используются для разрыва сессии, если баланс лицевого счета пользователя становится отрицательным. Для идентификации сессии в запросе могут использоваться следующие атрибуты:

User-Name

имя пользователя, ассоциированного с одной или более сессиями;

NAS-Port

порт, используемый сессией, которую нужно разорвать;

Framed-IP-Address

IPv4 адрес, ассоциированный с сессией;

Vendor-Specific

один или более vendor-specific атрибутов;

Called-Station-Id

идентификатор вызываемой стороны;

Calling-Station-Id

идентификатор вызывающей стороны;

Acct-Session-Id

идентификатор, позволяющий однозначно идентифицировать сессию на NAS.

Если NAS удается идентифицировать и разорвать сессию, он отвечает на запрос Disconnect-ACK, в противном случае - Disconnect-NAK.

Запросы CoA используются для изменения параметров шейпинга (регулирования пропускной способности канала) для текущей сессии (подробнее см. Схема работы). Как правило, эти параметры меняются в определенное время суток или по достижении определенного лимита трафика. Если NAS поддерживает запросы CoA и в интерфейсе администратора в настройках NAS выбрана соответствующая опция, то при наступлении любого из двух этих событий UTM5 RADIUS отправит NAS соответствующий запрос CoA.

Аналогично запросу DM, запрос CoA содержит атрибуты, позволяющие идентифицировать сессию, а также новые значения параметров RADIUS (см. Параметры RADIUS), которые необходимо применить. Если NAS удается идентифицировать сессию и применить новые параметры, он отвечает на запрос CoA-ACK, в противном случае - CoA-NAK.

Описание работы#

Краткое описание схемы работы:

1.Соединение с ядром UTM5.

2.Получение от ядра UTM5 информации о необходимых для работы событиях.

3.Взаимодействие с NAS.

4.Передача данных о взаимодействии ядру UTM5.

RADIUS_components.png

При запуске UTM5 RADIUS подключается к ядру UTM5, авторизуется, используя соответствующие параметры конфигурационного файла, и устанавливает соединение по протоколу Stream.

После установления соединения ядро UTM5 направляет UTM5 RADIUS информацию обо всех необходимых объектах в соответствующих событиях.

UTM5 RADIUS поддерживает постоянное соединение с ядром по протоколу Stream. При создании, изменении или удалении объектов системы, параметры которых необходимы UTM5 RADIUS, ядро UTM5 отправляет определенное событие по протоколу Stream.

При получении соответствующего события UTM5 RADIUS создает, изменяет или удаляет во внутренних таблицах данные о следующих объектах:

IP-группы;

NAS;

лицевые счета;

временные диапазоны;

услуги передачи трафика и телефонии;

сервисные связки услуг коммутируемого доступа и телефонии;

телефонные зоны;

телефонные направления;

именованные IP-пулы.

Авторизация#

При поступлении запроса Access-Request UTM5 RADIUS выполняет следующие действия:

1.Проводит процедуру аутентификации пользователя, используя один из следующих методов:

PAP

CHAP

MS-CHAP v1

MS-CHAP v2

EAP-MD5

EAP-TTLS

Digest

 

Аутентификация по методу Digest отклоняется от RFC и реализована согласно спецификации http://tools.ietf.org/id/draft-sterman-aaa-sip-00.txt.

В запросе на авторизацию в обязательном порядке должен быть указан атрибут User-Name (1). Часть значения атрибута User-Name (1) до символа ':' записывается в параметр Callback_prefix. Логин рассматривается без префикса. Все буквенные символы в логине принудительно переводятся в нижний регистр. Если атрибут User-Name (1) не указан, запрос Access-Request игнорируется и последующие действия не производятся.

Если аутентификация прошла неудачно или метод аутентификации не поддерживается, на NAS отправляется ответ Access-Reject.

Если в конфигурационном файле UTM5 RADIUS (см. Конфигурационный файл) задан параметр guest_pool_name, то незарегистрированные пользователи также могут быть авторизованы.

2.По логину, полученному на первом этапе, определяется сервисная связка, которой принадлежит данный логин. Перечень производимых действий зависит от типа сервисной связки.

Для сервисной связки услуги передачи IP-трафика:

*Если в конфигурационном файле UTM5 RADIUS задан параметр radius_auth_vap, то лицевой счет, на который ссылается сервисная связка, проверяется на отсутствие действующей в данный момент блокировки.

*Проверяется наличие хотя бы одного свободного IP-адреса для данной IP-группы.

*Если параметр IP-группы Разрешенные CID имеет непустое значение, то проверяется значение атрибута Calling-Station-Id (31) на соответствие заданному в значении данного параметра регулярному выражению.

*Если в конфигурационном файле UTM5 RADIUS задан параметр radius_nas_port_vpn, то проверяется значение атрибута NAS-Port-Type (61) на точное соответствие значению хотя бы одного параметра radius_nas_port_ vpn.

Если хотя бы одна из проверок завершится неудачно, то отправляется ответ Access-Reject и дальнейшие действия не производятся.

При успешном прохождении проверок отправляется ответ Access-Accept, содержащий следующие атрибуты:

*Service-Type (6) – передается значение 2.

*Framed-IP-Netmask (9) – передается значение 0xFFFF  FFFF.

*Framed-Routing (10) – передается значение 0.

*Framed-Protocol (7) – передается значение 1.

*Framed-IP-Address (8) – передается первый свободный IP-адрес для данной IP-группы. IP-адрес помечается как занятый на время, указанное в значении параметра radius_ippool_acct_timeout конфигурационного файла UTM5 RADIUS.

*Session-Timeout (27) – передается значение параметра radius_default_session_timeout конфигурационного файла UTM5 RADIUS.

Для сервисной связки услуги коммутируемого доступа:

*Проверяется соответствие наличия или отсутствия Callback_prefix заданным параметрам Разрешен Callback и Разрешен Ringdown. Если параметр Разрешен Callback не задан, проверка возвращает отрицательный результат при наличии Callback_prefix. Если параметр Разрешен Ringdown не задан, проверка возвращает отрицательный результат при отсутствии Callback_prefix.

*Если параметр Разрешенные CID имеет непустое значение, проверяется соответствие значения атрибута Calling-Station-Id (31) заданному в значении данного параметра регулярному выражению.

*Если параметр Разрешенные CSID имеет непустое значение, проверяется соответствие значения атрибута Called-Station-Id (30) заданному в значении данного параметра регулярному выражению.

*Проверяется количество установленных для данной сервисной связки соединений на соответствие максимальному числу одновременных сессий, заданному в свойствах услуги, на которую ссылается сервисная связка.

*Если в конфигурационном файле UTM5 RADIUS не задан параметр blocked_pool_name, проверяется отсутствие действующей блокировки лицевого счета.

*Вычисляется максимальное время соединения по балансу лицевого счета и параметрам сервисной связки. Проверка пройдет успешно, если значение максимального времени соединения больше 0, и текущее время входит в установленный временной диапазон, а также если средств на балансе лицевого счета достаточно для оплаты как минимум одной секунды соединения в текущее время.

*Если в свойствах услуги указан пул, зарегистрированный в UTM5 RADIUS, определяется первый свободный IP-адрес в данном пуле. Если свободные IP-адреса отсутствуют, то проверка не проходит.

*Если в конфигурационном файле UTM5 RADIUS задан параметр radius_ nas_port_dialup, проверяется значение атрибута NAS-Port-Type (0;61) на точное соответствие значению хотя бы одного параметра radius_nas_port_ dialup.

Если хотя бы одна из проверок завершится неудачно, то отправляется ответ Access-Reject, и дальнейшие действия не производятся.

При успешном прохождении проверок отправляется ответ Access-Accept.

Если пользователь заблокирован, и в конфигурационном файле UTM5 RADIUS задан параметр blocked_pool_name, то адрес будет выдан из пула, предназначенного для заблокированных пользователей (заданного этим параметром).

 

При разблокировании лицевого счета будет отправлен запрос DM (disconnect-message) и сессия будет разорвана. После этого потребуется переподключение.

Если пользователь не зарегистрирован, и в конфигурационном файле UTM5 RADIUS задан параметр guest_pool_name, то адрес будет выдан из пула, предназначенного для гостевых пользователей (заданного этим параметром).

Если в свойствах услуги коммутируемого доступа в качестве параметра Название пула задано имя зарегистрированного в системе IP-пула, передаются следующие атрибуты:

*Service-Type (6) – передается значение 2.

*Framed-IP-Netmask (9) – передается значение 0xFFFF FFFF.

*Framed-Routing (10) – передается значение 0.

*Framed-Protocol (7) – передается значение 1.

*Framed-IP-Address (8) – передается свободный IP-адрес для данной IP-группы; IP-адрес помечается как занятый на время, указанное в значении параметра radius_ippool_acct_timeout конфигурационного файла UTM5 RADIUS.

*Session-Timeout (27) – передается максимальное время текущей сессии.

Если в свойствах услуги коммутируемого доступа в качестве параметра Название пула задано имя незарегистрированного в системе IP-пула, передаются следующие атрибуты:

*Service-Type (6) – передается значение 2.

*Framed-MTU (12) – передается значение 1500.

*Framed-Routing (10) – передается значение 0.

*Framed-Protocol (7) – передается значение 1.

*Session-Timeout (27) – передается максимальное время сессии.

*Cisco-AVPair (9;1) – передается значение addr-pool=<имя пула>, где <имя пула> – имя незарегистрированного в системе IP-пула.

Кроме того, если на этапе авторизации был выделен ненулевой Callback_prefix, в ответ добавляются следующие атрибуты:

*Callback-Number (19) – передается значение callback number (если не задан параметр radius_callback_avpair_enable конфигурационного файла UTM5 RADIUS).

*Callback-Id (20) – передается логин для Callback (если не задан параметр radius_callback_avpair_enable конфигурационного файла UTM5 RADIUS).

*Cisco-AVPair (9;1) – передается значение lcp:callback-dialstring= <callback_prefix> (если задан параметр radius_callback_avpair_enable конфигурационного файла UTM5 RADIUS).

После выдачи IP-адреса он помечается как занятый на время, указанное в параметре radius_ippool_timeout конфигурационного файла UTM5 RADIUS.

Для сервисной связки услуги телефонии: см. Алгоритм работы.

Для любых сервисных связок в ответ Access-Accept включаются атрибуты, установленные для услуги, на которую ссылается сервисная связка.

Аккаунтинг#

Запросы на учет (Accounting-Request) используются UTM5 RADIUS для определения занятости выделенных IP-адресов, тарификации услуг hotspot, коммутируемого доступа и телефонии, тарификации трафика, а также для динамического создания, изменения и удаления IP-групп.

Запрос Accounting-Request должен обязательно содержать следующие атрибуты:

Acct-Status-Type (40)

Acct-Session-Id (44)

Framed-IP-Address (8)

При отсутствии хотя бы одного из данных атрибутов запрос игнорируется.

Тип запроса на учет определяется атрибутом Acct-Status-Type (40).

UTM5 RADIUS различает три типа запросов Accounting-Request:

Значение атрибута Acct-Status-Type

Название

Комментарий

1

Start

Сообщает о начале сессии.

2

Stop

Сообщает о завершении сессии.

3

Interim-Update

Сообщает промежуточные данные установленного соединения.

При получении запроса Start:

Создается объект, описывающий сессию с идентификатором, указанным в атрибуте Acct-Session-Id (44); по протоколу Stream ядру передается соответствующее событие.

Если логин, указанный в атрибуте User-Name (1), принадлежит IP-группе или сервисной связке услуги коммутируемого доступа, последний IP-адрес для данной IP-группы или сервисной связки помечается как занятый на неопределенное время. IP-адрес помечается как занятый на время, указанное в параметре radius_ippool_timeout, если этот параметр задан. Если задан параметр interim_update_interval, то IP-адрес освободится только в том случае, если в течение тройного промежутка времени, заданного в этом параметре, для сессии не поступало запросов Interim-Update.

IP-адрес, ассоциированный с сессией, помечается как занятый.

При получении запроса Stop:

Если значение атрибута User-Name (1) соответствует логину сервисной связки услуги коммутируемого доступа, то выполняется тарификация сессии на основании времени, указанного в атрибуте Acct-Session-Time (46). Информация о необходимом списании передается ядру по протоколу Stream соответствующим событием.

Объект, описывающий сессию с идентификатором, указанным в атрибуте Acct-Session-Id (44), удаляется. Информация об удалении данного объекта передается ядру по протоколу Stream соответствующим событием.

IP-адрес помечается как свободный.

При получении запроса Interim-Update:

Обновляется объект, описывающий сессию с идентификатором, указанным в атрибуте Acct-Session-Id (44); по протоколу Stream ядру передается соответствующее событие.

Если логин, указанный в значении атрибута User-Name (1), принадлежит IP-группе или сервисной связке услуги коммутируемого доступа, включен механизм контроля сессий по запросу Interim-Update и задан параметр interim_update_interval, то IP-адрес освободится только в том случае, если в течение тройного промежутка времени, заданного в этом параметре, для сессии не поступало запросов Interim-Update.

Следует отметить, что есть определенные особенности обработки запросов на учет.

В общем случае, при поступлении запроса Stop или Interim-Update с идентификатором сессии, которая ранее не была зарегистрирована со статусом «открыта», будет создана новая сессия. Модуль UTM5 RADIUS может хранить информацию о закрытых сессиях в кэше, чтобы не создавать повторную сессию по запросу Stop или Interim-Update, содержащему идентификатор сессии, которая уже была закрыта. По умолчанию данная возможность отключена. Чтобы задействовать кэш закрытых сессий, в конфигурационном файле необходимо задать два параметра:

use_closed_sessions_cache=on

closed_sessions_cache_size=<число> - размер кэша закрытых сессий; определяет количество закрытых сессий, о которых будет храниться информация.

Если кэш задействован, то когда сессии присваивается статус «закрыта», идентификатор Acct-Session-Id данной сессии помещается в кэш закрытых сессий. При поступлении запроса Stop или Interim-Update производится поиск Acct-Session-Id в кэше. Если содержащийся в запросе идентификатор сессии будет найден, то информация об этом запросе не будет передана ядру UTM5. При поступлении запроса Start идентификатор сессии из этого запроса удаляется из кэша.

 

Когда количество записей в кэше достигает максимального, при добавлении новой записи самая старая запись удаляется. Чем больше размер кэша, тем меньше вероятность создания повторной сессии по запросу Stop или Interim-Update, но тем больше времени и ресурсов компьютера потребуется для поиска в кэше.
Для каждой отдельной системы требуемый размер кэша зависит от многих параметров, таких как, например, количество зарегистрированных пользователей, число сессий на каждого пользователя и т. п. Поэтому для параметра closed_sessions_cache_size значение по умолчанию не предусмотрено.

 

При остановке RADIUS-сервера вся информация о закрытых сессиях будет утеряна.

Опосредованная тарификация трафика#

Если сервер доступа не поддерживает экспорт статистики по протоколу NetFlow, то информация о потребленном трафике может быть получена на основании запросов Stop или Interim-Update. Для использования этого механизма необходимо присвоить произвольное значение системному параметру radius_do_accounting (для тарификации по запросам Stop) или radius_do_interim_accounting (для тарификации по запросам обоих типов).

При получении запроса Stop или Interim-Update RADIUS-сервер создаст две записи с информацией о трафике, которые далее будут тарифицироваться в ядре биллинговой системы по стандартному механизму.

В первой записи с информацией о трафике в качестве адреса отправителя будет указан IP-адрес сервера доступа, а в качестве адреса получателя – IP-адрес абонента, использованный в данной сессии. Количество потребленных байт берётся из атрибутов Acct-Input-Octets (42) и Acct-Input-Gigawords (52), содержащихся в запросе Stop или Interim-Update. Во второй записи с информацией о трафике в качестве адреса получателя будет указан IP-адрес сервера доступа, а в качестве адреса отправителя – IP-адрес абонента, использованный в данной сессии. Количество байт берётся изатрибутов Acct-Output-Octets (43) и Acct-Output-Gigawords (53).

Сформированные записи передаются ядру UTM5 в соответствующем событии по протоколу Stream.

Механизм контроля сессий#

Если задан параметр interim_update_interval (см. Конфигурационный файл), то подразумевается, что NAS должен отправлять запросы Interim-Update по каждой открытой сессии с данной периодичностью. При отсутствии новых запросов в течение тройного периода или при поступлении запроса Stop сессия считается завершенной, а связанные с ней IP-адреса освобождаются.

По умолчанию данный параметр не задан, и сессия завершается только при поступлении запроса Stop. Если NAS поддерживает отправку запросов Interim-Update, рекомендуется задать этот параметр во избежание возникновения “повисших” сессий.

Демон utm5_radius#

Исполняемый файл UTM5 RADIUS называется /netup/utm5/bin/utm5_radius.

В командной строке можно передавать следующие параметры:

-p <путь>

Путь к PID-файлу

-c <путь>

Путь к конфигурационному файлу

-v

Вывод информации о версии и допустимых параметрах командной строки

Существуют 3 способа запуска utm5_radius:

1.Непосредственный запуск бинарного файла /netup/utm5/bin/utm5_radius с необходимыми параметрами;

2.Запуск с помощью скрипта watchdog с указанием параметра start:

/netup/utm5/bin/safe_utm5_radius start

Скрипт автоматически перезапустит utm5_radius, если он по каким-либо причинам некорректно завершит работу.

1.Запуск с помощью скрипта автоматического запуска (рекомендуемый способ):
в Linux –

/etc/init.d/utm5_radius start

в FreeBSD –

/usr/local/etc/rc.d/utm5_radius.sh start

В этом случае произойдет запуск скрипта watchdog.

Для остановки utm5_radius и скрипта watchdog следует выполнить команду:

в Linux –

/etc/init.d/utm5_radius stop

в FreeBSD –

/usr/local/etc/rc.d/utm5_radius.sh stop

Настройка#

Настройка UTM5 RADIUS производится с помощью:

параметров, задаваемых в конфигурационном файле;

параметров системы, задаваемых в интерфейсе администратора (подробнее – в разделе Настройки в интерфейсе администратора).

Параметры, задаваемые в конфигурационном файле, используются при инициализации UTM5 RADIUS.

Конфигурационный файл#

По умолчанию UTM5 RADIUS использует конфигурационный файл /netup/utm5/radius5.cfg.

Формат конфигурационного файла:

параметр=значение

Набор символов до знака равенства является названием параметра, после – значением параметра. Пробелы учитываются. Пустые строки игнорируются. Строка, начинающаяся с символа #, считается комментарием.

Список возможных параметров:

Параметр

Возможные значения

Значение по умолчанию

Описание

core_host

IP-адрес

обязательный параметр

IP-адрес хоста, на котором запущено ядро UTM5.

core_port

от 1 до 65534

обязательный параметр

Порт, на котором ядро UTM5 слушает Stream (параметр stream_bind_port в конфигурационном файле ядра).

radius_login

строка

radius

Логин пользователя для доступа к ядру UTM5.

radius_password

строка

radius

Пароль пользователя для доступа к ядру UTM5.

radius_pid_file

имя файла

/var/run/ utm5_radius.pid

PID-файл.

radius_ping_interval

число

30

Длительность (в сек.) повторных попыток соединения с ядром.

radius_acct_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

Адрес хоста для приема запросов на учет (Accounting-Request).

radius_acct_port

от 1 до 65534

1813

Порт для приема запросов на учет (Accounting-Request).

radius_auth_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

Адрес хоста для приема запросов на проверку доступа (Access-Request).

radius_auth_port

от 1 до 65534

1812

Порт для приема запросов на проверку доступа (Access-Request).

radius_auth_mppe

enable

генерация ключей не производится

Включает генерацию ключей MPPE 128 бит, используемых при авторизации по протоколу -MS-CHAP-v2.

radius_auth_vap

1

авторизация разрешена

Если значение задано, то заблокированным пользователям, логины которых заданы в сервисной связке услуги передачи трафика, запрещается авторизоваться.

radius_ippool_acct_timeout

время в секундах

30

Время, в течение которого IP-адрес будет помечен как занятый после отправки Access-Accept.

radius_ippool_timeout

время в секундах

до момента прихода Stop-пакета

Время, в течение которого IP-адрес будет помечен как занятый после прихода Accounting-Start. Не рекомендуется использовать этот параметр.

radius_auth_null

yes или enable

не задано

При включении этой опции RADIUS-сервер будет принимать и успешно авторизовать запросы без атрибута User-Password (2), если пароль пользователя, указанный в сервисной связке, пустой.

radius_auth_h323_remote_address

enable, on, yes

не задано

При включении данной опции для телефонных звонков аутентификация производится не по атрибуту User-Name (1), а по значению атрибута h323-remote-address (9;23). Значение атрибута используется в качестве логина.

radius_nas_port_vpn

a.Можно указать несколько параметров.

натуральное число

не задано (проверка не производится)

На соответствие заданному значению будет проверяться значение атрибута NAS-Port-Type (61) при подключении с помощью логина, указанного в сервисной связке услуги передачи трафика.

radius_nas_port_dialup (a)

натуральное число

не задано (проверка не производится)

На соответствие заданному значению будет проверяться значение атрибута NAS-Port-Type (61) при подключении с помощью логина, указанного в сервисной связке услуги коммутируемого доступа.

radius_nas_port_tel (a)

натуральное число

не задано (проверка не производится)

На соответствие заданному значению будет проверяться значение атрибута NAS-Port-Type (61) при подключении с помощью логина, указанного в сервисной связке услуги телефонии.

radius_nas_port_hotspot (a)

натуральное число

не задано (проверка не производится)

На соответствие заданному значению будет проверяться значение атрибута NAS-Port-Type (61) при подключении с помощью логина, указанного в сервисной связке услуги hotspot.

radius_card_-autoadd

yes, on, enable

не задано (авторегистрация не производится)

Разрешает проводить автоматическую регистрацию пользователей через сервер RADIUS по предоплаченной карте. При этом пользователь в поле Логин указывает номер карты, а в поле Пароль – ПИН-код карты. В случае услуги телефонии в качестве логина указывается ПИН-код или часть ПИН-кода, оставшаяся часть выступает в качестве пароля.

send_xpgk_ep_number

любое

не задано (номера не передаются)

Если данная опция включена, то при авторизации абонента в случае использования услуги телефонии в ответе Access-Accept будет передан атрибут Cisco-AVPair (9;1) со значением: xpgk-ep-number=< список телефонных номеров через “;” >

send_h323_ivr_in

любое

не задано (номера не передаются)

Если данная опция включена, то при авторизации абонента в случае использования услуги телефонии в ответе Access-Accept будет передан атрибут Cisco-AVPair (9;1) со значением: h323-ivr-in=terminal-alias: < список телефонных номеров через “;” >

h323_origin_-reject

строка

не задано

Устанавливает нулевую стоимость для запросов Accounting-Request, в которых атрибут h323-call-origin (9;26) равен значению данного параметра.

interim_update_interval

время в секундах большее 60

не задано (используется стандартный механизм)

Включает механизм контроля сессий на основании запросов Interim-Update. Значение передается в атрибуте Acct-Interim-Interval (85) пакета Access-Accept.

radius_default_session_timeout

натуральное число

86400

Значение атрибута Session-Ti-meout (27), передаваемое в ответе Access-Accept для сервисной связки услуги передачи трафика.

radius_callback_avpair_enable

любое

не задано

Включает передачу атрибута Cisco-AVPair (9;1) со значением lcp:callback-dialstring=<callback n-umber>, где callback number – часть логина от начала строки до символа ':'

radius_acct_rewrite_login_answer

enable, on, true

не задано

Если атрибут h323-call-origin (9;26) имеет значение originate, задание параметра включает замену логина на значение атрибута h323-remote-address (9;23) при обработке пакетов Accounting-Request.

radius_acct_rewrite_login_originate

enable, on, true

не задано

Если атрибут h323-call-origin (9;26) имеет значение answer, то задание параметра включает замену логина на значение атрибута h323-remote-address (9;23) при обработке пакетов Accounting-Request.

blocked_pool_name

строка

не задано

Имя IP-пула, адреса из которого выдаются заблокированным пользователям для ограниченного доступа.

guest_pool_name

строка

не задано

Имя IP-пула, адреса из которого выдаются гостевым пользователям для ограниченного доступа.

named_pool_shuffle

yes, no

не задано

Включает выдачу адресов из случайного диапазона (если в системе заведено несколько IP-пулов с одним именем). По умолчанию адреса выдаются последовательно из очередного пула до его исчерпания; пулы следуют в порядке их добавления.

radius_auth_tel_ext_reg

yes, on, enable

не задано

Включает распознавание запроса на регистрацию телефонного звонка по равенству Calling-Station-Id = Called-Station-Id в Access-Request.

tls_certificate_path

строка

не задано

Путь к файлу сертификата при использовании EAP-TTLS.

tls_private_key_path

строка

не задано

Путь к файлу приватного ключа при использовании EAP-TTLS.

tel_session_timeout

натуральное число

86400

Максимальная продолжительность VoIP сессии (в секундах).

disconnect_re­quest_timeout

натуральное число

5

Время ожидания ответа PoD при разрыве сессии вручную.

incoming_trunk_for­mat

любое

не задано

Формат входящего транка в виде: vendor_id:attribute_id:regexp

outgoing_trunk_for­mat

любое

не задано

Формат исходящего транка в виде: vendor_id:attribute_id:regexp

pbx_id_format

любое

не задано

Формат идентификатора звонка в виде: vendor_id:attribute_id:regexp

override_service_­type

yes, on, enable

не задано

Присвоить тип услуги “framed” независимо от типа услуги, указанного во входящем запросе.

dac_bind_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

Адрес хоста для приема запросов от RADIUS-сервера на изменение параметров соединения.

h323_currency

string

USD

Код валюты.

use_closed_ses­sions_cache

yes, on, enable

не задано

Хранить в кэше информацию о последних закрытых сессиях.

closed_ses­sions_сache_size

Натуральное число

0

Размер кэша закрытых сессий. Измеряется в количестве сессий, о которых хранится информация.

h323_re­turn_code_positive

yes, on, enable

не задано

Возвращать атрибут Cisco:h323_return_code с положительным значением.

Параметры журналирования (подробнее – в разделе Журналирование):

Параметр

Возможные значения

Значение по умолчанию

Описание

log_level

число от 0 до 3

1

Определяет уровень сообщений, которые пишутся в основной поток сообщений.

log_file_main

имя файла

стандартный поток ошибок

Файл основного потока сообщений.

log_file_debug

имя файла

стандартный поток ошибок

Файл отладочного потока сообщений.

log_file_critical

имя файла

стандартный поток ошибок

Файл критического потока сообщений.

rotate_logs

yes, on, enable

ротация отключена

Включает ротацию log-файлов.

max_logfile_size

a.Действует, если включена ротация лог-файлов.

b.Интерфейсные параметры

размер в байтах

10485760

Размер файла, при достижении которого производится ротация

syslog_name

string

Не задано

Префикс, добавляемый к записям при включенной опции записи в системный журнал (syslog)

Динамическое распределение IP-адресов#

Для реализации возможности тарификации трафика в том случае, если IP-адрес был выдан пользователю из пула или UTM5 не выдавался, введена схема динамической привязки IP-адреса к сервисной связке услуги передачи IP-трафика.

Для применения схемы к лицевому счету необходимо привязать услугу передачи IP-трафика с установленной опцией Динамическое распределение IP-адресов и услугу коммутируемого доступа/hotspot с установленной опцией Динамическое распределение IP-адресов.

При поступлении запроса Accounting-Start, атрибут User-Name (1) которого содержит логин, указанный в свойствах сервисной связки услуги коммутируемого доступа/hotspot с установленной опцией Динамическое распределение IP-адресов, а атрибут Framed-IP-Address (8) содержит ненулевой IP-адрес, ядро UTM5 передает событие, инициализирующее процедуру привязки выданного IP-адреса к лицевому счету. В событии передаются данные о лицевом счете абонента и выданном IP-адресе. Обработчик события вызывает функцию, выполняющую все необходимые проверки и, при необходимости, непосредственную динамическую привязку.

Функция динамической привязки IP-адреса выполняет следующие действия:

1.поиск сервисной связки, ссылающейся на данный лицевой счет и на услугу передачи IP-трафика с установленной опцией Динамическое распределение IP-адресов. Если сервисная связка не найдена, дальнейшие действия не производятся;

2.поиск IP-группы, в которую входит указанный IP-адрес. Если такая IP-группа найдена, она удаляется;

3.создание IP-группы, для которой в качестве IP-адреса сети устанавливается указанный IP-адрес, а в качестве маски – 255.255.255.255. Остальным параметрам IP-группы присваиваются значения по умолчанию;

4.создание IP-группы, привязанной к найденной на этапе 1сервисной связке.

При создании или удалении IP-группы выполняются следующие действия: если статус Internet для лицевого счета, которому принадлежит IP-группа, установлен в состояние Включен

Перед созданием или удалением IP-группы статус Internet устанавливается в состояние Выключен;

После создания или удаления IP-группы статус Internet устанавливается в состояние Включен.

Помимо указанных действий возможна генерация одного или нескольких событий на выключение доступа в Интернет для лицевого счета в том случае, если статус Internet – Выключен.

Во избежание ошибок в работе UTM5 категорически не рекомендуется использовать динамическую привязку IP-адреса, если IP-адреса из пула пересекаются с IP-адресами, статически привязанными к сервисным связкам услуги передачи IP-трафика.