Настройка RADIUS–сервера
Схема взаимодействия

Зелёным цветом на данной диаграмме обозначена передача на обработку запроса, а синим — ответа на запрос. Во время отсутствия связи между агентом HARD и ядром АСР «Гидра», обработка запросов выполняется в автономном режиме на основании данных, содержащихся в кэше MongoDB.
Предварительные требования
На сервере должен быть установлен интерпретатор perl версии 5.10 и старше.
Внимание!
Убедитесь, что интерпретатор perl, имеющийся в системе, скомпилирован с поддержкой многопоточности:
user@server:~$ perl -V | grep USE_ITHREADS USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
В противном случае при большой интенсивности запросов возникнут проблемы с производительностью RADIUS–сервера.
- На сервере должен быть подключён репозиторий компании Латера (
deb.hydra-billing.com
). Данный репозиторий подключается сотрудниками компании Латера в рамках технической поддержки.
Установка и настройка сервера FreeRADIUS
Установка
Общее руководство по установке сервера FreeRADIUS доступно в виде отдельной статьи «Установка и настройка сервера FreeRADIUS». В случае установки FreeRADIUS на новый сервер достаточно выполнить следующее:
Обновить список пакетов, убедившись в отсутствии ошибок соединения с репозиторием компании Латера (
deb.hydra-billing.com
):user@server:~$ sudo aptitude update
Установить сервер FreeRADIUS из пакета
freeradius
и утилиты для работы с ним из пакетаfreeradius-utils
:user@server:~$ sudo aptitude install freeradius freeradius-utils
Настройка
Для настройки сервера FreeRADIUS, установленного из репозитория компании Латера достаточно указать параметры подключения к агенту HARD и код сетевой RADIUS–службы в Гидре.
Откройте в текстовом редакторе файл
/etc/freeradius/hard.pm
:user@server:~$ sudo nano /etc/freeradius/hard.pm
В районе строки №45 файла проверьте и, при необходимости, скорректируйте параметры подключения к агенту HARD:
Файл /etc/freeradius/hard.pmmy @HARD_API_URLS = ( # Пул API URL для запросов "http://localhost:11080/base/mpd", ); use constant HARD_AUTH_USER => "hydra"; # Логин use constant HARD_AUTH_PASSWORD => "q123"; # Пароль
Рекомендуем изменить пароль по умолчанию
q123
на более сложный. Логин и пул API URL для запросов и можно оставить стандартные. При большом количестве обслуживаемых абонентов в этот пул можно добавить дополнительные экземпляры агента HARD, предварительно включив их в конфигурации агента.Ниже, в районе строки №52 того же файла проверьте код сетевой RADIUS–службы в Гидре, которая будет соответствовать данному RADIUS–серверу:
Файл /etc/freeradius/hard.pm# Код сетевой службы RADIUS в АСР use constant HYDRA_AAA_SERV => "RADIUS-VPN";
Если служба RADIUS-VPN ещё не используется в Гидре, можно оставить её. В противном случае, замените код по умолчанию RADIUS-VPN на, например, RADIUS-MPD.
- Сохраните файл и закройте текстовый редактор.
В файл
/etc/freeradius/clients.conf
добавьте IP–адреса всех серверов MPD, которые будут взаимодействовать с данным RADIUS–сервером. Примеры приведены в самом файле, в простейшем случае запись выглядит так:Файл /etc/freeradius/clients.confclient mpd-test { ipaddr = <MPD_IP-address> secret = <RADIUS_Secret> }
<MPD_IP-address>
— IP–адрес сервера MPD,<RADIUS_Secret>
— кодовое слово, используемое в протоколе RADIUS для аутентификации всех сообщений, принимаемых и отправляемых RADIUS–сервером.
Для удобства тестирования в файле по умолчанию присутствует запись с локальным IP–адресом 127.0.0.1 и кодовым словом testing123 — проверьте её наличие.
Для применения изменений в настройках перезапустите FreeRADIUS:
user@server:~$ sudo /etc/init.d/freeradius restart
Установка и настройка агента HARD
Установка
Общее руководство по установке агента HARD доступно в виде отдельной статьи «Установка агента HARD». В случае установки агента на новый сервер достаточно выполнить следующее:
Обновить список пакетов, убедившись в отсутствии ошибок соединения с репозиторием компании Латера (
deb.hydra-billing.com
):user@server:~$ sudo aptitude update
Установить агент HARD из пакета
hard
:user@server:~$ sudo aptitude install hard=<hard_version>
<hard_version>
— версия агента HARD, совместимая с установленной у вас версией ядра Гидры. Актуальную информацию о совместимости версий вы можете получить, обратившись в техническую поддержку компании Латера.
Настройка
Общие принципы настройки агента HARD описаны в разделе «Настройка агента HARD». Для настройки взаимодействия с MPD необходимо выполнить следующие действия:
Отредактируйте файл конфигурации
/etc/hydra/hard/default.yml
, приведя его содержимое в соответствие с примером.Файл /etc/hydra/hard/default.yml# Список активных плагинов enabled_plugins: [base/mpd] log: common: # Уровень лог-сообщений level: <hard_log_level> connection_pools: # Настройки подключения к Oracle database: main: # Название name: <db_name> # Пароль пользователя password: <AIS_RADIUS_password> filters: agent.basic_auth: main: login: <hard_login> password: <hard_password>
Замените использованные в примере подстановки желаемыми значениями:
<hard_log_level>
— уровень логирования агента HARD: для тестирования рекомендуем использоватьdebug
, а для промышленной эксплуатации —info
.<db_name>
— наименование базы данных ядра Гидры, с которой будет работать агент. Наименование базы данных в приложении «Офис оператора связи» указано рядом с именем текущего пользователя:<AIS_RADIUS_password>
— пароль пользователя AIS_RADIUS базы данных<db_name>
.<hard_login>
— логин для авторизации модуляhard.pm
сервера FreeRADIUS, ранее указанный в файле/etc/freeradius/hard.pm
, в параметреHARD_AUTH_USER
.<hard_password>
— пароль для авторизации модуляhard.pm
сервера FreeRADIUS, ранее указанный в файле/etc/freeradius/hard.pm
, в параметреHARD_AUTH_PASSWORD
.
Отредактируйте файл конфигурации
/etc/hydra/hard/plugins/base.yml
, приведя его содержимое в соответствие с примером. Если директорииplugins
в/etc/hydra/hard
не существует, создайте её.Файл /etc/hydra/hard/plugins/base.ymlplugins: base: mpd: # Параметры авторизации auth: # Схема авторизации method: login user: # Атрибут, содержащий данные авторизации name: User-Name # Параметры сохранения CDR cdr: # Атрибут, сохраняемый в комментарий CDR comment_attr: Tunnel-Client-Endpoint # Атрибут, сохраняемый в качестве адреса абонента в CDR user_station_address_attr: Framed-IP-Address
Согласно настройкам, приведённым в данном примере, подбор абонента будет выполняться по логину, содержащемуся в атрибуте User-Name. При желании, можно изменить наименования атрибутов, значения которых будут записываться в поля «Комментарий» и «Адрес инициатора» CDR. Можно вовсе отключить заполнение этих полей, убрав из конфигурации строки 11–16.
Для применения изменений в настройках перезапустите агент HARD:
user@server:~$ sudo /etc/init.d/hard restart
Настройка АСР «Гидра»
Описание схемы учёта
Для определения наборов RADIUS–атрибутов и их значений, а также указания используемых при авторизации услуг доступа используется RADIUS–служба. А для задания параметров аутентификации, учёта сеансов работы абонента путём хранения CDR–записей, настройки параметров обработки CDR–записей, тарификации потоковых услуг передачи данных на основании поступающей через RADIUS–Accounting информации используется абонентская сетевая служба.
Компоненты абонентской сетевой службы выступают в роли абонентского оборудования, на котором оказываются услуги. А подписка абонента на эту службу через абонентское оборудование используется для хранения данных аутентификации абонента: логина и пароля. Связь между RADIUS–службой и абонентской службой настраивается для каждого из MPD–серверов, обслуживающих абонентов, с указанием его IP–адреса.
Создание и настройка RADIUS–службы
- В приложении «Офис оператора связи» откройте реестр сетевых служб (меню «Справочники», пункт «Сетевые службы») и в поле «Тип» укажите «RADIUS-сервер»:
В результатах поиска будут представлены все существующие на данный момент RADIUS–службы. Если среди них есть служба с кодом «RADIUS-VPN», и она не используется для взаимодействия с другим вашим оборудованием, используйте для дальнейших настроек её. Если же служба с кодом «RADIUS-VPN» уже используется, создайте новую службу, нажав в реестре сетевых служб на кнопку «Добавить» и указав в качестве типа службы «RADIUS-сервер», а в качестве кода, например, «RADIUS-MPD ».
Код используемой RADIUS–службы должен совпадать с кодом, указанным ранее в файле
/etc/freeradius/hard.pm
На форме редактирования выбранной RADIUS–службы, в разделе «Access Reply» задайте пары RADIUS–атрибутов и их значений, которые будут отправлены в RADIUS–пакете Access–Accept при успешной авторизации. Рекомендуемый набор атрибутов и значений представлен в виде таблицы ниже. При необходимости вы можете изменить предложенные в таблице значения атрибутов, или добавить дополнительные атрибуты, которые должны быть переданы в случае успешной авторизации.
№ Атрибут Оператор Значение Описание 1 Framed-IP-Address := $TERM_IP_ADDR IP–адрес, который будет назначен абоненту.
Подстановка$TERM_IP_ADDR
возвращает IP–адрес, привязанный к абонентскому оборудованию в Гидре.2 Session-Timeout := 86400 Максимальная продолжительность сессии абонента, указываемая в секундах. 3 Acct-Interim-Interval := 1200 Интервал отправки пакетов Interim–Update, указываемый в секундах. 4 mpd-limit := out#1=all shape $SPEED_LIMIT["GOOD":"40213701","UNIT":"UNIT_BitSec"] pass Ограничение скорости входящего трафика для абонента.
Подстановка
$SPEED_LIMIT
возвращает ограничение скорости, указанное в приказе по ценам для услуги с заданным идентификатором:- 40213701 — стандартный идентификатор для услуги «Интернет-трафик вх.»
- UNIT_BitSec — код единицы измерения «бит/с» из базового справочника «Единицы измерения скорости передачи данных»
5 mpd-limit += in#1=all shape $SPEED_LIMIT["GOOD":"40213501","UNIT":"UNIT_BitSec"] pass Ограничение скорости исходящего трафика для абонента.
Подстановка
$SPEED_LIMIT
возвращает ограничение скорости, указанное в приказе по ценам для услуги с заданным идентификатором:- 40213501 — стандартный идентификатор для услуги «Интернет-трафик исх.»
- UNIT_BitSec — код единицы измерения «бит/с» из базового справочника «Единицы измерения скорости передачи данных»
Для проверки пароля и ограничения количества одновременных сессий необходимо в разделе «Access Request» добавить следующие атрибуты:
№ Атрибут Оператор Значение Описание 1 Cleartext-Password := $USER_PASSWORD Подстановка $USER_PASSWORD
возвращает пароль из подписки аутентифицируемого абонента на абонентскую сетевую службу2 Simultaneous-Use := 1 Максимально допустимое количество одновременных сессий одного абонента. - В разделе «Привязанные услуги» необходимо добавить услуги доступа, состояние которых определяет возможность использования абонентом данной службы. Обычно используется одна услуга доступа «Доступ в Интернет». Если же услуг доступа несколько, для успешной авторизации достаточно включённости хотя бы одной из них.
- Проверьте правильность введённых данных и сохраните службу. Пример заполненной формы редактирования сетевой службы «RADIUS-VPN»:
Создание и настройка абонентской сетевой службы
- В приложении «Офис оператора связи» откройте реестр сетевых служб (меню «Справочники», пункт «Сетевые службы») и в поле «Тип» укажите «Системные службы»:
В результатах поиска будут представлены все существующие на данный момент сетевые службы. Если среди них есть служба с кодом «VPN» и типом «VPN-концентратор», и она не используется для взаимодействия с другим вашим оборудованием, используйте для дальнейших настроек её. Если же служба с кодом «VPN» и типом «VPN-концентратор» уже используется, создайте новую службу, выполнив следующее:
- Перейдите в раздел Справочники → Номенклатура → Сетевые службы → Системные службы и создайте новую номенклатурную позицию, аналогичную уже существующей «VPN-концентратор». Особое внимание стоит обратить на флаг «Может быть объектом» — он должен быть установлен для того, чтобы в дальнейшем можно было на основе этой позиции создать сетевую службу. Пример новой номенклатурной позиции для абонентской сетевой службы:
- Перейдите в раздел Справочники → Сетевые службы и создайте новую сетевую службу, указав в поле «Тип» созданную на предыдущем шаге номенклатурную позицию.
- Перейдите в раздел Справочники → Номенклатура → Сетевые службы → Системные службы и создайте новую номенклатурную позицию, аналогичную уже существующей «VPN-концентратор». Особое внимание стоит обратить на флаг «Может быть объектом» — он должен быть установлен для того, чтобы в дальнейшем можно было на основе этой позиции создать сетевую службу. Пример новой номенклатурной позиции для абонентской сетевой службы:
- На форме редактирования абонентской сетевой службы (стандартной «VPN» или же созданной вами на этапе №2) укажите следующие параметры аутентификации:
- «Вид аутентификации» — «Требовать логин и пароль»,
- «Минимальное значение стойкости пароля» — на ваше усмотрение: будет учитываться при подписке абонента на службу,
- «Источник логина по умолчанию» — на ваше усмотрение: если в подписке абонента на службу логин не указан, в качестве него будет использоваться либо код владельца оборудования (т.е. абонента), либо код самого оборудования (компонента данной службы),
- «Чувствительность логина к регистру» — если данный флаг установлен, проверка логина при авторизации выполняется с учётом регистра.
- В разделе «Адреса» добавьте IP–адреса всех серверов MPD, обслуживающих абонентов.
В разделе «Настройка управления службой» для каждого из IP–адресов серверов MPD добавьте строку, заполнив в ней следующие поля:
Менеджер/СлужбаТипИнтерфейс Код RADIUS–службы, настроенной на предыдущем этапе RADIUS secret IP–адрес MPD–сервера, ранее добавленный в раздел «Адреса» В разделе «Дополнительные параметры» укажите значения следующих параметров:
Параметр Тип Рекомендуемое значение Описание Создавать задание по тарификации внешней статистики по услугам Флаг Установлен При сохранении службы в активном состоянии будет создано задание «Получение текущей статистики коллектора данных Код_сетевой_службы».
Данное задание будет тарифицировать потоковые услуги передачи данных на основании информации, полученной в пакетах аккаунтинга.
Таймаут принудительного закрытия CDR (в часах) Число 0.5
(1.5–2.5 интервала аккаунтинга)При сохранении службы в активном состоянии будет создано задание «Принудительное закрытие старых CDR Код_сетевой_службы».
Задание переводит в состояние «Завершена принудительно» все CDR, по которым за указанное времея не пришло Interim–Update или Stop–пакета. В дальнейшем, если пакет по сессии придёт, принудительно закрытая CDR может быть восстановлена.Таймаут удаления старых CDR (в днях) Число 365 При сохранении службы в активном состоянии будет создано задание «Удаление старых CDR Код_сетевой_службы».
Задание удаляет из базы данных завершённые CDR, с момента последней операции над которыми прошло больше указанного количества дней. Данная операция необходима для предотвращения разрастания БД.
Проверьте правильность введённых данных и сохраните службу. Пример заполненной формы редактирования сетевой службы «VPN»:
- Откройте вкладку «Список заданий» и разблокируйте нажатием на кнопки–замки все задания, созданные при сохранении службы:
- Получение текущей статистики коллектора данных,
- Принудительное закрытие старых CDR,
- Удаление старых CDR.
- Убедитесь, что все задания работают:
Создание абонентского оборудования и подписки на службу
В качестве абонентского оборудования будут использоваться компоненты настроенное на предыдущем этапе абонентской сетевой службы.
- На форме редактирования абонента, в разделе «Оборудование» нажмите кнопку «Добавить оборудование» — откроется форма «Оборудование абонента: создание».
- Выберите режим «Добавление компонента».
- В поле «Сетевая служба» укажите абонентскую сетевую службу, настроенную ранее: стандартную «VPN», или созданную вами.
- Убедитесь, что в поле «Тип компонента» указана спецификация «Порт».
- Если необходимо, укажите код и наименование создаваемого компонента в соответствующих полях формы. Код должен быть уникален в разрезе службы. Если оставить эти поля пустыми, значения будут сгенерированы автоматически согласно настройкам системы.
- В поле «» выберите «IP-адрес».
- Укажите IP–адрес и подсеть в одноимённых полях формы. Если поле «IP-адрес» оставить пустым, адрес будет выбран автоматически из указанной подсети.
- Проверьте правильность введённых данных и нажмите кнопку «Добавить». Пример заполненной формы добавления компонента сетевой службы «VPN»:
- После добавления компонента, он должен появится в разделе «Оборудование» формы редактирования абонента:
Перейдите на вкладку «Службы» и в разделе «Подписка на службы» нажмите кнопку «Добавить» и заполните следующие поля:
Наименование поля Значение Служба Абонентская сетевая служба: стандартная VPN, или созданная вами. Оборудование Компонент абонентской сетевой службы, созданный на предыдущем шаге. Логин Логин абонента. Логин должен быть уникален в разрезе сетевой службы.
Если оставить поле пустым, в качестве логина будет использоваться, в зависимости от параметров аутентификации, код абонента или код компонента, указанного в поле «Оборудование».Пароль Пароль абонента. - Проверьте введённые данные и нажмите кнопку «Сохранить». Пример вкладки «Службы» с оформленной подпиской:
- Оформите подписку абонента на пакет услуг, содержащий указанную в настройках RADIUS-службы услугу доступа, выбрав в качестве оборудования созданный ранее компонент абонентской сетевой службы, и выставьте по этой подписке инвойс. Проверьте на вкладке услуги формы редактирования абонента, что услуга доступа включена:
Тестирование RADIUS–взаимодействия без использования MPD
Тестирование авторизации с помощью radtest
Утилита radtest позволяет выполнить попытку авторизации с переданными ей логином и паролем на указанном RADIUS–сервере, отображая при этом как атрибуты запроса, так и атрибуты ответа.
Параметры вызова
user@server:~$ sudo radtest '<user-name>' '<user-password>' <RADIUS-Server_IP> <NAS-Port-Number> '<RADIUS_Secret>'
<user-name>
— логин абонента, указанный ранее в параметрах подписки на службу<user-password>
— пароль абонента, указанный ранее в параметрах подписки на службу<RADIUS-Server_IP>
— IP–адрес сервера FreeRADIUS<NAS-Port-Number>
— число от 0 до 231, которое будет передано в атрибутеNAS-Port
<RADIUS_Secret>
— кодовое слово, указанное для данного клиента ранее в файле/etc/freeradius/clients.conf
Пример успешной авторизации
user@server:~$ sudo radtest 'Suvorov-AV' 'q123' 127.0.0.1 12345 'testing123' Sending Access-Request of id 0 to 127.0.0.1 port 1812 User-Name = "Suvorov-AV" User-Password = "q123" NAS-IP-Address = 91.204.136.114 NAS-Port = 12345 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=0, length=111 Acct-Interim-Interval = 1200 Session-Timeout = 86400 Framed-IP-Address = 10.11.12.13 mpd-limit = "out#1=all rate-limit 16384000" mpd-limit = "in#1=all rate-limit 16384000"
Пример неудачной авторизации
user@server:~$ sudo radtest 'Suvorov-AVV' 'q123' 127.0.0.1 12345 'testing123' Sending Access-Request of id 90 to 127.0.0.1 port 1812 User-Name = "Suvorov-AVV" User-Password = "q123" NAS-IP-Address = 91.204.136.114 NAS-Port = 12345 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=90, length=20
Тестирование аккаунтинга с помощью radclient
Утилита radclient, по сравнению с radtest, предоставляет возможность отправки произвольного RADIUS–запроса и получения на него ответа. Формат вызова утилиты для отправки пакета аккаунтинга следующий:
user@server:~$ sudo radclient -x -f <packets_file> <RADIUS-Server_IP> acct '<RADIUS_Secret>'
<packets_file>
— файл с информацией о пакетах, которые должны быть отправлены<RADIUS-Server_IP>
— IP–адрес сервера FreeRADIUS<RADIUS_Secret>
— кодовое слово, указанное для данного клиента ранее в файле/etc/freeradius/clients.conf
Инициализация сессии пакетом Start
Создайте файл
start_packet.rad
с информацией о пакете:Файл start_packet.radNAS-Port-Type=Virtual, Acct-Session-Id=1234567-Q-890, Service-Type=Framed-User, Tunnel-Type=PPTP, Acct-Link-Count=1, mpd-iface=ng123, Tunnel-Client-Endpoint=10.11.12.13, Acct-Authentic=RADIUS, Acct-Status-Type=Start, mpd-bundle=V-987, NAS-IP-Address=127.0.0.1, Tunnel-Server-Endpoint=10.0.0.1, mpd-iface-index=123, Tunnel-Server-Auth-Id=vpn25, Tunnel-Medium-Type=IPv4, Calling-Station-Id=10.11.12.13, Framed-Protocol=PPP, User-Name=Suvorov-AV, Event-Timestamp=<Current-Unix-Timestamp>, NAS-Identifier=vpn25, Acct-Multi-Session-Id=8412300-V-987, Framed-IP-Address=10.11.12.13, NAS-Port=890, mpd-link=Q-890
<Current-Unix-Timestamp>
— количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (Unix–время).
Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
Отправьте подготовленный пакет с помощью radclient:
Отправка пакета Startuser@server:~$ sudo radclient -x -f start_packet.rad 127.0.0.1 acct 'testing123' Sending Accounting-Request of id 201 to 127.0.0.1 port 1813 NAS-Port-Type = Virtual Acct-Session-Id = "1234567-Q-890" Service-Type = Framed-User Tunnel-Type:0 = PPTP Acct-Link-Count = 1 mpd-iface = "ng123" Tunnel-Client-Endpoint:0 = "10.11.12.13" Acct-Authentic = RADIUS Acct-Status-Type = Start mpd-bundle = "V-987" NAS-IP-Address = 127.0.0.1 Tunnel-Server-Endpoint:0 = "10.0.0.1" mpd-iface-index = 123 Tunnel-Server-Auth-Id:0 = "vpn25" Tunnel-Medium-Type:0 = IPv4 Calling-Station-Id = "10.11.12.13" Framed-Protocol = PPP User-Name = "Suvorov-AV" Event-Timestamp = "Dec 31 2013 17:18:46 MSK" NAS-Identifier = "vpn25" Acct-Multi-Session-Id = "8412300-V-987" Framed-IP-Address = 10.11.12.13 NAS-Port = 890 mpd-link = "Q-890" rad_recv: Accounting-Response packet from host 127.0.0.1 port 1813, id=201, length=20
Обработка запроса агентом HARD:
- Информация о начатой сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента:
Обновление данных о сессии пакетом Interim–Update
Создайте файл
update_packet.rad
с информацией о пакете:Файл update_packet.radNAS-Port-Type=Virtual, Tunnel-Type=PPTP, Tunnel-Client-Endpoint=10.11.12.13, Tunnel-Client-Auth-Id=local, Acct-Status-Type=Interim-Update, Acct-Output-Packets=2527, NAS-IP-Address=127.0.0.1, Acct-Output-Octets=66332, Tunnel-Server-Endpoint=10.0.0.1, Tunnel-Server-Auth-Id=vpn25, Acct-Session-Time=18003, Tunnel-Medium-Type=IPv4, User-Name=xanin, NAS-Identifier=vpn25, Acct-Input-Packets=1744, Framed-IP-Address=10.11.12.13, Acct-Input-Octets=17764, Acct-Session-Id=1234567-Q-890, Acct-Output-Gigawords=0, Service-Type=Framed-User, mpd-iface=ng123, Acct-Link-Count=1, Acct-Authentic=RADIUS, mpd-bundle=V-987, mpd-iface-index=123, Calling-Station-Id=10.11.12.13, Framed-Protocol=PPP, Event-Timestamp=<Current-Unix-Timestamp>, Acct-Input-Gigawords=0, Acct-Multi-Session-Id=8412300-V-987, mpd-link=Q-890, NAS-Port=890
<Current-Unix-Timestamp>
— количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (Unix–время).
Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
Отправьте подготовленный пакет с помощью radclient:
Отправка пакета Interim–Updateuser@server:~$ sudo radclient -x -f update_packet.rad 127.0.0.1 acct 'testing123' Sending Accounting-Request of id 63 to 127.0.0.1 port 1813 NAS-Port-Type = Virtual Tunnel-Type:0 = PPTP Tunnel-Client-Endpoint:0 = "10.11.12.13" Tunnel-Client-Auth-Id:0 = "local" Acct-Status-Type = Interim-Update Acct-Output-Packets = 2527 NAS-IP-Address = 127.0.0.1 Acct-Output-Octets = 66332 Tunnel-Server-Endpoint:0 = "10.0.0.1" Tunnel-Server-Auth-Id:0 = "vpn25" Acct-Session-Time = 2400 Tunnel-Medium-Type:0 = IPv4 User-Name = "Suvorov-AV" NAS-Identifier = "vpn25" Acct-Input-Packets = 1744 Framed-IP-Address = 10.11.12.13 Acct-Input-Octets = 17764 Acct-Session-Id = "1234567-Q-890" Acct-Output-Gigawords = 0 Service-Type = Framed-User mpd-iface = "ng123" Acct-Link-Count = 1 Acct-Authentic = RADIUS mpd-bundle = "V-987" mpd-iface-index = 123 Calling-Station-Id = "10.11.12.13" Framed-Protocol = PPP Event-Timestamp = "Dec 31 2013 17:58:46 MSK" Acct-Input-Gigawords = 0 Acct-Multi-Session-Id = "8412300-V-987" mpd-link = "Q-890" NAS-Port = 890 rad_recv: Accounting-Response packet from host 127.0.0.1 port 1813, id=63, length=20
Обработка запроса агентом HARD:
- Информация о обновлённой сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента:
Завершение сессии пакетом Stop
Создайте файл
stop_packet.rad
с информацией о пакете:Файл stop_packet.radNAS-Port-Type=Virtual, Tunnel-Type=PPTP, Tunnel-Client-Endpoint=10.11.12.13, Tunnel-Client-Auth-Id=local, Acct-Status-Type=Stop, Acct-Output-Packets=2998, NAS-IP-Address=127.0.0.1, Acct-Output-Octets=89587, Tunnel-Server-Endpoint=10.0.0.1, Acct-Terminate-Cause=1, Tunnel-Server-Auth-Id=vpn25, Acct-Session-Time=4574, Tunnel-Medium-Type=IPv4, User-Name=Suvorov-AV, NAS-Identifier=vpn25, Acct-Input-Packets=2325, Framed-IP-Address=10.11.12.13, Acct-Input-Octets=20897, Acct-Session-Id=1234567-Q-890, Acct-Output-Gigawords=0, Service-Type=Framed-User, mpd-iface=ng123, Acct-Link-Count=1, Acct-Authentic=RADIUS, mpd-bundle=V-987, mpd-iface-index=123, Calling-Station-Id=10.11.12.13, Framed-Protocol=PPP, Event-Timestamp=<Current-Unix-Timestamp>, Acct-Input-Gigawords=0, Acct-Multi-Session-Id=8412300-V-987, mpd-link=V-987, NAS-Port=890
<Current-Unix-Timestamp>
— количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (Unix–время).
Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
Отправьте подготовленный пакет с помощью radclient:
Отправка пакета Stopuser@server:~$ sudo radclient -x -f stop_packet.rad 127.0.0.1 acct 'testing123' Sending Accounting-Request of id 39 to 127.0.0.1 port 1813 NAS-Port-Type = Virtual Tunnel-Type:0 = PPTP Tunnel-Client-Endpoint:0 = "10.11.12.13" Tunnel-Client-Auth-Id:0 = "local" Acct-Status-Type = Stop Acct-Output-Packets = 2998 NAS-IP-Address = 127.0.0.1 Acct-Output-Octets = 89587 Tunnel-Server-Endpoint:0 = "10.0.0.1" Acct-Terminate-Cause = User-Request Tunnel-Server-Auth-Id:0 = "vpn25" Acct-Session-Time = 4574 Tunnel-Medium-Type:0 = IPv4 User-Name = "Suvorov-AV" NAS-Identifier = "vpn25" Acct-Input-Packets = 2325 Framed-IP-Address = 10.11.12.13 Acct-Input-Octets = 20897 Acct-Session-Id = "1234567-Q-890" Acct-Output-Gigawords = 0 Service-Type = Framed-User mpd-iface = "ng123" Acct-Link-Count = 1 Acct-Authentic = RADIUS mpd-bundle = "V-987" mpd-iface-index = 123 Calling-Station-Id = "10.11.12.13" Framed-Protocol = PPP Event-Timestamp = "Dec 31 2013 18:35:00 MSK" Acct-Input-Gigawords = 0 Acct-Multi-Session-Id = "8412300-V-987" mpd-link = "V-987" NAS-Port = 890 rad_recv: Accounting-Response packet from host 127.0.0.1 port 1813, id=39, length=20
Обработка запроса агентом HARD:
- Информация о сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента: