Описание
С версии SoftWLC 1.27 включено динамическое изучение записей NAS для RADIUS-запросов клиентов. Наличие записи NAS проверяется для запросов клиентов с любых адресов.
Сервис используется для обеспечения механизмов ААА при обслуживании пользователей Wi-Fi, подключаемых с использованием механизма безопасности WPA-enterprise (EAP).
Точки доступа при подключении клиента производят его авторизацию и аутентификацию по протоколу RADIUS с данными серверами, серверы, в свою очередь, производят запрос клиентских данных из базы данных на серверах DB, а также выполняет вспомогательные функции при авторизации пользователей через ESR/BRAS.
В штатном режиме использования в составе SoftWLC RADIUS тесно интегрирован с PCRF и выполняет в этой связке следующие функции.
RADIUS уведомляет PCRF обо всех результатах аутентификации пользователей, чтобы PCRF мог корректно отобразить состояние сессии клиента и в дальнейшем обрабатывать аккаунтинг.
При аутентификации пользователей RADIUS перекладывает часть проверок на PCRF.
Среди них:
- проверка статуса SSID;
- проверка числа одновременных подключений (если используется атрибут Simultaneous-Use)
Управление сервисом
Установка сервиса
apt-get install eltex-radius-db apt-get install eltex-radius
Способ запуска/остановки
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | service eltex-radius status | Сервис запущен Active: active (running) Сервис не запущен Active: inactive (dead) |
Остановка сервиса | service eltex-radius stop | Сервис успешно остановлен Active: inactive (dead) |
Запуск сервиса | service eltex-radius start | Сервис успешно запущен Active: active (running) |
Перезапуск сервиса | service eltex-radius restart | Сервис успешно перезапущен Active: active (running) |
Запуск в отладочном режиме | eltex-radius -X |
Конфигурация
Конфигурация находится в /etc/eltex-radius
. Из всех файлов проводить действия рекомендуется только со следующими:
local.conf
- все основные параметры, которые может понадобиться редактировать;certs/server.crt
- сертификат сервера, используемый в EAP-TLS;certs/server.key
- приватный ключ сервера, используемый в EAP-TLS;certs/ca/*.pem
- сертификаты корневых CA (при настройке EAP-TLS сертификат CA рекомендуется назватьlocal.pem
и прописать вlocal.conf
);
/etc/eltex-radius/local.conf
Содержит основные настройки сервиса.
Параметры | Описание | Значение по умолчанию |
---|---|---|
Настройка прослушиваемых портов | ||
auth_port | Порт прослушивания входящих RADIUS-запросов | 1812 |
#acct_port | Порт прослушивания входящих ACCT-запросов, по умолчанию отключен, на данном порту обработку ACCT выполняет сервис Eltex-PCRF | 1813 |
inner_tunnel_port | Служебный порт для работы enterprise-авторизации, не рекомендуется изменять | 18121 |
Настройка подключения к БД MariaDB radius | ||
db_host | IP-адрес подключения к БД | localhost |
db_port | Порт подключения к БД | 3306 |
db_login | Логин подключения к БД | radius |
db_password | Пароль подключения к БД | radpass |
db_name | Имя используемой БД | radius |
Подключение к сервису PCRF | ||
pcrf_host | IP-адрес подключения к сервису | 127.0.0.1 |
pcrf_port | Порт подключения к сервису | 7080 |
pcrf_enabled | Включить/отключить подключение к сервису PCRF. Если PCRF не используется - надо включить настройку acct_port | 1 |
Имя CA-сертификата, используемого для авторизации по TLS и ключ для серверного сертификата | Эти параметры будут изменены автоматически при выполнении скрипта установки сертификата, который находится в пакете eltex-radius-nbi | |
ca_cert_name | Имя сертификата | default.pem |
tls_key_password | Пароль от закрытого ключа сертификата | eltex |
Настройка проксирования запросов на сторонний RADIUS сервер по домену | ||
proxy_auth | Включить/отключить проксирование (по умолчанию отключено) | 0 |
proxy_domain_regex | Регулярное выражение, в котором определяется домен для запросов которого будет выполняться проксирование | ^(.+\.)?enterprise\.root$ |
proxy_host | IP-адрес, на который будет выполняться проксирование | 127.0.0.1 |
proxy_port | Порт, на который будет выполняться проксирование | 18121 |
proxy_secret | Secret, используемый для отправки проксируемого трафика | eltex |
Активация специальных алгоритмов обработки запросов на авторизацию для устройств некоторых производителей | ||
ubi_vendor_regex | Название вендора | Apple|Ubiquiti |
vendor_group_enabled | включение/отключение специальных алгоритмов обработки | 1 |
Настройка динамических клиентов для авторизации | Позволяет получать информацию о новых клиентах из таблицы "nas" без рестарта "eltex-radius" | |
dynamic_clients | Включение/отключение динамического изучения клиентов в таблице nas | true |
dynamic_client_subnet | Подсеть, для клиентов которой будет выполнятся динамический поиск клиентов в таблице nas | 0.0.0.0/0 |
dynamic_client_lifetime | Время жизни информации о клиенте в кэше (сек) | 3600 |
dynamic_client_rate_limit | Ограничение числа запросов от клиентов | false |
Настройка проксирования запросов на сторонний RADIUS сервер по SSID | ||
proxy_ssid_enabled | Включить/отключить проксирование | 0 |
proxy_ssid_value | Имя SSID, для которого будет выполняться проксирование | EAP_TLS |
proxy_ssid_host | IP-адрес, на который будет выполняться проксирование | 127.0.0.1 |
proxy_ssid_port | Порт, на который будет выполняться проксирование | 18122 |
proxy_ssid_secret | Secret, используемый для отправки проксируемого трафика | eltex |
Получение статуса сервера | ||
status_host | IP-адрес, на которой ожидаются запросы о статусе radius-сервера | 127.0.0.1 |
status_port | Порт, на который ожидаются запросы о статусе radius-сервера | 18123 |
status_client_host | IP-адрес, с которого ожидаются запросы о статусе radius-сервера | 127.0.0.1 |
status_client_secret | Secret, используемый для запросов о статусе радиус-сервера | eltex |
Таблица NAS
Данная таблица находится в БД radius и содержит адреса клиентов (точек доступа), имеющих право отправлять запросы на проведение авторизации пользователей.
Если клиент не включен в эту таблицу, то запросы авторизации будут игнорироваться. После обновления состава этой таблице необходим ручной перезапуск eltex-radius.
service eltex-radius restart
При изменении состава дерева объектов в EMS (добавлении/удалении точек доступа) происходит автоматическое обновление таблицы и перезапуск eltex-radius.
Настройка eltex-radius в режиме динамического изучения клиентов без перезапуска
Возможна настройка "eltex-radius", которая позволяет динамически проверять информацию в таблице nas о неизвестных клиентах без перезапуска. За это отвечает группа настроек "Настройка динамических клиентов для авторизации", по умолчанию функционал отключен. Для включения функционала необходимо настроить:
- Включить режим динамического изучения клиентов: dynamic_clients=true
- Указать подсеть IP-адресов, для которых будет выполнятся динамическое изучение (можно указать только одну подсеть): dynamic_client_subnet=192.168.0.0/16
Выполнить перезапуск:
sudo systemctl restart eltex-radius
Открыть Eltex-EMS, открыть меню "Администрирование" - "Настройка сервера" - "Системные модули" - "radius" и отключить галочку в настройке "Перезапускать Radius". После этого перестанет выполняться перезапуск сервиса "eltex-radius" при добавлении новых ТД.
При работе в указанном режиме "eltex-radius" при получении запроса от клиента (ТД), выполнит проверку наличия информации о данной ТД в памяти. Если информация не найдена - будет выполнена проверка соответствия IP-адрес клиента подсети, указанной в настройке dynamic_client_subnet. Если IP-адрес клиента попадает в указанную подсеть - будет выполнен запрос в БД к таблице nas и если там будет найден IP-адрес клиента - приступит к обработке его запроса. Полученная информация о клиенте попадет в кэш и при повторных обращениях клиента повторных обращений к БД не будет. Время хранения информации о клиенте в кэше определяется настройкой dynamic_client_lifetime.
Логирование
Настройки логирования сервера содержатся в секции log файла /etc/eltex-radius/radiusd.conf. Пример настроек по умолчанию секции log для ubuntu:
log { destination = syslog syslog_facility = local1 colourise = yes stripped_names = no auth = yes auth_badpass = yes auth_goodpass = yes msg_denied = "You are already logged in - access denied" }
Перенаправление логов в файл /var/log/eltex-radius/radius.log
Логи сервиса по умолчанию перенаправляются в файл /var/log/eltex-radius/radius.log. Если этого не происходит, то следует обновить SoftWLC с помощью последнего скрипта-установщика или выполнить следующие действия:
Установить владельца директории /var/log/eltex-radius и файла /var/log/eltex-radius/radius.log в значение, соответствующее syslog пользователю и его группе в операционной системе. Например, для ubuntu:
ubuntu$ sudo chown syslog:adm /var/log/eltex-radius $ sudo chown syslog:adm /var/log/eltex-radius/radius.log
debian / astra linux$ sudo chown root:adm /var/log/eltex-radius $ sudo chown root:adm /var/log/eltex-radius/radius.log
Ротация логов осуществляется с помощью утилиты logrotate. Настройки ротации логов в файле /etc/logrotate.d/eltex-radius приведены ниже для разных ОС
Для Astra Linux
Перенаправление логов в Graylog
Настройки для перенаправления находятся в файле /etc/rsyslog.d/eltex-radius.conf.
Нужно раскомментировать в /etc/syslog-ng/conf.d/eltex-radius.conf
# GELF appender: port=12201 template (create JSON) destination d_gelf1_upd { network( "SERVER-IP" port(12201) transport(udp) # GELF template (create JSON) template("$(format-json version=\"1.1\" host=$FULLHOST message=$MESSAGE timestamp=$ISODATE level=int64($LEVEL_NUM) _facility=\"eltex-radius\")\n") ); }; log { source(s_src); filter(f_radiusd); destination(d_gelf1_upd); };
Ротация логов
Для ротации логов при помощи logrotate нужно создать файл конфигурации, пример приведен ниже:
/var/log/eltex-radius/radius.log { maxsize 10M daily missingok rotate 10 compress dateext notifempty create sharedscripts postrotate invoke-rc.d syslog-ng reload > /dev/null 2>&1 || true endscript }
В данному случае,
maxsize 10M
- максимальный размер одного файла - 10 Мб, при его превышении происходит ротацияdaily
- выполнять ротацию ежедневноrotate 10
- сохранять файлы за последние 10 днейcompress
- производить сжатие файловcreate
- создавать новый файлpostrotate
- reload сервера, чтобы начать запись в созданный файл
Для Debian/Ubuntu
Перенаправление логов в Graylog
Настройки для перенаправления находятся в файле /etc/rsyslog.d/eltex-radius.conf.
Нужно раскомментировать в /etc/syslog-ng/conf.d/eltex-radius.conf
# GELF appender: port=12201 if ( $programname == "radiusd" and $syslogfacility-text == "local1") then { action(type="omfwd" target="SERVER-IP" port="12201" protocol="udp" template="gelf1") }
Ротация логов
Для ротации логов при помощи logrotate нужно создать файл конфигурации, пример приведен ниже:
/var/log/eltex-radius/radius.log { maxsize 10M daily missingok rotate 10 compress dateext notifempty create sharedscripts postrotate invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true endscript }
В данному случае,
maxsize 10M
- максимальный размер одного файла - 10 Мб, при его превышении происходит ротацияdaily
- выполнять ротацию ежедневноrotate 10
- сохранять файлы за последние 10 днейcompress
- производить сжатие файловcreate
- создавать новый файлpostrotate
- reload сервера, чтобы начать запись в созданный файл