Централизованный аудит логов с помощью Prelude-IDS


Mark Silinio <silinio(at)mail.ru>
последнее обновление 21/11/05



В данной заметке рассказывается про установку сервера и клиентов системы обнаружения вторжений(IDS - Intrusion Detection System) Prelude-IDS для аудита логов серверов.


Установка необходимого ПО

Использовал дистрибутив Gentoo Linux, и были установлены следующие программы(вместе с зависимостями разумеется): Libprelude + Prelude-LML ставились на клиентов

Далее по курсу:



Установка MySQL


В базу MySQL Prelude-Manager будет заносить информацию с сенсоров(клиентов) Prelude

Ставим:

# emerge =dev-db/mysql-4.1.15

Инициализация баз MySQL(при первичной установке):

# /usr/bin/mysql_install_db

Запуск MySQL:

# /etc/init.d/mysql start

Установка пароля для root-пользователя MySQL:

/usr/bin/mysqladmin -u root password 'new-password'

чтобы MySQL-сервер запускался при загрузке системы, выполним:

# rc-update add mysqld default

Так, с MySQL пока всё...

Настройка Prelude для работы с MySQL


Далее создаётся база prelude, правом на работу с которой обладает пользователь prelude

USE флаги для компиляции с MySQL:

# export USE="mysql -postgres"

Установка того что нада(с зависимостями разумеется):

# emerge libpreludedb prelude-manager

Создание в MySQL базы данных Prelude и делегирование прав на неё пользователю prelude:

# mysql -p -u root:
<вводим пароль root-пользователя mysql>
mysql> CREATE DATABASE prelude;
mysql> GRANT ALL PRIVILEGES ON prelude.* TO prelude@localhost 
    -> IDENTIFIED BY 'ПАРОЛЬ_prelude';

Загружаем схему базы prelude(нужно будет ввести пароль prelude для mysql):

$ mysql -u prelude prelude -p < /usr/share/libpreludedb/classic/mysql.sql

Правим /etc/prelude-manager/prelude-manager.conf:

include = /etc/prelude/default/global.conf
listen = 0.0.0.0 # указываем слушать на всех интерфейсах

[db]
type = mysql
host = localhost
port = 3306
name = prelude
user = prelude
pass = ПАРОЛЬ_prelude

[TextMod]
logfile = /var/log/prelude.log



Настройка клиента Prelude - Prelude-LML


Prelude-LML периодически просматривает лог-файлы указанные в конфигурации для поиска событий определённых в pcre.rules

Ставим:

# emerge prelude-lml

Указываем IP-адрес сервера prelude в /etc/prelude/default/client.conf:

server-addr = 192.168.1.7

Настраиваем опциональные параметры prelude-клиента в /etc/prelude/default/global.conf:

analyzer-name = prelude-lml
node-name = some-server.company.com
node-location = main office
node-category = dns

[Node-Address]
address = 192.168.0.7
netmask = 255.255.255.0
category = ipv4-addr

Настраиваем собственно Prelude-LML в /etc/prelude-lml/prelude-lml.conf:

# указываем за какими файлами вести наблюдение:
file = /var/log/messages 
file = /var/log/auth.log
file = /var/log/clamav/clamd.log
file = /var/log/apache/access.log

Если нужно наблюдение только за событиями определённого типа, то правьте файл /etc/prelude-lml/ruleset/pcre.rules

Регистрация Prelude-сенсора (клиента)


В процессе регистрации создаётся SSL сертификат для связи prelude сенсора с prelude-manager

Следующим образом,- на сервере выполняем:

# prelude-adduser registration-server prelude-manager 

На клиенте выполняем:

# prelude-adduser register prelude-lml "idmef:w admin:r" prelude-server.company.com

На клиенте набираем one-shot password что появился на серверной консоли(можно просто скопировать его), после чего подтверждаем("Approve registration [y/n]:") регистрацию на сервере. Должно появиться сообщение типа:

Registering analyzer "3644560054902044" with permission "idmef:w admin:r".
- Generating signed certificate for client.
- Sending server certificate to client.
- 192.168.0.7:34918 successfully registered.

Всё, теперь можно добавить prelude-lml в запуск по умолчанию:

# rc-update add prelude-lml default



Установка Prewikka - frontend'а к БД Prelude


Prewikka используется для удобного просмотра БД Prelude через web-интерфейс

Ставим:

# emerge prewikka

Создание в MySQL базы данных для Prewikka и делегирование прав на неё пользователю prewikka:

# mysql -p -u root:
<вводим пароль root-пользователя mysql>
mysql> CREATE DATABASE prewikka;
mysql> GRANT ALL PRIVILEGES ON prewikka.* TO prewikka@localhost 
    -> IDENTIFIED BY 'ПАРОЛЬ_prewikka';

Загружаем схему базы prewikka(нужно будет ввести пароль prewikka для mysql):

$ mysql -u prewikka prewikka -p < /usr/share/prewikka/database/mysql.sql 

Правим конфигурацию prewikka в /etc/prewikka/prewikka.conf:

[interface]
software: Prewikka
place: company ltd.
title: Prelude management

[idmef_database]
type: mysql
host: localhost
user: prelude
pass: ПАРОЛЬ_prelude
name: prelude

[database]
type: mysql
host: localhost
user: prewikka
pass: ПАРОЛЬ_prewikka
name: prewikka

[log stderr]

[auth loginpassword]
expiration: 60

Создаём init-скрипт для prewikka,- /etc/init.d/prewikka:

#!/sbin/runscript

depend() {
 need net
 use mysql
 }

start() {
 ebegin "Starting Prewikka http daemon"
 /usr/bin/prewikka-httpd 2>dev/null &
 eend
 }
stop() {
 ebegin "Stopping Prewikka http daemon"
 killall prewikka-httpd
 eend
 }

Делаем его исполняемым:

# chmod +x /etc/init.d/prewikka

И добавляем в уровень запуска по умолчанию:

# rc-update add prewikka default


Заходите на веб-интерфейс Prewikka,- логин/пароль admin/admin...


<- Назад
Valid HTML 4.01! Valid CSS!