Запуск утилиты в deb-пакете
В пакет eltex-radius с билда 1.7-28 добавлены утилиты eraddebug и eradmin из родительского пакета freeradius (raddebug и radmin в оригинале).
eraddebug позволяет снимать дебаг (т.е. то, что выводится на экран при запуске сервера с ключом -X) RADIUS сервера без его остановки. Таким образом можно получать отладочную информацию без влияния на доступность и производительность сервера в production.
Для работы скрипта необходимы следующие настройки RADIUS-сервера:
listen { type = control socket = ${run_dir}/${name}.sock uid = eltxrad gid = eltxrad mode = rw }
в пакете eltex-radius они хранятся в файле /etc/eltex-radius/servers/control
Запуск производится командами:
sudo -u eltxrad eradmin sudo -u eltxrad eraddebug
Первая команда выполняет запуск утилиты eradmin, а вторая скрипта eraddebug от имени пользователя eltxrad. Для снятия дебага необходимо выполнять только вторую. eradmin самостоятельная утилита, для администрирования RADIUS-сервера. eraddebug пердставляет собой shell-скрипт, который использует возможности eradmin и автоматизирует процесс дебага сервера.
Опции
Опция | Описание |
---|---|
-c condition | Установить условие выборки дебаг информации. Формат условий описан тут: http://freeradius.org/radiusd/man/unlang.html#lbAF |
-f socket_file | Путь к сокет-файлу, который указывается тут socket = ${run_dir}/${name}.sock. По умолчанию читает из конфигурации. Если что то не так, можно указать сокет вручную. |
-i ipv4-address | Вывести дебаг для точки доступа с IPv4 адресом. То же самое с использованием conditions: -c '(Packet-Src-IP-Address == ipv4-address)' |
-d config directory | Директория конфигурации radius, по умолчанию /etc/eltex-radius . |
-n mname | Прочитать файл raddb/name.conf вместо raddb/radiusd.conf. |
-I ipv6-address | Вывести дебаг для точки доступа с IPv6 address. Эквивалентно: -c '(Packet-Src-IPv6-Address == ipv6-address)' |
-t timeout | Таймаут дебага в секундах, работа скрипта завершается по истечении этого времени. По умолчанию установлено в 60 секунд. Для выключения ограничения по времени можно использовать "-t 0". |
-u name | Вывести дебаг для определенного пользователя. То же, что и: -c '(User-Name == name)' |
Примеры
eltex@ubuntu:/$ sudo -u eltxrad eraddebug -u wifiuser
Данная команда, запущенная не от имени суперпользователя root выполняет скрипт eraddebug от имени пользователя eltxrad и выводит отладочную информацию по пользователю wifitester в течении 60 секунд (таймаут по умолчанию), по истечении которых автоматически завершается.
eltex@ubuntu:/$ sudo -u eltxrad eraddebug -t 300 -u wifiuser
Данная команда запущенная не от имени суперпользователя root выполняет скрипт eraddebug от имени пользователя eltxrad и выводит отладочную информацию по пользователю wifitester в течении 5 минут, по истечении которых автоматически завершается.
root@ubuntu:/# eraddebug -t 0 -u wifiuser
При запуске от суперпользователя root в использовании sudo нет необходимости. Данная команда будет выводить отладочную информацию по пользователю wifiuser до ручной остановки комбинацией Crtl+C.
Запуск утилиты в docker-контейнере
Начиная с версии SoftWLC 1.23 была добавлена возможность запускать eltex-radius в контейнере. Для использования утилиты eraddebug нужно запустить контейнер командой:
docker-compose up -d
И запустить утилиту командой:
docker-compose exec eltex-radius eraddebug
Все остальные опции работают аналогично запуску утилиты при использовании deb-пакета, например:
docker-compose exec eltex-radius eraddebug -u <Имя пользователя> -t <время работы>
Источники
- Официальный man http://freeradius.org/radiusd/man/raddebug.html
- Описание языка unlang, используемого в конфигурации http://freeradius.org/radiusd/man/unlang.html