Page tree
Skip to end of metadata
Go to start of metadata


Настройка RADIUS–сервера

Схема взаимодействия

Зелёным цветом на данной диаграмме обозначена передача на обработку запроса, а синим — ответа на запрос. Во время отсутствия связи между агентом HARD и ядром АСР «Гидра», обработка запросов выполняется в автономном режиме на основании данных, содержащихся в кэше MongoDB.

Предварительные требования

  1. На сервере должен быть установлен интерпретатор perl версии 5.10 и старше.

    Внимание!

    Убедитесь, что интерпретатор perl, имеющийся в системе, скомпилирован с поддержкой многопоточности:

    user@server:~$ perl -V | grep USE_ITHREADS
    USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
    

    В противном случае при большой интенсивности запросов возникнут проблемы с производительностью RADIUS–сервера.

  2. На сервере должен быть подключён репозиторий компании Латера (deb.hydra-billing.com). Данный репозиторий подключается сотрудниками компании Латера в рамках технической поддержки.

Установка и настройка сервера FreeRADIUS

Установка

Общее руководство по установке сервера FreeRADIUS доступно в виде отдельной статьи «Установка и настройка сервера FreeRADIUS». В случае установки FreeRADIUS на новый сервер достаточно выполнить следующее:

  1. Обновить список пакетов, убедившись в отсутствии ошибок соединения с репозиторием компании Латера (deb.hydra-billing.com):

    user@server:~$ sudo aptitude update
  2. Установить сервер FreeRADIUS из пакета freeradius и утилиты для работы с ним из пакета freeradius-utils:

    user@server:~$ sudo aptitude install freeradius freeradius-utils

Настройка

Для настройки сервера FreeRADIUS, установленного из репозитория компании Латера достаточно указать параметры подключения к агенту HARD и код сетевой RADIUS–службы в Гидре.

  1. Откройте в текстовом редакторе файл /etc/freeradius/hard.pm:

    user@server:~$ sudo nano /etc/freeradius/hard.pm
  2. В районе строки №45 файла проверьте и, при необходимости, скорректируйте параметры подключения к агенту HARD:

    Файл /etc/freeradius/hard.pm
    my @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, предварительно включив их в конфигурации агента.

  3. Ниже, в районе строки №52 того же файла проверьте код сетевой RADIUS–службы в Гидре, которая будет соответствовать данному RADIUS–серверу:

    Файл /etc/freeradius/hard.pm
    # Код сетевой службы RADIUS в АСР
    use constant HYDRA_AAA_SERV     => "RADIUS-VPN";
    

    Если служба RADIUS-VPN ещё не используется в Гидре, можно оставить её. В противном случае, замените код по умолчанию RADIUS-VPN на, например, RADIUS-MPD.

  4. Сохраните файл и закройте текстовый редактор.
  5. В файл /etc/freeradius/clients.conf добавьте IP–адреса всех серверов MPD, которые будут взаимодействовать с данным RADIUS–сервером. Примеры приведены в самом файле, в простейшем случае запись выглядит так:

    Файл /etc/freeradius/clients.conf
    client mpd-test {
            ipaddr      = <MPD_IP-address>
            secret      = <RADIUS_Secret>
    }
    
    • <MPD_IP-address> — IP–адрес сервера MPD,
    • <RADIUS_Secret> — кодовое слово, используемое в протоколе RADIUS для аутентификации всех сообщений, принимаемых и отправляемых RADIUS–сервером.

    Для удобства тестирования в файле по умолчанию присутствует запись с локальным IP–адресом 127.0.0.1 и кодовым словом testing123 — проверьте её наличие.

  6. Для применения изменений в настройках перезапустите FreeRADIUS:

    user@server:~$ sudo /etc/init.d/freeradius restart

Установка и настройка агента HARD

Установка

Общее руководство по установке агента HARD доступно в виде отдельной статьи «Установка агента HARD». В случае установки агента на новый сервер достаточно выполнить следующее:

  1. Обновить список пакетов, убедившись в отсутствии ошибок соединения с репозиторием компании Латера (deb.hydra-billing.com):

    user@server:~$ sudo aptitude update
  2. Установить агент HARD из пакета hard:

    user@server:~$ sudo aptitude install hard=<hard_version>

    <hard_version> — версия агента HARD, совместимая с установленной у вас версией ядра Гидры. Актуальную информацию о совместимости версий вы можете получить, обратившись в техническую поддержку компании Латера.

Настройка

Общие принципы настройки агента HARD описаны в разделе «Настройка агента HARD». Для настройки взаимодействия с MPD необходимо выполнить следующие действия:

  1. Отредактируйте файл конфигурации /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.
  2. Отредактируйте файл конфигурации /etc/hydra/hard/plugins/base.yml, приведя его содержимое в соответствие с примером. Если директории plugins в /etc/hydra/hard не существует, создайте её.

    Файл /etc/hydra/hard/plugins/base.yml
    plugins:
      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.

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

    user@server:~$ sudo /etc/init.d/hard restart

Настройка АСР «Гидра»

Описание схемы учёта

Для определения наборов RADIUS–атрибутов и их значений, а также указания используемых при авторизации услуг доступа используется RADIUS–служба. А для задания параметров аутентификации, учёта сеансов работы абонента путём хранения CDR–записей, настройки параметров обработки CDR–записей, тарификации потоковых услуг передачи данных на основании поступающей через RADIUS–Accounting информации используется абонентская сетевая служба.

Компоненты абонентской сетевой службы выступают в роли абонентского оборудования, на котором оказываются услуги. А подписка абонента на эту службу через абонентское оборудование используется для хранения данных аутентификации абонента: логина и пароля. Связь между RADIUS–службой и абонентской службой настраивается для каждого из MPD–серверов, обслуживающих абонентов, с указанием его IP–адреса.

Создание и настройка RADIUS–службы

  1. В приложении «Офис оператора связи» откройте реестр сетевых служб (меню «Справочники», пункт «Сетевые службы») и в поле «Тип» укажите «RADIUS-сервер»:
  2. В результатах поиска будут представлены все существующие на данный момент RADIUS–службы. Если среди них есть служба с кодом «RADIUS-VPN», и она не используется для взаимодействия с другим вашим оборудованием, используйте для дальнейших настроек её. Если же служба с кодом «RADIUS-VPN» уже используется, создайте новую службу, нажав в реестре сетевых служб на кнопку «Добавить» и указав в качестве типа службы «RADIUS-сервер», а в качестве кода, например, «RADIUS-MPD ».

    Код используемой RADIUS–службы должен совпадать с кодом, указанным ранее в файле /etc/freeradius/hard.pm

  3. На форме редактирования выбранной RADIUS–службы, в разделе «Access Reply» задайте пары RADIUS–атрибутов и их значений, которые будут отправлены в RADIUS–пакете Access–Accept при успешной авторизации. Рекомендуемый набор атрибутов и значений представлен в виде таблицы ниже. При необходимости вы можете изменить предложенные в таблице значения атрибутов, или добавить дополнительные атрибуты, которые должны быть переданы в случае успешной авторизации.

    АтрибутОператорЗначениеОписание
    1Framed-IP-Address:=$TERM_IP_ADDRIP–адрес, который будет назначен абоненту.
    Подстановка $TERM_IP_ADDR возвращает IP–адрес, привязанный к абонентскому оборудованию в Гидре.
    2Session-Timeout:=86400Максимальная продолжительность сессии абонента, указываемая в секундах.
    3Acct-Interim-Interval:=1200Интервал отправки пакетов Interim–Update, указываемый в секундах.
    4mpd-limit:=out#1=all shape $SPEED_LIMIT["GOOD":"40213701","UNIT":"UNIT_BitSec"] pass

    Ограничение скорости входящего трафика для абонента.

    Подстановка $SPEED_LIMIT возвращает ограничение скорости, указанное в приказе по ценам для услуги с заданным идентификатором:

    • 40213701 — стандартный идентификатор для услуги «Интернет-трафик вх.»
    • UNIT_BitSec — код единицы измерения «бит/с» из базового справочника «Единицы измерения скорости передачи данных»
    5mpd-limit+=in#1=all shape $SPEED_LIMIT["GOOD":"40213501","UNIT":"UNIT_BitSec"] pass

    Ограничение скорости исходящего трафика для абонента.

    Подстановка $SPEED_LIMIT возвращает ограничение скорости, указанное в приказе по ценам для услуги с заданным идентификатором:

    • 40213501 — стандартный идентификатор для услуги «Интернет-трафик исх.»
    • UNIT_BitSec — код единицы измерения «бит/с» из базового справочника «Единицы измерения скорости передачи данных»
  4. Для проверки пароля и ограничения количества одновременных сессий необходимо в разделе «Access Request» добавить следующие атрибуты:

    АтрибутОператорЗначениеОписание
    1Cleartext-Password:=$USER_PASSWORDПодстановка $USER_PASSWORD возвращает пароль из подписки аутентифицируемого абонента на абонентскую сетевую службу
    2Simultaneous-Use:=1Максимально допустимое количество одновременных сессий одного абонента.
  5. В разделе «Привязанные услуги» необходимо добавить услуги доступа, состояние которых определяет возможность использования абонентом данной службы. Обычно используется одна услуга доступа «Доступ в Интернет». Если же услуг доступа несколько, для успешной авторизации достаточно включённости хотя бы одной из них.
  6. Проверьте правильность введённых данных и сохраните службу. Пример заполненной формы редактирования сетевой службы «RADIUS-VPN»:

Создание и настройка абонентской сетевой службы

  1. В приложении «Офис оператора связи» откройте реестр сетевых служб (меню «Справочники», пункт «Сетевые службы») и в поле «Тип» укажите «Системные службы»:
  2. В результатах поиска будут представлены все существующие на данный момент сетевые службы. Если среди них есть служба с кодом «VPN» и типом «VPN-концентратор», и она не используется для взаимодействия с другим вашим оборудованием, используйте для дальнейших настроек её. Если же служба с кодом «VPN» и типом «VPN-концентратор» уже используется, создайте новую службу, выполнив следующее:

    1. Перейдите в раздел Справочники → Номенклатура → Сетевые службы → Системные службы и создайте новую номенклатурную позицию, аналогичную уже существующей «VPN-концентратор». Особое внимание стоит обратить на флаг «Может быть объектом» — он должен быть установлен для того, чтобы в дальнейшем можно было на основе этой позиции создать сетевую службу. Пример новой номенклатурной позиции для абонентской сетевой службы:
    2. Перейдите в раздел Справочники → Сетевые службы и создайте новую сетевую службу, указав в поле «Тип» созданную на предыдущем шаге номенклатурную позицию.
  3. На форме редактирования абонентской сетевой службы (стандартной «VPN» или же созданной вами на этапе №2) укажите следующие параметры аутентификации:
    • «Вид аутентификации» — «Требовать логин и пароль»,
    • «Минимальное значение стойкости пароля» — на ваше усмотрение: будет учитываться при подписке абонента на службу,
    • «Источник логина по умолчанию» — на ваше усмотрение: если в подписке абонента на службу логин не указан, в качестве него будет использоваться либо код владельца оборудования (т.е. абонента), либо код самого оборудования (компонента данной службы),
    • «Чувствительность логина к регистру» — если данный флаг установлен, проверка логина при авторизации выполняется с учётом регистра.
  4. В разделе «Адреса» добавьте IP–адреса всех серверов MPD, обслуживающих абонентов.
  5. В разделе «Настройка управления службой» для каждого из IP–адресов серверов MPD добавьте строку, заполнив в ней следующие поля:

    Менеджер/Служба
    Тип
    Интерфейс
    Код RADIUS–службы, настроенной на предыдущем этапеRADIUS secretIP–адрес MPD–сервера, ранее добавленный в раздел «Адреса»
  6. В разделе «Дополнительные параметры» укажите значения следующих параметров:

    ПараметрТипРекомендуемое значениеОписание
    Создавать задание по тарификации внешней статистики по услугамФлагУстановлен

    При сохранении службы в активном состоянии будет создано задание «Получение текущей статистики коллектора данных Код_сетевой_службы».

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

    Таймаут принудительного закрытия CDR (в часах)Число0.5
    (1.5–2.5 интервала аккаунтинга)
    При сохранении службы в активном состоянии будет создано задание «Принудительное закрытие старых CDR Код_сетевой_службы».
    Задание переводит в состояние «Завершена принудительно» все CDR, по которым за указанное времея не пришло Interim–Update или Stop–пакета. В дальнейшем, если пакет по сессии придёт, принудительно закрытая CDR может быть восстановлена.
    Таймаут удаления старых CDR (в днях)Число365

    При сохранении службы в активном состоянии будет создано задание «Удаление старых CDR Код_сетевой_службы».

    Задание удаляет из базы данных завершённые CDR, с момента последней операции над которыми прошло больше указанного количества дней. Данная операция необходима для предотвращения разрастания БД.

  7. Проверьте правильность введённых данных и сохраните службу. Пример заполненной формы редактирования сетевой службы «VPN»:

  8. Откройте вкладку «Список заданий» и разблокируйте нажатием на кнопки–замки все задания, созданные при сохранении службы:
    • Получение текущей статистики коллектора данных,
    • Принудительное закрытие старых CDR,
    • Удаление старых CDR.
  9. Убедитесь, что все задания работают:

Создание абонентского оборудования и подписки на службу

В качестве абонентского оборудования будут использоваться компоненты настроенное на предыдущем этапе абонентской сетевой службы.

  1. На форме редактирования абонента, в разделе «Оборудование» нажмите кнопку «Добавить оборудование» — откроется форма «Оборудование абонента: создание».
  2. Выберите режим «Добавление компонента».
  3. В поле «Сетевая служба» укажите абонентскую сетевую службу, настроенную ранее: стандартную «VPN», или созданную вами.
  4. Убедитесь, что в поле «Тип компонента» указана спецификация «Порт».
  5. Если необходимо, укажите код и наименование создаваемого компонента в соответствующих полях формы. Код должен быть уникален в разрезе службы. Если оставить эти поля пустыми, значения будут сгенерированы автоматически согласно настройкам системы.
  6. В поле «» выберите «IP-адрес».
  7. Укажите IP–адрес и подсеть в одноимённых полях формы. Если поле «IP-адрес» оставить пустым, адрес будет выбран автоматически из указанной подсети.
  8. Проверьте правильность введённых данных и нажмите кнопку «Добавить». Пример заполненной формы добавления компонента сетевой службы «VPN»:
  9. После добавления компонента, он должен появится в разделе «Оборудование» формы редактирования абонента:
  10. Перейдите на вкладку «Службы» и в разделе «Подписка на службы» нажмите кнопку «Добавить» и заполните следующие поля:

    Наименование поляЗначение
    СлужбаАбонентская сетевая служба: стандартная VPN, или созданная вами.
    ОборудованиеКомпонент абонентской сетевой службы, созданный на предыдущем шаге.
    ЛогинЛогин абонента. Логин должен быть уникален в разрезе сетевой службы.
    Если оставить поле пустым, в качестве логина будет использоваться, в зависимости от параметров аутентификации, код абонента или код компонента, указанного в поле «Оборудование».
    ПарольПароль абонента.
  11. Проверьте введённые данные и нажмите кнопку «Сохранить». Пример вкладки «Службы» с оформленной подпиской:
  12. Оформите подписку абонента на пакет услуг, содержащий указанную в настройках RADIUS-службы услугу доступа, выбрав в качестве оборудования созданный ранее компонент абонентской сетевой службы, и выставьте по этой подписке инвойс. Проверьте на вкладке услуги формы редактирования абонента, что услуга доступа включена:

Тестирование RADIUS–взаимодействия без использования MPD

Тестирование авторизации с помощью radtest

Утилита radtest позволяет выполнить попытку авторизации с переданными ей логином и паролем на указанном RADIUS–сервере, отображая при этом как атрибуты запроса, так и атрибуты ответа.

Параметры вызова

Вызов radtest
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 

Пример успешной авторизации

Вызов radtest
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"
Лог агента HARD: /var/log/hydra/hard/hard.log
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Request path: /base/mpd
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Requests in pool: 2
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - {"req_type":"authorize","RAD_REQUEST":{"User-Name":"Suvorov-AV","User-Password":"q123","NAS-Port":"12345","NAS-IP-Address":"127.0.0.1","Message-Authenticator":"0xa6a9eb96b43c4fa9e4492b2026e1c35b"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{"Auth-Type":"Perl"}}
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Filter OracleConnection/main:
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Filter MongoConnection/main:
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - ============ Starting authorize request ============
31.12.2013 14:14:34.768 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - netservs: try to get data from cache, search conditions: {'aaa_serv_code': 'RADIUS-VPN', 'address': '127.0.0.1'}
31.12.2013 14:14:34.769 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - netservs: search in cache get time 0 ms
31.12.2013 14:14:34.769 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - netservs: cache hit, entry id: 52c29204fc021d7c73d5f273
31.12.2013 14:14:34.781 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - netservs: get data from db
31.12.2013 14:14:34.781 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - netservs: total search time: 12 ms
31.12.2013 14:14:34.782 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - user equip: try to get data from cache, search conditions: {'auth_type': 'login', 'netserv_id': 40223001, 'login': 'Suvorov-AV', 'aaa_serv_id': 40223501}
31.12.2013 14:14:34.783 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - user equip: search in cache get time 0 ms
31.12.2013 14:14:34.783 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - user equip: cache hit, entry id: 52c29204fc021d7c73d5f274
31.12.2013 14:14:34.799 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - user equip: get data from db
31.12.2013 14:14:34.799 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - user equip: total search time: 17 ms
31.12.2013 14:14:34.799 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Parsed check attrs: {'Cleartext-Password': '$USER_PASSWORD', u'Simultaneous-Use': u'1'}
31.12.2013 14:14:34.799 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Substituted check attrs: {'Cleartext-Password': 'q123', u'Simultaneous-Use': u'1'}
31.12.2013 14:14:34.800 DEBUG    SP11080 ww8Sdwdd-1388484874.77 - Request processing finished. Time elapsed: 32ms
31.12.2013 14:14:34.800 INFO     ReqType: authorize
OccurDate: 2013-12-31 14:14:34.800630
Request: User-Name="Suvorov-AV",NAS-IP-Address="127.0.0.1"
Result: 2
Reply: 
DataStorage: db


31.12.2013 14:14:34.814 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Request path: /base/mpd
31.12.2013 14:14:34.814 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Requests in pool: 1
31.12.2013 14:14:34.814 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - {"req_type":"authenticate","RAD_REQUEST":{"User-Name":"Suvorov-AV","User-Password":"q123","NAS-IP-Address":"127.0.0.1","NAS-Port":"12345","Message-Authenticator":"0xa6a9eb96b43c4fa9e4492b2026e1c35b"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{"Cleartext-Password":"q123","Hydra-Equip-Cache-ID":"52c29204fc021d7c73d5f274","Auth-Type":"Perl","Hydra-Netserv-Cache-ID":"52c29204fc021d7c73d5f273"}}
31.12.2013 14:14:34.814 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Filter OracleConnection/	main:
31.12.2013 14:14:34.814 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Filter MongoConnection/main:
31.12.2013 14:14:34.815 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - ============ Starting authenticate request ============
31.12.2013 14:14:34.815 INFO     SP11080 6V7ZGgZi-1388484874.81 - Making speed modification by 1 coefficient
31.12.2013 14:14:34.815 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - SPEED_LIMIT["GOOD":"40213501","UNIT":"UNIT_BitSec"]: 16384000 -> 16384000
31.12.2013 14:14:34.815 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - SPEED_LIMIT["GOOD":"40213701","UNIT":"UNIT_BitSec"]: 16384000 -> 16384000
31.12.2013 14:14:34.816 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Reply attributes: {u'Acct-Interim-Interval': u'1200', u'mpd-limit': [u'out#1=all rate-limit 16384000', u'in#1=all rate-limit 16384000'], u'Framed-IP-Address': u'10.11.12.13', u'Session-Timeout': u'86400'}
31.12.2013 14:14:34.816 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Request processing finished. Time elapsed: 2ms
31.12.2013 14:14:34.816 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Filter MongoConnection/main:
31.12.2013 14:14:34.816 DEBUG    SP11080 6V7ZGgZi-1388484874.81 - Filter OracleConnection/main:

Пример неудачной авторизации

Вызов radtest
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
Лог агента HARD: /var/log/hydra/hard/hard.log
31.12.2013 14:24:01.874 DEBUG    SP11080 EkCTugZE-1388485441.87 - Request path: /base/mpd
31.12.2013 14:24:01.875 DEBUG    SP11080 EkCTugZE-1388485441.87 - Requests in pool: 2
31.12.2013 14:24:01.875 DEBUG    SP11080 EkCTugZE-1388485441.87 - {"req_type":"authorize","RAD_REQUEST":{"User-Name":"Suvorov-AVV","User-Password":"q123","NAS-Port":"12345","NAS-IP-Address":"127.0.0.1","Message-Authenticator":"0x2c1733770ecc67bd2969f30e470a2463"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{"Auth-Type":"Perl"}}
31.12.2013 14:24:01.875 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter OracleConnection/main:
31.12.2013 14:24:01.876 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter MongoConnection/main:
31.12.2013 14:24:01.876 DEBUG    SP11080 EkCTugZE-1388485441.87 - ============ Starting authorize request ============
31.12.2013 14:24:01.877 DEBUG    SP11080 EkCTugZE-1388485441.87 - netservs: try to get data from cache, search conditions: {'aaa_serv_code': 'RADIUS-VPN', 'address': '127.0.0.1'}
31.12.2013 14:24:01.877 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter MongoConnection/main:
31.12.2013 14:24:01.877 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter OracleConnection/main:
31.12.2013 14:24:01.877 DEBUG    SP11080 EkCTugZE-1388485441.87 - netservs: search in cache get time 0 ms
31.12.2013 14:24:01.878 DEBUG    SP11080 EkCTugZE-1388485441.87 - netservs: cache hit, entry id: 52c29204fc021d7c73d5f273
31.12.2013 14:24:01.878 DEBUG    SP11080 EkCTugZE-1388485441.87 - netservs: get actual cache, expire: 2013-12-31 14:25:27.921000
31.12.2013 14:24:01.878 DEBUG    SP11080 EkCTugZE-1388485441.87 - user equip: try to get data from cache, search conditions: {'auth_type': 'login', 'netserv_id': 40223001, 'login': 'Suvorov-AVV', 'aaa_serv_id': 40223501}
31.12.2013 14:24:01.878 DEBUG    SP11080 EkCTugZE-1388485441.87 - user equip: search in cache get time 0 ms
31.12.2013 14:24:01.880 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter MongoConnection/main:
31.12.2013 14:24:01.880 DEBUG    SP11080 EkCTugZE-1388485441.87 - Filter OracleConnection/main:
31.12.2013 14:24:01.880 INFO     SP11080 EkCTugZE-1388485441.87 - Filter RejectOnError/main:
31.12.2013 14:24:01.880 DEBUG    SP11080 EkCTugZE-1388485441.87 - Request processing finished. Time elapsed: 6ms
31.12.2013 14:24:01.881 INFO     ReqType: authorize
OccurDate: 2013-12-31 14:24:01.881015
Request: User-Name="Suvorov-AVV",NAS-IP-Address="127.0.0.1"
Result: 0
Reply: 
Reason: AuthError (Suvorov-AVV: User not found)


31.12.2013 14:24:01.909 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Request path: /base/mpd
31.12.2013 14:24:01.909 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Requests in pool: 1
31.12.2013 14:24:01.909 DEBUG    SP11082 DrOWYCHl-1388485441.91 - {"req_type":"post_auth","RAD_REQUEST":{"User-Name":"Suvorov-AVV","User-Password":"q123","NAS-IP-Address":"127.0.0.1","NAS-Port":"12345","Message-Authenticator":"0x2c1733770ecc67bd2969f30e470a2463"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{"Auth-Type":"Reject","Post-Auth-Type":"REJECT"}}
31.12.2013 14:24:01.909 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Filter OracleConnection/main:
31.12.2013 14:24:01.909 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Filter MongoConnection/main:
31.12.2013 14:24:01.910 DEBUG    SP11082 DrOWYCHl-1388485441.91 - ============ Starting post_auth request ============
31.12.2013 14:24:01.910 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Request processing finished. Time elapsed: 1ms
31.12.2013 14:24:01.910 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Filter MongoConnection/main:
31.12.2013 14:24:01.910 DEBUG    SP11082 DrOWYCHl-1388485441.91 - Filter OracleConnection/main:

Тестирование аккаунтинга с помощью radclient

Утилита radclient, по сравнению с radtest, предоставляет возможность отправки произвольного RADIUS–запроса и получения на него ответа. Формат вызова утилиты для отправки пакета аккаунтинга следующий:

Вызов radtest
user@server:~$ sudo radclient -x -f <packets_file> <RADIUS-Server_IP> acct '<RADIUS_Secret>'

Инициализация сессии пакетом Start

  1. Создайте файл start_packet.rad с информацией о пакете:

    Файл start_packet.rad
    NAS-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–время).
      Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
  2. Отправьте подготовленный пакет с помощью radclient:

    Отправка пакета Start
    user@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
  3. Обработка запроса агентом HARD:

    Лог агента HARD: /var/log/hydra/hard/hard.log
    31.12.2013 17:19:03.431 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Request path: /base/mpd
    31.12.2013 17:19:03.431 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Requests in pool: 1
    31.12.2013 17:19:03.431 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - {"req_type":"accounting","RAD_REQUEST":{"NAS-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","NAS-IP-Address":"127.0.0.1","mpd-bundle":"V-987","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","NAS-Identifier":
    "vpn25","Event-Timestamp":"Dec 31 2013 17:18:46 MSK","Acct-Multi-Session-Id":"8412300-V-987","Framed-IP-Address":"10.11.12.13","mpd-link":"Q-890","NAS-Port":"890"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{}
    }
    31.12.2013 17:19:03.432 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Filter OracleConnection/main:
    DB connection acquired
    31.12.2013 17:19:03.432 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Filter MongoConnection/main:
    Mongo connection acquired
    31.12.2013 17:19:03.432 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - netservs: try to get data from cache, search conditions: {'aaa_serv_code': 'RADIUS-VPN', 'address': '127.0.0.1'}
    31.12.2013 17:19:03.433 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - netservs: search in cache get time 0 ms
    31.12.2013 17:19:03.433 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - netservs: cache hit, entry id: 52c29204fc021d7c73d5f273
    31.12.2013 17:19:03.445 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - netservs: get data from db
    31.12.2013 17:19:03.445 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - netservs: total search time: 12 ms
    31.12.2013 17:19:03.445 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - user equip: try to get data from cache, search conditions: {'auth_type': 'login', 'netserv_id': 40223001, 'login': 'Suvorov-AV', 'aaa_serv_id': 40223501}
    31.12.2013 17:19:03.446 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - user equip: search in cache get time 0 ms
    31.12.2013 17:19:03.446 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - user equip: cache hit, entry id: 52c29204fc021d7c73d5f274
    31.12.2013 17:19:03.446 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - user equip: get expired cache, expire: 2013-12-31 14:27:38.645000
    31.12.2013 17:19:03.446 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Create accounting cache (_id = 52c2c447fc021d2c47b6118c) for Start packet
    31.12.2013 17:19:03.447 DEBUG    Result status: 200, body: {"result": 2}
    31.12.2013 17:19:03.447 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Request processing finished. Time elapsed: 15ms
    31.12.2013 17:19:03.447 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Filter MongoConnection/main:
    Mongo connection released
    31.12.2013 17:19:03.447 DEBUG    SP11080 Wzmlo3Z9-1388495943.43 - Filter OracleConnection/main:
    DB connection released
    31.12.2013 17:19:03.447 INFO     ReqType: accounting
    OccurDate: 2013-12-31 17:19:03.447465
    Request: User-Name="Suvorov-AV",Acct-Session-Id="1234567-Q-890",NAS-IP-Address="127.0.0.1"
    Result: 2
  4. Информация о начатой сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента:

 

Обновление данных о сессии пакетом Interim–Update

  1. Создайте файл update_packet.rad с информацией о пакете:

    Файл update_packet.rad
    NAS-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–время).
      Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
  2. Отправьте подготовленный пакет с помощью radclient:

    Отправка пакета Interim–Update
    user@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
    
  3. Обработка запроса агентом HARD:

    Лог агента HARD: /var/log/hydra/hard/hard.log
    31.12.2013 17:59:02.184 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Request path: /base/mpd
    31.12.2013 17:59:02.184 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Requests in pool: 1
    31.12.2013 17:59:02.184 DEBUG    SP11084 AdQtPyW1-1388498342.18 - {"req_type":"accounting","RAD_REQUEST":{"NAS-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.example.com","Acct-Session-Time":"2400","Tunnel-Medium-Type":"IPv4","User-Name":"Suvorov-AV","NAS-Identifier":"vpn25.example.com","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"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{}}
    31.12.2013 17:59:02.185 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Filter OracleConnection/main:
    31.12.2013 17:59:02.185 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Filter OracleConnection/main:
    31.12.2013 17:59:02.185 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Filter MongoConnection/main:
    31.12.2013 17:59:02.186 DEBUG    SP11084 AdQtPyW1-1388498342.18 - netservs: try to get data from cache, search conditions: {'aaa_serv_code': 'RADIUS-VPN', 'address': '127.0.0.1'}
    31.12.2013 17:59:02.186 DEBUG    SP11084 AdQtPyW1-1388498342.18 - netservs: search in cache get time 0 ms
    31.12.2013 17:59:02.187 DEBUG    SP11084 AdQtPyW1-1388498342.18 - netservs: cache hit, entry id: 52c29204fc021d7c73d5f273
    31.12.2013 17:59:02.199 DEBUG    SP11084 AdQtPyW1-1388498342.18 - netservs: get data from db
    31.12.2013 17:59:02.199 DEBUG    SP11084 AdQtPyW1-1388498342.18 - netservs: total search time: 13 ms
    31.12.2013 17:59:02.199 DEBUG    SP11084 AdQtPyW1-1388498342.18 - user equip: try to get data from cache, search conditions: {'auth_type': 'login', 'netserv_id': 40223001, 'login': 'xanin', 'aaa_serv_id': 40223501}
    31.12.2013 17:59:02.199 DEBUG    SP11084 AdQtPyW1-1388498342.18 - user equip: search in cache get time 0 ms
    31.12.2013 17:59:02.199 DEBUG    SP11084 AdQtPyW1-1388498342.18 - user equip: cache hit, entry id: 52adf00afc021d77a2b7adca
    31.12.2013 17:59:02.200 DEBUG    SP11084 AdQtPyW1-1388498342.18 - user equip: get expired cache, expire: 2013-12-31 12:21:05.704000
    31.12.2013 17:59:02.200 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Create accounting cache (_id = 52c2cda6fc021d2c4db6173f) for Interim-Update packet
    31.12.2013 17:59:02.200 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Request processing finished. Time elapsed: 16ms
    31.12.2013 17:59:02.201 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Filter MongoConnection/main:
    Mongo connection released
    31.12.2013 17:59:02.201 DEBUG    SP11084 AdQtPyW1-1388498342.18 - Filter OracleConnection/main:
    DB connection released
    31.12.2013 17:59:02.201 INFO     ReqType: accounting
    OccurDate: 2013-12-31 17:59:02.201278
    Request: User-Name="Suvorov-AV",Acct-Session-Id="1234567-Q-890",NAS-IP-Address="127.0.0.1"
    Result: 2
  4. Информация о обновлённой сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента:

 

Завершение сессии пакетом Stop

  1. Создайте файл stop_packet.rad с информацией о пакете:

    Файл stop_packet.rad
    NAS-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–время).
      Если указанное вами время будет сильно отличаться от системного времени при обработке пакета, процесс обработки будет прерван.
  2. Отправьте подготовленный пакет с помощью radclient:

    Отправка пакета Stop
    user@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
  3. Обработка запроса агентом HARD:

    Лог агента HARD: /var/log/hydra/hard/hard.log
    31.12.2013 18:35:57.213 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Request path: /base/main3
    31.12.2013 18:35:57.214 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Requests in pool: 1
    31.12.2013 18:35:57.214 DEBUG    SP11081 7x7x7ed1-1388500557.21 - {"req_type":"accounting","RAD_REQUEST":{"NAS-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":"User-Request","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":"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"},"aaa_serv_code":"RADIUS-VPN","RAD_CHECK":{}}
    31.12.2013 18:35:57.214 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Filter OracleConnection/main:
    DB connection acquired
    31.12.2013 18:35:57.214 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Filter MongoConnection/main:
    Mongo connection acquired
    31.12.2013 18:35:57.215 DEBUG    SP11081 7x7x7ed1-1388500557.21 - netservs: try to get data from cache, search conditions: {'aaa_serv_code': 'RADIUS-VPN', 'address': '127.0.0.1'}
    31.12.2013 18:35:57.215 DEBUG    SP11081 7x7x7ed1-1388500557.21 - netservs: search in cache get time 0 ms
    31.12.2013 18:35:57.215 DEBUG    SP11081 7x7x7ed1-1388500557.21 - netservs: cache hit, entry id: 52c29204fc021d7c73d5f273
    31.12.2013 18:35:57.223 DEBUG    SP11081 7x7x7ed1-1388500557.21 - netservs: get data from db
    31.12.2013 18:35:57.223 DEBUG    SP11081 7x7x7ed1-1388500557.21 - netservs: total search time: 8 ms
    31.12.2013 18:35:57.224 DEBUG    SP11081 7x7x7ed1-1388500557.21 - user equip: try to get data from cache, search conditions: {'auth_type': 'login', 'netserv_id': 40223001, 'login': 'Suvorov-AV', 'aaa_serv_id': 40223501}
    31.12.2013 18:35:57.224 DEBUG    SP11081 7x7x7ed1-1388500557.21 - user equip: search in cache get time 0 ms
    31.12.2013 18:35:57.224 DEBUG    SP11081 7x7x7ed1-1388500557.21 - user equip: cache hit, entry id: 52c29204fc021d7c73d5f274
    31.12.2013 18:35:57.224 DEBUG    SP11081 7x7x7ed1-1388500557.21 - user equip: get expired cache, expire: 2013-12-31 14:27:38.645000
    31.12.2013 18:35:57.224 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Create accounting cache (_id = 52c2d64dfc021d3070b61a3a) for Stop packet
    31.12.2013 18:35:57.225 DEBUG    Result status: 200, body: {"result": 2}
    31.12.2013 18:35:57.225 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Request processing finished. Time elapsed: 11ms
    31.12.2013 18:35:57.225 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Filter MongoConnection/main:
    Mongo connection released
    31.12.2013 18:35:57.225 DEBUG    SP11081 7x7x7ed1-1388500557.21 - Filter OracleConnection/main:
    DB connection released
    31.12.2013 18:35:57.225 INFO     ReqType: accounting
    OccurDate: 2013-12-31 18:35:57.225666
    Request: User-Name="Suvorov-AV",Acct-Session-Id="1234567-Q-890",NAS-IP-Address="127.0.0.1"
    Result: 2
  4. Информация о сессии в приложении «Офис оператора связи» на вкладке «PPP–сессии» формы редактирования абонента:

 

 

  • No labels