Project

General

Profile

Actions

Feature #26

open

Подробные логи с деавторизациями #2

Added by Maxim Mamontov over 9 years ago. Updated over 8 years ago.

Status:
New
Priority:
Normal
Start date:
05/31/2015
Due date:
% Done:

0%

Estimated time:

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.

Actions

Also available in: Atom PDF