2. Базовые понятия и алгоритм работы модуля

2.1. SNMP и NetFlow
2.2. Режимы работы RADIUS сервера
2.3. Статус соединения
2.4. Работа с соединением
2.5. Порядок тарификации
2.6. RADIUS атрибуты

Структура взаимодействия основных частей модуля DialUp изображена на рисунке.

NAS (Network Access Server) - сервер, через который происходит выход клиента в интернет.

В роли NAS может выступать как специализированное оборудование (Cisco, Huawey), так и обычные компьютеры с модемами, либо с программой поддержки VPN.

Основное назначение NAS - осуществлять доступ пользователей к внешней сети, при этом может происходить туннелирование трафика пользователя (VPN), преобразование протокола канального уровня (PPP -> Ethernet) и другие преобразования.

NAS посылает на RADIUS-сервер два типа запросов: авторизационные (запросы с просьбой установки соединения, содержащие логин и пароль) и запросы аккаунта (уведомительные, содержат информацию о начале - Start - или окончании - Stop - соединения, а также о протекании хода соединения - Update).

Базовые сведения о протоколе RADIUS и конфигурировании атрибутов.

Протокол RADIUS основан на UDP, представляет из себя пакет определённого типа с набором атрибутов. Рассмотрим ход типового соединения по логу RADIUS запросов (radius.log):

INFO   17.01.2008 05:37:49   AUTH:
Type=AUTHENTICATION_REQUEST
Attributes:
        User-Name=1579
        NAS-Identifier=drs1.igs.ufanet.ru
        CHAP-Password=^ï.Â.ÆÉ  .î麪
«Ó^
        NAS-IP-Address=89.189.150.67
        NAS-Port=1
        Service-Type=2
        Framed-Protocol=1
        Calling-Station-Id=10.47.33.2
        NAS-Port-Type=5
        CHAP-Challenge=»^hÃãs&{{2Êi ñÓÕ½åH°vÛÝc^bô..é`¬¯¸o.+.^§


INFO   17.01.2008 05:37:49   RESPONSE:
Type=AUTHENTICATION_ACCEPT
Process time:113
Attributes:
        Service-Type=2
        Framed-Protocol=1
        Framed-IP-Address=89.189.151.3
        mpd-limit=out#1=all shape 128000 pass
        mpd-limit=in#1=all rate-limit 10000000 pass
        mpd-limit=in#1=all rate-limit 10000000 pass


INFO   17.01.2008 05:37:49   ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
        User-Name=1579
        NAS-Identifier=drs1.igs.ufanet.ru
        NAS-IP-Address=89.189.150.67
        NAS-Port=1
        Service-Type=2
        Framed-Protocol=1
        Framed-IP-Address=89.189.151.3
        Acct-Status-Type=1
        Acct-Session-Id=530269-p0001
        Acct-Authentic=1
        Acct-Link-Count=1
        Acct-Multi-Session-Id=530269-p0001
        NAS-Port-Type=5
        Calling-Station-Id=10.47.33.2

INFO   17.01.2008 05:37:49   RESPONSE:
Type=ACCOUNTING_RESPONSE
Attributes:

INFO   17.01.2008 05:47:49   ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
        User-Name=1579
        NAS-Identifier=drs1.igs.ufanet.ru
        NAS-IP-Address=89.189.150.67
        NAS-Port=1
        Service-Type=2
        Framed-Protocol=1
        Acct-Input-Octets=1250
        Framed-IP-Address=89.189.151.3
        Acct-Output-Octets=1327
        Acct-Status-Type=3
        Acct-Session-Time=600
        Acct-Input-Packets=56
        Acct-Session-Id=530269-p0001
        Acct-Authentic=1
        Acct-Link-Count=1
        Acct-Multi-Session-Id=530269-p0001
        Acct-Output-Packets=56
        Acct-Output-Gigawords=0
        Acct-Input-Gigawords=0
        NAS-Port-Type=5
        Calling-Station-Id=10.47.33.2

INFO   17.01.2008 05:47:49   RESPONSE:
Type=ACCOUNTING_RESPONSE
Attributes:
...
INFO   17.01.2008 18:22:16   ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
        User-Name=1579
        NAS-Identifier=drs1.igs.ufanet.ru
        NAS-IP-Address=89.189.150.67
        NAS-Port=1
        Service-Type=2
        Framed-Protocol=1
        Acct-Input-Octets=59455380
        Framed-IP-Address=89.189.151.194
        Acct-Output-Octets=75469553
        Acct-Status-Type=2
        Acct-Session-Time=39570
        Acct-Input-Packets=159904
        Acct-Session-Id=536566-p0001
        Acct-Authentic=1
        Acct-Link-Count=1
        Acct-Multi-Session-Id=536566-p0001
        Acct-Terminate-Cause=6
        Acct-Output-Packets=140465
        Acct-Output-Gigawords=0
        Acct-Input-Gigawords=0
        NAS-Port-Type=5
        Calling-Station-Id=10.47.33.2

INFO   17.01.2008 18:22:16   RESPONSE:
Type=ACCOUNTING_RESPONSE
Attributes:

Каждый пакет содержит информацию о NASе (NAS-Identifier и/или NAS-IP-Address), на основании которой RADIUS-сервер сопоставляет пришедший пакет NASу в модуле. При сопоставлении сначала производится поиск NASа с названием, идентичным атрибуту NAS-Identifier пакета, затем, если результат отрицательный, идёт поиск NASа c IP-адресом, равным NAS-IP-Address. Если пришедшему пакету NAS не сопоставлен в radius.log, выводится ошибка NAS not found for Packet!!!.

Обмен сообщениями с каждым NASом шифруется определённым кодовым словом - секретом. Секрет должен совпадать для NASа в биллинге и для конфигурации самого NASа. При несовпадении секретов проверка пароля будет все время выдавать неверный результат, т.к. секрет используется при шифровании пароля.

Идентификатором соединения в пределах NASа для RADIUS-сервера выступает атрибут NAS-Port. Обратите внимание, что он идентичен для всех пакетов в пределах сессии. NAS должен контролировать, чтобы в один момент времени одинаковый NAS-Port не проставлялся в RADIUS пакетах, относящихся к разным сессиям.

Далее рассмотрим попакетно обмен данными между NASом и RADIUS-сервером по ходу соединения.

1. AUTHENTICATION_REQUEST

Запрос авторизации отправляется NASом RADIUS-серверу и содержит помимо идентификационной информации соединения, указанной выше, информацию о логине и пароле пользователя. Логин передаётся в открытом виде, пароль шифруется. Поддерживаются протоколы шифрования PAP, CHAP, MS-CHAP v.2 с генерацией 128 битных MPPE ключей. Протокол авторизации определяется RADIUS-сервером автоматически на основании набора атрибутов.

Протокол PAP является самым ненадёжным, пароль шифруется обратимым способом с помощью секрета. RADIUS-сервер дешифрует его и сравнивает с паролем, указанным для логина в базе данных. Данный режим авторизации можно использовать для проверки секретов. При некорректном секрете пароль в PAP режиме не расшифровывается и отображается в radius.log и в мониторе ошибок не в том виде, в котором был введён пользователем.

Протоколы CHAP, MS-CHAP v.2 поддерживают необратимое шифрование, когда RADIUS-сервер сравнивает не открытый пароль, а результаты криптопреобразований открытого пароля, выполненного им самим и NASом.

MPPE ключи, передаваемые в AUTHENTICATION_ACCEPT пакете в режиме MS-CHAP v.2 авторизации, могут использоваться NASом для шифрования VPN-туннеля пользователя.

Порядок обработки авторизационного пакета следующий: запрос -> скрипт предобработки -> антиспам (блокировка) -> биллинг (проверка наличия логина/пароля, баланса и т.д.) -> штатный Reject-To-Accept -> обработка события "RADIUS-аутентификация" -> антиспам (сбор статистики) -> ответ.

2. AUTHENTICATION_REJECT

Отказ в авторизации, данный пакет не содержит атрибутов. Детальную причину отказа в авторизации пользователя можно посмотреть в Мониторе модуля в режиме ошибок.

3. AUTHENTICATION_ACCEPT

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

4. ACCOUNTING_REQUEST

Запросы аккаунтинга могут быть трёх типов: Start, Stop, Update. Различаются они атрибутом Acct-Status-Type, который равен 1, 2 или 3 соответственно. Данный тип запросов передаёт на RADIUS-сервер информацию о ходе соединения (соединение началось, завершилось или текущее состояние соединения).

5. ACCOUNTING_RESPONSE

Ответ RADIUS сервера о том, что он получил запрос аккаунтинга. Ответ не содержит никаких атрибутов. Исключение составляет ответ MPD серверу, который может содержать атрибут, информирующий NAS о необходимости разрыва соединения.