Данное руководство предназначено для настройки FreeRADIUS, установленного не из репозитория компании Латера.
В данном руководстве предполагается, что агент HARD установлен в директорию /opt/hydra/hard, а конфигурационные файлы FreeRADIUS находятся в каталоге /etc/freeradius. В зависимости от способа установки FreeRADIUS, его конфигурационные файлы могут находиться в других каталогах: в директории /etc/raddb или в /usr/local/etc/raddb.
Включение логирования
Необходимо отредактировать секцию log конфигурационного файла /etc/freeradius/radiusd.conf, установив следующие параметры:
log { ... auth = yes ... auth_badpass = yes ... auth_goodpass = yes ... }
Для корректной работы FreeRADIUS-сервера с АСР необходимо подключить дополнительный словарь. Подключение нового словаря осуществляется путем редактирования файла /etc/freeradius/dictionary. Сами словари, как правило, находятся в папке /usr/share/freeradius. Поместите файл словаря dictionary.hydra в эту папку и добавьте в файл /etc/freeradius/dictionary строку:
$INCLUDE /usr/share/freeradius/dictionary.hydra
Также необходимо дополнить инициализационный скрипт FreeRADIUS — /etc/init.d/freeradius.
export LC_ALL=en_US.UTF-8
Данный код необходимо дописать в районе 42 строки, перед вызовом start-stop-daemon.
Настройка модуля perl
Необходимо скопировать файл модуля hard.pm в директорию с конфигурацией FreeRADIUS:
user@server:~$ sudo cp /opt/hydra/hard/opt/freeradius/hard.pm /etc/freeradius/hard.pm
В файле /etc/freeradius/modules/perl следует изменить значение параметра module, указав в нём путь к файлу модуля:
perl { ... module = ${confdir}/hard.pm ... }
В файл /etc/freeradius/sites-available/default нужно внести следующие изменения:
В секции authorize после вызова модуля files добавить вызов модуля perl:
authorize { ... # Read the 'users' file files # HARD perl ... }
В секции authenticate добавить вызов модуля perl перед стандартными модулями следующим образом:
authenticate { ... Auth-Type PAP { # HARD perl pap } ... Auth-Type CHAP { # HARD perl chap } ... Auth-Type MS-CHAP { # HARD perl mschap } ... Auth-Type Perl { # HARD perl pap } ... }
В секции preacct отключить использование модуля rlm_acct_unique, если необходимо разрывать абонентские сессии по команде из биллинга, а используемые модели BRAS делают это только по ID сессии (Ericsson SmartEdge, Juniper E-series, Cisco 73xx):
preacct { ... # HARD # acct_unique ... }
В секции accounting отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:
accounting { ... # HARD # radutmp ... # HARD perl }
В секции session отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:
session { # HARD # radutmp ... # HARD perl }
В секции post-auth -> Post-Auth-Type REJECT добавить модуль perl для логгирования попыток неправильного ввода пароля:
post-auth { Post-Auth-Type REJECT { ... # HARD perl ... } }
В файл /etc/freeradius/sites-available/inner-tunnel, в секцию authenticate нужно добавить вызов модуля perl:
authenticate { ... Auth-Type Perl { # HARD perl } ... }
В начало файла /etc/freeradius/users нужно добавить следующее:
# HARD DEFAULT Auth-Type = Perl Fall-Through = 1
В конец файла /etc/freeradius/clients.conf необходимо добавить IP-адреса и RADIUS-secret серверов доступа, которые будут клиентами данного RADIUS-сервера:
client 10.10.10.1 { secret = secretkey_here }
Настройка параметров подключения к агенту HARD
Параметры подключения к агенту HARD необходимо указать в файле /etc/freeradius/hard.pm следующим образом:
... # Параметры для связи с HARD use constant HARD_API_URL => "http://<hard_ip_addr>:<hard_port>/<plugin_name>/<plugin_object>"; use constant HARD_AUTH_USER => "<hard_login>"; use constant HARD_AUTH_PASSWORD => "<hard_password>"; ...
<hard_ip_addr>
— IP-адрес, на котором агент HARD принимает запросы;<hard_port>
— номер порта, на котором агент HARD принимает запросы;<plugin_name>
— название используемого плагина агента HARD;<plugin_object>
— название объекта указанного плагина, которому будут передаваться запросы;<hard_login>
— логин для подключения к агенту HARD;<hard_pasword>
— пароль для подключения к агенту HARD.
Пример:
... # Параметры для связи с HARD use constant HARD_API_URL => "http://127.0.0.1:11080/base/main"; # API URL use constant HARD_AUTH_USER => "hydra"; # Логин use constant HARD_AUTH_PASSWORD => "q123"; # Пароль ...
Настройка RADIUS-службы
В файле /etc/freeradius/hard.pm также необходимо указать сетевую RADIUS-службу, которая будет использоваться с данным сервером:
# Код сетевой службы RADIUS в АСР use constant HYDRA_AAA_SERV => "RADIUS-VPN";
Тестирование
Проверьте корректность настройки FreeRADIUS путём его запуска в отладочном режиме:
user@server:~$ sudo freeradius -X
Можно приступать к тестированию RADIUS-взаимодействия. Это можно делать двумя способами: либо с помощью утилит radclient
и radtest
, входящих в поставку FreeRADIUS, либо с использованием настоящего оборудования.