| |
| dpi:dpi_components:freeradius:local_auth [2025/12/17 15:46] – создано elena.krasnobryzh | dpi:dpi_components:freeradius:local_auth [2025/12/18 07:14] (текущий) – elena.krasnobryzh |
|---|
| |
| =====Конфигурация FreeRADIUS===== | =====Конфигурация FreeRADIUS===== |
| - **Отключение EAP.** В рамках нашей сборки не нужен, но может вызвать ошибки при включении юнита ''radiusd'', поэтому стоит отключить. Сначала в <code bash>/etc/raddb/sites-available/default | - **Отключение EAP.** В рамках данной сборки отключение не требуется, но EAP может вызвать ошибки при включении юнита ''radiusd'', поэтому стоит отключить. Перейти в директорию ''/etc/raddb/sites-available/default |
| /etc/raddb/sites-enabled/inner-tunnel</code> В разделах: <code bash>authorize { | /etc/raddb/sites-enabled/inner-tunnel''\\ Отключить EAP в разделах: <code bash>authorize { |
| # eap { | # eap { |
| # ok = return | # ok = return |
| post-proxy { | post-proxy { |
| # eap | # eap |
| </code>А также при необходимости удалить файлы eap из модулей:<code bash>/etc/raddb/mods-available/eap | </code>Также при необходимости удалить файлы EAP из модулей ''/etc/raddb/mods-available/eap'' и ''/etc/raddb/mods-enabled/eap''. |
| /etc/raddb/mods-enabled/eap</code> | - **Настройка клиентов/NAS.** Под клиентами имеются в виду RADIUS-клиенты, в данном случае — FastPCRF.\\ Если сервер FreeRADIUS развернут на одном узле с FastPCRF, дополнительная настройка не требуется — достаточно проверить конфигурацию по умолчанию в файле ''/etc/raddb/clients.conf''.\\ Если необходимо прописать удаленный NAS, использовать тот же файл и добавить описание клиента, например: <code bash>client fastpcrf1 { |
| - **Настройка клиентов/NAS.** Когда мы говорим о клиентах, мы имеем в виду RADIUS-клиентов. В нашем случае это FastPCRF.\\ Если сервер FreeRADIUS находится на той же машине, что и FastPCRF, ничего дополнительно настраивать не нужно, просто проверяем конфигурацию по умолчанию в файле ''/etc/raddb/clients.conf''.\\ Если необходимо прописать удаленный NAS, то используем этот же файл и добавляем <code bash>client fastpcrf1 { | ipaddr = < IP > |
| ipaddr = < IP > | secret = < SECRET > |
| secret = < SECRET > | require_message_authenticator = yes |
| require_message_authenticator = yes | }</code> |
| }</code> | - **Авторизация абонентов.** Требуется настроить шаблон Access-Accept, который будет формировать FreeRADIUS. Для этого добавить конфигурацию в файл ''/etc/raddb/users'', явно указав авторизацию всех запросов независимо от атрибутов, имени пользователя и типа авторизации. <code bash>DEFAULT Auth-Type := Accept |
| - **Авторизация абонентов.** Необходимо настроить шаблон Access-Accept, который будет выдавать наш FreeRADIUS. Для этого добавляем конфигурацию в ''/etc/raddb/users'', в которой явно указываем, что авторизуем всех в независимости от атрибутов, имени и типов авторизации. <code bash>DEFAULT Auth-Type := Accept | |
| User-name = "%{User-name}", | User-name = "%{User-name}", |
| VasExperts-L2-User = 1, | VasExperts-L2-User = 1, |
| VasExperts-DHCP-DNS = "8.8.8.8", | VasExperts-DHCP-DNS = "8.8.8.8", |
| VasExperts-DHCP-DNS = "8.8.4.4" | VasExperts-DHCP-DNS = "8.8.4.4" |
| </code> Данный шаблон подходит под все типы авторизаций (DHCP, IPoE Static L2, PPPoE). Если в Access-Request не содержит атрибута Framed-IP-Address, то FreeRADIUS отправит Access-Accept с Framed-IP-Address = 0.0.0.0. FastPCRF игнорирует атрибут с таким значением и выдача IP-адреса будет с учетом значения в атрибуте Framed-Pool. Для выдачи адреса из Framed-Pool, на сервере должен быть установлен и настроен локальный DHCP сервер. [[dpi:bras_bng:ip_pool|Подробнее]] | </code> Данный шаблон подходит для всех типов авторизации (DHCP, IPoE Static L2, PPPoE). При отсутствии атрибута Framed-IP-Address в Access-Request FreeRADIUS отправляет Access-Accept с Framed-IP-Address = 0.0.0.0. FastPCRF игнорирует атрибут с таким значением, и назначение IP-адреса выполняется на основе значения атрибута Framed-Pool. Для выдачи адресов из Framed-Pool на сервере должен быть установлен и настроен локальный DHCP-сервер. [[dpi:bras_bng:ip_pool|Подробнее]] |
| - **Настройки в FastPCRF.** Настраиваем RADIUS-сервер, если это резервный сервер — прописываем его после строчки с основным ''radius_server''. <code bash>radius_server=secret@127.0.0.1%lo:1812;acct_port=1813</code> | - **Настройки в FastPCRF.** Выполнить настройку RADIUS-сервера. В случае использования резервного сервера указать его после строки с основным ''radius_server''. <code bash>radius_server=secret@127.0.0.1%lo:1812;acct_port=1813</code> |
| - **Проверка.** В первую очередь проверяем конфигурацию FreeRADIUS, через команду ''radiusd –CX''\\ После включаем RADIUS в режиме debug: ''radiusd –X'', вся обработка сообщений будет происходить в CLI и ошибки будут подсвечены.\\ Проверяем авторизацию со стороны PCRF в ''/var/log/dpi/fastpcrf_ap2.log'' Если все работает корректно, то включаем FreeRADIUS на постоянную основу: <code bash>systemctl start radiusd | - **Проверка.** Сначала выполнить проверку конфигурации FreeRADIUS с помощью команды ''radiusd –CX''.\\ Затем запустить RADIUS в режиме отладки командой ''radiusd –X'' — вся обработка сообщений будет выводиться в CLI, а ошибки будут наглядно отображаться.\\ Авторизацию со стороны PCRF проверить в файле ''/var/log/dpi/fastpcrf_ap2.log''. При корректной работе системы запустить FreeRADIUS в штатном режиме и включить автозапуск: <code bash>systemctl start radiusd |
| systemctl enable radiusd</code> | systemctl enable radiusd</code> |
| | |
| |
| =====Варианты шаблонов Access-Accept для разных типов авторизации (L3, DHCP, PPPoE) клиентов===== | =====Варианты шаблонов Access-Accept для разных типов авторизации (L3, DHCP, PPPoE) клиентов===== |
| В данной реализации все сравнения происходят внутри файла по наличию в запросе атрибута. | В данной реализации все сравнения выполняются внутри файла на основе наличия соответствующего атрибута в запросе. |
| |
| Для L3 Static клиента: | Для L3 Static клиента: |