Установка и базовая настройка OSSEC (системы для централизованного мониторинга log-файлов от Trend Micro)

HELP-ME-24.COM (Freelance Team), Черноусов Антон

В рамках одного из проектов по тестирования разного рода систем для централизованного мониторинга и анализа log-файлов мы тестировали несколько систем и по результатам заказчик выбрал ossec (http://www.ossec.net).

На наш взгляд, это не самое лучшее решение, но заказчика устроило именно оно и по результатам внедрения, мы составили небольшую инструкцию по установке и базовой настройке. Внедрение производилось на платформе Ubuntu Server 14.04 и Centos 7.1 (гибридная установка серверной части Ubuntu server 14.04, клиентская часть Centos 7.1).

Пошаговая инструкция по настройке системы мониторинга OSSEC

Система частично компилируется из исходных кодов и первым делом необходимо установить ряд необходимых пакетов:

# apt-get install inotify-tools build-essential

Скачиваем, распаковываем и устанавливаем серверную часть:

# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
# tar -xvf ./ossec-hids-2.8.1.tar.gz
# cd ./ossec-hids-2.8.1
# ./install.sh

Выполнение скрипта install.sh запускает автоматизированный установщик который ,в идеале, проведет вас по всем этапам настройки и сборки системы. Для сервера выберите тип установки «hybrid» на клиентах ,соответственно, «agent». Остальные параметры оставьте по умолчанию кроме адреса на который будут отправляться сообщения.

Приступаем к настройке сервера. Прейдите в каталог /var/ossec/etc и в файле ossec.conf отредактируйте параметры отправки сообщений электронной почты (если вы не настраивали их при установке сервера):

<global>
<email_notification>yes</email_notification>
<email_to>sammy@example.com</email_to>
<smtp_server>mail.example.com.</smtp_server>
<email_from>sammy@example.com</email_from>
</global>

Обратите внимание, что эта система не поддерживает авторизацию на smtp-сервере и вам потребуется сконфигурировать локальный smtp сервер на пересылку почты вышестоящему серверу или добавить ip-адрес ossec-сервера в доверенные для почтового сервера.

Запустите серверную часть командой:

# /var/ossec/bin/ossec-control start

Обратите внимание, что если вы попытаетесь запустить сервис командой:

# /etc/init.d/ossec start

Вы получите ошибку:

ossec-agentd(1402): ERROR: Authentication key file '/var/ossec/ossec-agent/etc/client.keys' not found.
ossec-agentd(1750): ERROR: No remote connection configured. Exiting.

Как устранить такое поведение мы расскажем далее. OSSEC-сервер не может быть запущен без настроенных агентов, поэтому перейдите на сервер который будет добавлен клиентом к системе мониторинга и выполните все операции по установке из начала этой статьи с единственным отличием в типе установки (выбираем «agent»). Обратите внимание, что при сборке агента для Centos требуется установить следующую группу пакетов:

# yum groupinstall 'Development Tools'

Настроим взаимодействие клиента и сервера, для чего необходимо создать ключи авторизации при помощи утилиты:

# /var/ossec/bin/manage_agents

Данную команду необходимо выполнить сначала на сервере, где выбрать режим (A)dd an agent (A) и указать имя агента (имя сервера за которым настраиваем наблюдение).

****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Choose your action: A,E,L,R or Q: A


- Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: ffk-main
* The IP Address of the new agent: 109.120.142.159
* An ID for the new agent[001]:
Agent information:
ID:001
Name:ffl
IP Address:119.120.132.159


Confirm adding it?(y/n): y
Agent added.

Следующим этапом экспортируем ключ агента выбрав режим (E)xtract key for an agent (E).

****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Choose your action: A,E,L,R or Q: E


Available agents:
ID: 001, Name: ffk-main, IP: 109.120.142.159
Provide the ID of the agent to extract the key (or '\q' to quit): 001


Agent key information for '001' is:
MDAxIGZmbCAxMDkuMTIwLjE0Mi4xNmUwYjdjMGODhkNjU1NjI3Nw==

Полученный ключ необходимо импортировать на клиентский сервер (агент на сервере за которым устанавливаем наблюдение), для чего выбираем режим (I)mport key from the server (I).

****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: I


* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.


Paste it here (or '\q' to quit): MDAxIGZmbCAxMDkNTNiNjhlMjZjNDRmODhkNjU1NjI3Nw==

Agent information:
ID:001
Name:ffl
IP Address:109.120.142.159


Confirm adding it?(y/n): y
Added.

По завершении настройки запускаем службы и настраиваем автозапуск при загрузке сервера.

Для Centos 7:

# /etc/init.d/ossec start
# chkconfig ossec on

Для Ubuntu server:

# /etc/init.d/ossec start
# update-rc.d ossec enable

При установке в режиме hybrid как уже говорилось выше вы получите ошибку:

Authentication key file '/var/ossec/ossec-agent/etc/client.keys' not found.

Для устранения ошибки выполните следующие команды:

# mkdir -p /var/ossec/ossec-agent/etc/
# ln -s /var/ossec/etc/client.keys /var/ossec/ossec-agent/etc/client.keys

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

# /var/ossec/bin/ossec-control restart

Для взаимодействия клиента и сервера по сети используется UDP-порт 1514 (порт должен быть открыт как на сервере так и на агенте). В случае возникновения проблем в работе ossec проверьте сообщения в log-файле /var/ossec/logs/ossec.log

Серверная часть содержит большой набор правил практически на все случаи жизни, но в том случае ,если вам потребуется добавить дополнительные правила мониторинга, выполните следующие действия.

На стороне сервера в файле var/ossec/rules создаем правило (например error_rule.xml) которое будет искать строку " Error "

<group name="syslog,">
<rule id="80299" level="15">
<description>Error detected!</description>
<regex> Error </regex>
</rule>
</group>

Подключаем правило в <rules> в ossec.conf.

<rules>
<include>rules_config.xml</include>
<include>error_rule.xml</include>
</rules>

На стороне клиента в файле ossec.conf указываем за какими log-файлами будет вестись наблюдение:

<localfile>
<location>/home/max/test.log</location>
<log_format>syslog</log_format>
</localfile>

Так же, отредактировав список подключенных правил вы можете сократить количество событий на которые будет реагировать система.

Проверить список агаентов и их статус можно командой:

# /var/ossec/bin/list_agents -a

Если вы получаете ошибку:

ossec-remoted(1213): WARN: Message from 109.120.142.159 not allowed.

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

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий