Feature #26
openПодробные логи с деавторизациями #2
0%
Description
Нужна опция включать/выключать подробные логи по деавторизациями без перезагрузки старгейзера.
Подробные логи управляются параметром LogProtocolErrors в секции конфигурации плагина auth_ia. Сейчас файл конфигурации читается только один раз — при старте системы (см. вызов метода SETTINGS::ReadSettings в main.cpp).
Однако, в Stargazer существует возможность перечитать некоторые файлы в процессе работы. Например rules или subnets. Стандартно для всех дэмонов UNIX используется сигнал SIGHUP с кодом 1. Обработка этого сигнала так же происходит в main.cpp (см. case SIGHUP). При этом у каждого плагина вызывается метод Reload. Однако, плагины не занимаются чтением файла конфигурации. Они получают свои настройки при загрузке (см. PluginManager::PluginManager, PLUGIN_RUNNER::PLUGIN_RUNNER, PLUGIN_RUNNER::Load и метод SetSettings у плагинов).
Необходимо при получении сигнала SIGHUP перечитывать настройки (SETTINGS::ReadSettings) и при вызове Reload у плагинов (см. PluginManager::reload) передавать туда новые значения параметров.
Для того чтобы послать Stargazer сигнал SIGHUP существует 2 способа. Первый: kill -1 <pid>, где <pid> — идентификатор процесса Stargazer. Его можно получить из pid-файла (если параметр PIDFile в stargazer.conf указан) или из списка процессов (список процессов можно посмотреть, например, с помощью команды ps ae). Второй: killall -1 stargazer. Нужно учитывать что stargazer запущен от имени root, по этому и команды kill и killall должны быть запущены от этого пользователя.
Секция конфигурации плагина auth_ia и параметр LogProtocolErrors в частности представлены классом AUTH_IA_SETTINGS. Объект этого класса является членом класса плагина AUTH_IA iaSettings. Его инициализация происходит в методе AUTH_IA::ParseSettings. Фактический разбор параметров происходит в методе AUTH_IA_SETTINGS::ParseSettings. Необходимо модифицировать AUTH_IA::Reload так чтобы он принимал ссылку на объект MODULE_SETTINGS с новыми параметрами плагина и переинициализировал iaSettings.