Note |
---|
Данное руководство предназначено для настройки FreeRADIUS, установленного не из репозитория компании Латера. |
Info |
---|
В данном руководстве предполагается, что агент HARD установлен в директорию /opt/hydra/hard, а конфигурационные файлы FreeRADIUS находятся в каталоге /etc/freeradius. В зависимости от способа установки FreeRADIUS, его конфигурационные файлы могут находиться в других каталогах: в директории /etc/raddb или в /usr/local/etc/raddb. |
Включение логирования
Необходимо отредактировать секцию log конфигурационного файла /etc/freeradius/radiusd.conf, установив следующие параметры:
Code Block |
---|
log { ... auth = yes ... auth_badpass = yes ... auth_goodpass = yes ... } |
Для корректной работы FreeRADIUS-сервера с АСР необходимо подключить дополнительный словарь. Подключение нового словаря осуществляется путем редактирования файла /etc/freeradius/dictionary. Сами словари, как правило, находятся в папке /usr/share/freeradius. Поместите файл словаря dictionary.hydra в эту папку и добавьте в файл /etc/freeradius/dictionary строку:
Code Block |
---|
$INCLUDE /usr/share/freeradius/dictionary.hydra |
Также необходимо дополнить инициализационный скрипт FreeRADIUS — /etc/init.d/freeradius.
Code Block |
---|
export LC_ALL=en_US.UTF-8 |
Данный код необходимо дописать в районе 42 строки, перед вызовом start-stop-daemon.
Настройка модуля perl
Необходимо скопировать файл модуля hard.pm в директорию с конфигурацией FreeRADIUS:
Code Block | ||
---|---|---|
| ||
user@server:~$ sudo cp /opt/hydra/hard/opt/freeradius/hard.pm /etc/freeradius/hard.pm |
В файле /etc/freeradius/modules/perl следует изменить значение параметра module, указав в нём путь к файлу модуля:
Code Block |
---|
perl { ... module = ${confdir}/hard.pm ... } |
В файл /etc/freeradius/sites-available/default нужно внести следующие изменения:
В секции authorize после вызова модуля files добавить вызов модуля perl:
Code Block authorize { ... # Read the 'users' file files # HARD perl ... }
В секции authenticate добавить вызов модуля perl перед стандартными модулями следующим образом:
Code Block 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):
Code Block preacct { ... # HARD # acct_unique ... }
В секции accounting отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:
Code Block accounting { ... # HARD # radutmp ... # HARD perl }
В секции session отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:
Code Block session { # HARD # radutmp ... # HARD perl }
В секции post-auth -> Post-Auth-Type REJECT добавить модуль perl для логгирования попыток неправильного ввода пароля:
Code Block post-auth { Post-Auth-Type REJECT { ... # HARD perl ... } }
В файл /etc/freeradius/sites-available/inner-tunnel, в секцию authenticate нужно добавить вызов модуля perl:
Code Block |
---|
authenticate { ... Auth-Type Perl { # HARD perl } ... } |
В начало файла /etc/freeradius/users нужно добавить следующее:
Code Block |
---|
# HARD DEFAULT Auth-Type = Perl Fall-Through = 1 |
В конец файла /etc/freeradius/clients.conf необходимо добавить IP-адреса и RADIUS-secret серверов доступа, которые будут клиентами данного RADIUS-сервера:
Code Block |
---|
client 10.10.10.1 { secret = secretkey_here } |
Настройка параметров подключения к агенту HARD
Параметры подключения к агенту HARD необходимо указать в файле /etc/freeradius/hard.pm следующим образом:
Code Block |
---|
... # Параметры для связи с 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.
Пример:
Code Block |
---|
... # Параметры для связи с 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-службу, которая будет использоваться с данным сервером:
Code Block |
---|
# Код сетевой службы RADIUS в АСР use constant HYDRA_AAA_SERV => "RADIUS-VPN"; |
Тестирование
Проверьте корректность настройки FreeRADIUS путём его запуска в отладочном режиме:
Code Block |
---|
user@server:~$ sudo freeradius -X |
Можно приступать к тестированию RADIUS-взаимодействия. Это можно делать двумя способами: либо с помощью утилит radclient
и radtest
, входящих в поставку FreeRADIUS, либо с использованием настоящего оборудования.