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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »


Настройка 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.latera.ru). Данный репозиторий подключается сотрудниками компании Латера в рамках технической поддержки.

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

Установка

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

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

    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. Для применения изменений в настройках перезапустите FreeRADIUS:

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

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

Установка

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

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

    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-службы услугу доступа, выбрав в качестве оборудования созданный ранее компонент абонентской сетевой службы, и выставьте по этой подписке инвойс.

Тестирование схемы

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

 

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

Ку.

  • No labels