Настройка сигнализации

В первом разделе дана инструкция по настройке сигнализации с нуля. Процедура миграции на новую версию изложена во втором разделе.

Настройка сигнализации с нуля

Настройка сервера мониторинга

Установите пакеты nagios-full, nagios-www-apache2, apache2-mod_ssl, nagwad-templates, nagwad-actions, alterator-nagios-secondary, nagios-addons-nrpe, nagios-nsca, nagstamon, nagiosdigger.

Конфигурация Nagios

Список наблюдаемых узлов

Если сервер мониторинга является в то же время контроллером домена, дополнительно установите пакет nagios-domain-discovery и в файле /etc/nagios/domain-discovery/main.conf задайте:

HOSTGROUPS=nagwad-nodes

После этого запустите сценарий /usr/sbin/nagios-domain-discovery. Будет выведен список добавленных в конфигурацию Nagios узлов, а в директории /etc/nagios/objects появятся соответствующие файлы. Например:

# cat /etc/nagios/objects/nagios-node.cfg
define host{
    host_name   nagios-node
    use     linux-server
    alias   nagios-node
    address 10.88.9.174
    hostgroups  nagwad-nodes
}

Для регулярного автоматического обновления списка наблюдаемых узлов включите службу nagios-domain-discovery.timer. Обновление будет производится раз в 5 минут, но служба nagios будет перезапускаться только в случае действительного обновления списка.

В том случае, если сервер мониторинга не является контроллером домена, то для каждого наблюдаемого узла следует вручную записать в директорию /etc/nagios/objects конфигурационный файл по вышеприведённому образцу. В этом образце главное — параметр hostgroups: все проверки, которые обеспечивает пакет nagwad уже описаны в шаблоне и привязаны к группе nagwad-nodes. Это избавляет от необходимости перечислять проверки для каждого узла в отдельности.

Завершение настройки Nagios

Для завершения настройки Nagios включите и (пере-) запустите службы nagios и xinetd.

Настройка рабочего мета администратора безопасности

Рабочее место администратора безопасности строится на основе web-интерфейса Nagios, панели контроля и управления безопасностью Nagstamon и аггрегатора событий Nagiosdigger.

Настройка web-интерфейса Nagios

Пользователи и пароли для доступа к web-интерфейсу задаются в файле /etc/nagios/nagios.web-users. По умолчанию там содержится одна запись о пользователе “nagios” с паролем “nagios”. При необходимости, используйте команду

htpasswd /etc/nagios/nagios.web-users <имя_пользователя>

для добавления нового пользователя или смены пароля существующего пользователя. После этого включите и перезапустите службу httpd2.

Web-интерфейс теперь доступен по адресу https://localhost/nagios.

Настройка панели управления Nagstamon

При первом запуске nagstamon выведет диалоговое окно, в котором следует настроить новое подключение к Nagios. Используйте для этого адрес https://localhost/nagios, имя пользователя и пароль, который вы настроили для web-интерфейса Nagios (по умолчанию “nagios”, “nagios”).

Для каждого проблемного узла в панели управления доступны команды:

Для успешного выполнения этих команд на каждом из наблюдаемых узлов должен быть настроен доступ по SSH. Процедура настройки описана в отдельном разделе ниже. А на данном этапе можно заранее изготовить пользовательский ключ командой ssh-keygen.

Настройка аггрегатора событий Nagiosdigger

Для работы nagiosdigger необходима база данных, совместимая с MySQL. Можно использовать как удалённую БД, так и локальную СУБД. В последнем случае, установите один из следующих пакетов: mariadb-server или MySQL-server и запустите службу mariadb или mysqld соответственно. Для работы с БД также понадобится инструмент доступа: установите соответственно mariadb-client или MySQL-client.

Теперь необходимо создать таблицу для хранения записей о событиях. Можно добавить таблицу к существующей БД или создать новую. Для создания новой БД подключитесь к СУБД командой mysql и введите следующие команды:

CREATE DATABASE nagiosdigger;
GRANT INSERT,SELECT ON nagiosdigger.logs TO nagioslogs@localhost
IDENTIFIED BY '<пароль>';
FLUSH PRIVILEGES;

Затем, используйте команды

cat /usr/share/doc/nagiosdigger-0.9/create_tables.sql | mysql -B nagiosdigger

для создания таблицы logs в базе данных nagiosdigger.

Теперь необходимо позаботиться о том, чтобы Nagiosdigger имел доступ к базе данных. Для этого запишите параметры доступа в файл /etc/nagios/nagiosdigger/config.ini.

Далее, нужно чтобы в эту таблицу logs попадали данные о событиях. Для этого в файле /etc/nagios/nagios.cfg задайте

global_service_event_handler=nagiosdigger-service-handler

Если сейчас перезапустить службу nagios, то новые события начнут добавляться в БД. Однако, это может быть нежелательно, поскольку наблюдаемые узлы ещё не настроены. При желании можно добавить в БД и все те события, которые уже записаны в /var/log/nagios/nagios.log — используйте для этого команду

cat /var/log/nagios/nagios.log | sort | nagiosdigger-import

и, при необходимости также

cat /var/log/nagios/archives/nagios-*.log | sort | nagiosdigger-import

Web-интерфейс Nagiosdigger доступен по адресу https://localhost/nagiosdigger.

Настройка вторичных проверок

Шаблон проверок /etc/nagios/templates/50-nagwad.cfg обеспечивает проверку следующих случаев нарушения безопасности:

Кроме этих базовых проверок можно добавить в конфигурацию Nagios дополнительные, основанные на них вторичные проверки. За их настройку отвечает модуль Центра управления системой “Вторичные проверки Nagios”, доступный после установки пакета alterator-nagios-secondary (для обновления списка модулей следует перезагрузить службу alteratord).

Диалоговое окно модуля позволяет задать базовую проверку, интервал времени и количество событий, после фиксирования которых должна сработать вторичная проверка. Таким образом можно получить новые события, типа “повторный несанкционированный доступ к устройству в течение часа”.

Настройка наблюдаемого узла

Установите пакеты nagwad, nagios-nrpe, nagios-nsca-send nagios-plugins.

После этого задайте в файле /etc/nagios/nrpe.cfg

allowed_hosts=<IP_адрес_сервера_мониторинга>

Теперь включите и запустите службу nrpe.

Аналогично, в файле /etc/nagios/send_nsca.cfg задайте

host_address=<IP_адрес_сервера_мониторинга>

Теперь нужно открыть доступ по SSH на узел для администратора безопасности. Для этого нужно добавить его публичный ключ SSH в файл /root/.ssh/authorized_keys. Доступ к этому ключу на сервере мониторинга должен быть доступен непривилегированному пользователю, в сеансе которого работает Nagsamon.

События неправильного входа в систему будут отслеживаться только в том случае, если настроено ограничение на количество ошибочных попыток авторизации. Для настройки пропишите PAM-модуль pam_tally2 в /etc/pam.d/system-auth с соответствующими параметрами. Например:

auth required pam_tally2.so deny=4 audit

Для окончания настройки узла, включите и запустите службу osec.timer.

Миграция с предыдущей версии

В переходе на новую версию критическим моментом является обновление конфигурации наблюдаемых узлов. От описания тех проверок (define service), которые относятся к nagwad (см. список выше, в разделе “Настройка вторичных проверок”), следует отказаться в пользу указания hostgroups nagwad-nodes. Это связано, в первую очередь, с тем, что поменялись названия некоторых команд NRPE, используемых в проверках.

На стороне наблюдаемого узла, все актуальные команды NRPE, отвечающие за проверки nagwad, определены в файле /etc/nagios/nrpe-commands/nagwad.cfg. Во избежание путаницы описание соответствующих старых команд нужно удалить из файла /etc/nagios/nrpe.cfg.

Ещё одно отличие заключается в том, что сигнальные файлы nagwad записываются теперь в директорию /var/log/nagwad, а не в /var/lib/nagwad.

Об особенностях настройки команды Lock_host в Nagstamon см. далее в разделе “Быстрая блокировка узла”.

Действия на наблюдаемых узлах

Использование NSCA_shell

Для каждого проблемного узла в Nagstamon из контекстного меню доступна команда NSCA_shell. Она рассчитана на SSH-доступ на проблемный узел для пользователя root. Выполнение команды приводит к открытию нового эмулятора терминала с сеансом на проблемном узле. Администратор безопасности может разобраться с возникшей проблемой и, в случае успешного её решения, должен переместить файл /var/log/nagwad/<проблема>/<проблема>_XXXX в /var/log/nagwad/<проблема>_archived/.

Замечание. Если сеанс от пользователя root по каким-то причинам невозможен, то следует отредактировать команду NSCA_shell (через графический интерфейс), задав имя другого пользователя, для которого настроен доступ по SSH на любой из наблюдаемых узлов. Естественно, что в этом случае все системные операции и, в частности, операции с сигнальными файлами в /var/log/nagwad/ потребуют повышения каким-то образом привилегий.

Все введённые командные строки протоколируются! И после завершения сеанса на удалённом узле автоматически передаются на сервер мониторинга, где связываются с узлом и сработавшей проверкой в качестве комментария к ней. Эти комментарии доступны для просмотра через web-интерфейс Nagios.

Быстрая блокировка узла

Вторая команда в контекстном меню Nagstamon — Lock_host. Также как и NSCA_shell она рассчитана теперь на SSH-доступ на проблемный узел для пользователя root. Если сеанс от пользователя root по каким-то причинам невозможен, то следует отредактировать эту команду соответствующим образом. Так, в предыдущей версии системы использовался пользователь nagios с последующим автоматическим повышением привилегий посредством специальной настройки sudo.