Для установки я буду использовать виртуальную машину с установленной CentOS 6.4. Сначала необходимо установить Prelude-IDS. Разработчики предоставили инструкции по установке из пакетов и исходников практически для всех популярных платформ. Здесь можно скачать исходники, RPM и SRPM.
Установка Prelude Manager
Подключаем репозиторий для CentOS/RHEL:
[root@ossec ~]# yum install https://www.prelude-ids.org/attachments/download/297/prelude-ids-rhel-2-1.noarch.rpm
Далее устанавливаем Prelude Manager и пакеты необходимые для работы с общей базой данных:
[root@ossec ~]# yum install prelude-manager prelude-manager-db-plugin libpreludedb-mysql
Запускаем MySQL:
[root@ossec ~]# /etc/init.d/mysqld start [root@ossec ~]# chkconfig mysqld on
Теперь создаем БД и пользователя:
[root@ossec ~]# mysql -u root -p mysql> CREATE database prelude; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON prelude.* TO prelude@'localhost' IDENTIFIED BY 'preludepasswd'; Query OK, 0 rows affected (0.00 sec) [root@ossec ~]# mysql -u root prelude -p < /usr/share/libpreludedb/classic/mysql.sql
Редактируем конфиг Prelude Manager:
[root@ossec ~]# vim /etc/prelude-manager/prelude-manager.conf
Добавляем туда следующие строки (или же убираем комментарии):
[db] type = mysql host = localhost port = 3306 name = prelude user = prelude pass = preludepasswd
Теперь необходимо создать профиль для Prelude Manager:
[root@ossec ~]# prelude-admin add "prelude-manager" --uid 0 --gid 0 Generating 2048 bits RSA private key... This might take a very long time. [Increasing system activity will speed-up the process]. Generation in progress...
Здесь есть один момент. Как и предупреждает программа, генерация ключа может занять очень много времени.
Есть возможность ускорить этот процесс:[root@ossec ~]# yum install rng-tools [root@ossec ~]# rngd -r /dev/urandom
После завершения генерации ключа можно запускать Prelude Manager:
[root@ossec ~]# /etc/init.d/prelude-manager restart
Убедимся, что сервер стартовал нормально:
Aug 19 05:36:33 ossec prelude-manager: INFO: server started (listening on 127.0.0.1 port 4690). Aug 19 05:36:33 ossec prelude-manager: INFO: Subscribing db[default] to active reporting plugins. Aug 19 05:36:33 ossec prelude-manager: INFO: Generating 1024 bits Diffie-Hellman key for TLS...
Установка Prewikka
Установим необходимые пакеты:
[root@ossec ~]# yum install prewikka libpreludedb-python
Создаем еще одну базу для Prewikka:
[root@ossec ~]# mysql -u root -p Enter password: mysql> CREATE database prewikka; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON prewikka.* TO prewikka@'localhost' IDENTIFIED BY 'prewikkapasswd'; Query OK, 0 rows affected (0.01 sec) [root@ossec ~]# mysql -u root prewikka -p < /usr/share/prewikka/database/mysql.sql
Теперь отредактируем файл конфигурации Prewikka и укажем правильные базы данных:
[root@ossec ~]# vim /etc/prewikka/prewikka.conf
В нашем случае необходимо добавить (или отредактировать) следующие строки:
[idmef_database] type: mysql host: localhost user: prelude pass: preludepasswd name: prelude [database] type: mysql host: localhost user: prewikka pass: prewikkapasswd name: prewikka
Теперь поставим Apache:
[root@ossec ~]# yum install httpd
Создаем виртуальный хост:
[root@ossec ~]# vim /etc/httpd/conf.d/prewikka.conf
<VirtualHost *:80> ServerName my.server.org Setenv PREWIKKA_CONFIG "/etc/prewikka/prewikka.conf" <Location "/"> AllowOverride None Options ExecCGI <IfModule mod_mime.c> AddHandler cgi-script .cgi </IfModule> Order allow,deny Allow from all </Location> Alias /prewikka/ /usr/share/prewikka/htdocs/ ScriptAlias / /usr/share/prewikka/cgi-bin/prewikka.cgi </VirtualHost>
Казалось бы, что все готово, но тут нас поджидает несколько подводных камней. Во-первых, необходимо отключить или настроить SELinux, во-вторых, открыть 80 порт на локальном файерволе, в-третьих, установить права доступа к папке с файлом конфигурации:
[root@ossec ~]# chmod o+x /etc/prewikka/
Тем не менее, если сейчас попробовать зайти в Prewikk’у, произойдет ошибка.
Проверим логи:
[root@ossec ~]# tail -f /var/log/httpd/error_log [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] from prewikka import utils, siteconfig, cairoplot [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] File "/usr/lib/python2.6/site-packages/prewikka/cairoplot.py", line 34, in <module> [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] import cairo [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] ImportError [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] : [Mon Aug 19 06:26:53 2013] [error] [client 172.16.86.1] No module named cairo
Устанавливаем недостающий модуль:
[root@ossec ~]# yum search cairo
Теперь можно зайти на сервер и залогиниться с парой логин/пароль admin/admin.
Установка OSSEC
Скачать архивы с последней версией OSSEC можно здесь. На той же странице написано о том, что RPM для RHEL/CentOS можно взять из репозитория AtomiCorp. Нам такой вариант не подойдет, так как OSSEC в том репозитории собран без поддержки libprelud, тем не менее, при установке агентов на конечные сервера, его вполне можно использовать.
Итак, скачиваем и распаковываем последнюю версию OSSEC.
[root@ossec ~]# wget http://www.ossec.net/files/ossec-hids-2.7.tar.gz [root@ossec ~]# tar xvzf ossec-hids-2.7.tar.gz
Теперь для того, чтобы скомпилировать OSSEC ставим libprelude-devel, компилятор и make
[root@ossec ~]# yum install libprelude-devel gcc make
Устанавливаем параметры компиляции:
[root@ossec ~]# cd ossec-hids-2.7/src/ [root@ossec src]# make setprelude
Запускаем установку
[root@ossec src]# ../install.sh
Скрипт установки задаст несколько вопросов — какой использовать язык, тип установки и пр. Самое главное — указать верный тип установки. В нашем случае — server. Так же я не рекомендую включать функцию active response без предварительного чтения мануала по ней и настройки под себя.
OSSEC HIDS v2.7 Installation Script - http://www.ossec.net You are about to start the installation process of the OSSEC HIDS. You must have a C compiler pre-installed in your system. If you have any questions or comments, please send an e-mail to dcid@ossec.net (or daniel.cid@gmail.com). - System: Linux ossec 2.6.32-358.el6.x86_64 - User: root - Host: ossec -- Press ENTER to continue or Ctrl-C to abort. -- 1- What kind of installation do you want (server, agent, local, hybrid or help)? server - Server installation chosen. 2- Setting up the installation environment. - Choose where to install the OSSEC HIDS [/var/ossec]: - Installation will be made at /var/ossec . 3- Configuring the OSSEC HIDS. 3.1- Do you want e-mail notification? (y/n) [y]: n --- Email notification disabled. 3.2- Do you want to run the integrity check daemon? (y/n) [y]: - Running syscheck (integrity check daemon). 3.3- Do you want to run the rootkit detection engine? (y/n) [y]: - Running rootcheck (rootkit detection). 3.4- Active response allows you to execute a specific command based on the events received. For example, you can block an IP address or disable access for a specific user. More information at: http://www.ossec.net/en/manual.html#active-response - Do you want to enable active response? (y/n) [y]: n - Active response disabled. 3.5- Do you want to enable remote syslog (port 514 udp)? (y/n) [y]: - Remote syslog enabled. 3.6- Setting the configuration to analyze the following logs: -- /var/log/messages -- /var/log/secure -- /var/log/maillog -- /var/log/httpd/error_log (apache log) -- /var/log/httpd/access_log (apache log) - If you want to monitor any other file, just change the ossec.conf and add a new localfile entry. Any questions about the configuration can be answered by visiting us online at http://www.ossec.net . --- Press ENTER to continue ---
После финального нажатия клавиши «ввод», начнется компиляция OSSEC и его копирование в директорию установки (по умолчанию это /var/ossec/).
Укажем в файле конфигурации то, что события необходимо отправлять в prelude-manager.
[root@ossec src]# vim /var/ossec/etc/ossec.conf
В секцию добавляем строку <prelude_output>yes</prelude_output>.
Должно получиться примерно так:
<ossec_config> <global> <email_notification>no</email_notification> <prelude_output>yes</prelude_output> </global> <rules> <include>rules_config.xml</include> <include>pam_rules.xml</include> <include>sshd_rules.xml</include> ...
Теперь подключим OSSEC к prelude. Запускаем в одной консоли сервер регистрации:
[root@ossec ~]# prelude-admin registration-server prelude-manager The "p9gnqy98" password will be requested by "prelude-admin register" in order to connect. Please remove the quotes before using it. Generating 1024 bits Diffie-Hellman key for anonymous authentication... Waiting for peers install request on 0.0.0.0:5553... Waiting for peers install request on :::5553...
В другой — регистрируем OSSEC командой:
[root@ossec ~]# prelude-admin register OSSEC "idmef:w" 127.0.0.1 --uid ossec --gid ossec Generating 2048 bits RSA private key... This might take a very long time. [Increasing system activity will speed-up the process]. Generation in progress... X
Как и в прошлый раз, мы можем ускорить генерацию ключей командой:
[root@ossec ~]# rngd -r /dev/urandom
Как только генерация ключей завершится, во второй консоли будет предложено ввести одноразовый пароль. В данном случае — это «p9gnqy98».
Теперь перезапускаем оба демона.
[root@ossec ~]# /etc/init.d/prelude-manager start [root@ossec ~]# /etc/init.d/ossec start
Если теперь зайти в Prewikk’у, то можно видеть приходящие из OSSEC уведомления и сигналы тревоги.
Если зайти во вкладку Agents, в списке агентов должны значится prelude-manager и OSSEC.
Итоги
Итак, мы установили на наш сервер Prelude IDS. Настроили вывод его оповещений в СУБД MySQL, установленную на этом же сервере. Так же мы создали еще одну БД для Web-интерфейса Prewikka, который входит в состав Prelude IDS. После всего этого мы скомпилировали OSSEC HIDS со специальными опциями, которые позволяют отправлять события OSSEC не только в syslog или СУБД, но и прямо в Prelude.
Теперь при появлении подозрительных событий в логах, OSSEC сгенерирует алерт, запишет его в файл /var/ossec/logs/ossec.log, отправит в Prelude IDS. Prelude в свою очередь запишет его в базу данных, а Prewiika при заходе на нее обеспечит отображение всех этих событий в удобочитаемом виде.
В этой статье я не описал довольно много вещей, которым, если будут заинтересованные читатели, можно посвятить еще не одну статью.
Например, как установить OSSEC на сервер без компилятора, как настроить и обслуживать БД для Prelude, как устанавливать и настраивать агентов OSSEC на другие сервера, как настраивать свои собственные правила генерации событий для OSSEC.
ссылка на оригинал статьи http://habrahabr.ru/post/190500/
Добавить комментарий