Ну тогда вот.... бета-версия... просьба исправлять и дополнять..

==================================================================
OSSEC является IDS-системой (Система обнаружения сетевых атак и вторжений).
IDS – (Intruder Detection System) предупреждает администратора сети о подозрительных
и сомнительных действиях и явлениях в компьютерной сети.
OSSEC можно установить в режиме мониторинга одного отдельного хоста
(порт /usr/ports/security/ossec-hids-local/)
или в режиме мониторинга нескольких хостов сети
(порт /usr/ports/security/ossec-hids-server).
Лично для меня предпочтительней версия "server", т.к. серверов "по периметру" у меня довольно много.
Ставить будем из портов. На настоящий момент версия 1.4.
Желающие могут посетить официальный сайт программы
http://www.ossec.net/main/downloads/ и скачать последнюю версию (1.5).
Код: Выделить всё
paloma# cd /usr/ports/security/ossec-hids-server/
paloma# make install && make clean
Для автоматического запуска сервиса при старте системы, добавляем в rc.conf
Рабочая директория программы /usr/local/ossec-hids/
Нам необходимо отредактировать основной конфигурационный файл ossec.conf
Располагается он в /usr/local/ossec-hids/etc
Приводим файл к такому виду:
Код: Выделить всё
<ossec_config>
<global>
<email_notification>yes</email_notification>
<email_to>root@domain.com</email_to> # е-майл на который слать алерты
<smtp_server>smtp.domain.com.</smtp_server> # smtp-сервер
<email_from>ossecm@domain.com.</email_from> # от чьего имени отсылать алерты
</global>
# в этой секции описываем какие правила загружать
# можете добавить/удалить то что нужно
# конфигурационные файлы всех доступных правил находятся в /usr/local/ossec-hids/rules
<rules>
<include>rules_config.xml</include>
<include>sshd_rules.xml</include>
<include>syslog_rules.xml</include>
<include>pix_rules.xml</include>
<include>named_rules.xml</include>
<include>pure-ftpd_rules.xml</include>
<include>proftpd_rules.xml</include>
<include>web_rules.xml</include>
<include>apache_rules.xml</include>
<include>ids_rules.xml</include>
<include>squid_rules.xml</include>
<include>firewall_rules.xml</include>
<include>postfix_rules.xml</include>
<include>sendmail_rules.xml</include>
<include>spamd_rules.xml</include>
<include>msauth_rules.xml</include>
<include>attack_rules.xml</include>
</rules>
<syscheck>
<!-- Frequency that syscheck is executed -- default every 2 hours -->
<frequency>7200</frequency>
<!-- Directories to check (perform all possible verifications) -->
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/bin,/sbin</directories>
<directories check_all="yes">/usr/bin,/usr/sbin</directories>
# файлы которые не проверяем
<!-- Files/directories to ignore -->
<ignore>/etc/mtab</ignore>
<ignore>/etc/hosts.deny</ignore>
<ignore>/etc/mail/statistics</ignore>
<ignore>/etc/random-seed</ignore>
<ignore>/etc/adjtime</ignore>
</syscheck>
<rootcheck>
<rootkit_files>/usr/local/ossec-hids/etc/shared/rootkit_files.txt</rootkit_files>
<rootkit_trojans>/usr/local/ossec-hids/etc/shared/rootkit_trojans.txt</rootkit_trojans>
<system_audit>/usr/local/ossec-hids/etc/shared/system_audit_rcl.txt</system_audit>
</rootcheck>
# здесь описываем доверенные адреса
<global>
<white_list>127.0.0.1</white_list>
<white_list>192.168.1.19</white_list>
</global>
<remote>
<connection>secure</connection>
</remote>
<alerts>
<log_alert_level>1</log_alert_level>
<email_alert_level>7</email_alert_level>
</alerts>
<command>
<name>host-deny</name>
<executable>host-deny.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>firewall-drop</name>
<executable>firewall-drop.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>disable-account</name>
<executable>disable-account.sh</executable>
<expect>user</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<!-- Active Response Config -->
<active-response>
<!-- This response is going to execute the host-deny
- command for every event that fires a rule with
- level (severity) >= 6.
- The IP is going to be blocked for 600 seconds.
-->
<command>host-deny</command>
<location>local</location>
<level>6</level>
<timeout>600</timeout>
</active-response>
<active-response>
<!-- Firewall Drop response. Block the IP for
- 600 seconds on the firewall (iptables,
- ipfilter, etc).
-->
<command>firewall-drop</command>
<location>local</location>
<level>6</level>
<timeout>600</timeout>
</active-response>
# здесь описываем какие файлы мониторить
# обратите внимание на пути, в дефолтном конфиге они не совсем правильные
# здесь так же можно добавить/удалить файлы для мониторинга
<!-- Files to monitor (localfiles) -->
<localfile>
<log_format>syslog</log_format>
<location>/var/log/messages</location>
</localfile>
<localfile>
<log_format>syslog</log_format>
<location>/var/log/auth.log</location>
</localfile>
<localfile>
<log_format>syslog</log_format>
<location>/var/log/security</location>
</localfile>
<localfile>
<log_format>syslog</log_format>
<location>/var/log/xferlog</location>
</localfile>
<localfile>
<log_format>syslog</log_format>
<location>/var/log/maillog</location>
</localfile>
<localfile>
<log_format>apache</log_format>
<location>/var/log/httpd-access.log</location>
</localfile>
<localfile>
<log_format>apache</log_format>
<location>/var/log/httpd-error.log</location>
</localfile>
</ossec_config>
На этом всё.
Запускаем:
Код: Выделить всё
paloma# /usr/local/etc/rc.d/ossec-hids start
Starting OSSEC HIDS v1.4 (by Daniel B. Cid)...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-remoted...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.
В такой конфигурации OSSEC вполне функциональна и способна обслуживать хост на котором установлена.
Но мы ведь не собираемся ограничиваться мониторингом одного хоста.
На остальных серверах, которые мы хотим включить в IDS, ставим клиента.
Код: Выделить всё
srv-01# cd /usr/ports/security/ossec-hids-client/
srv-01# make install && make clean
Конфигурационные файлы клиента располагаются в тех же директориях, что и у сервера.
Отличия ossec.conf клиента заключается в секции:
Код: Выделить всё
<ossec_config>
<client>
<server-ip>192.168.1.19</server-ip>
</client>
Здесь нужно указать адрес сервера.
Также отредактируйте секции <localfile>, отметьте нужные лог-файлы.
ВАЖНО!
Для нормального соединения клиента с сервером, откройте в файерволе udp-порт 1514.
Прежде чем запускать клиента, нам необходимо сгенерировать ключ доступа к серверу.
Для этого на сервере выполняем команду:
Код: Выделить всё
paloma# /usr/local/ossec-hids/bin/manage_agents
****************************************
* OSSEC HIDS v1.4 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: srv-01 # вводим имя клиента
* The IP Address of the new agent: 102.168.1.15 # вводим ИП клиента
* An ID for the new agent[001]:
Agent information:
ID:001
Name:srv-01
IP Address:102.168.1.15
Confirm adding it?(y/n): y # жмем "y"
Agent added.
****************************************
* OSSEC HIDS v1.4 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: srv-01, IP: 102.168.1.15
Provide the ID of the agent to extract the key (or '\q' to quit): 001 # вводим ID клиента
Agent key information for '001' is:
MDAxIHNydi0wMSAxMDIuMTY4LjEuMTUgMTc5N2ZhOWI5YjkxN2U1ZTkxMWVjZWU4Nm \
Y5ODc1MTU3Yzc1YzNjYmNhMTY4ZjJhYzdjMjkxM2M5MTNkY2I3Mg== # это полученный ключ, копируем в буфер
** Press ENTER to return to the main menu.
****************************************
* OSSEC HIDS v1.4 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: q
** You must restart the server for your changes to have effect.
manage_agents: Exiting ..
paloma#
Теперь тоже самое запускаем на клиенте.
Код: Выделить всё
srv-01# /usr/local/ossec-hids/bin/manage_agents
****************************************
* OSSEC HIDS v1.4 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: i # жмен "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): MDAxIHNydi0wMSAxMDIuMTY4LjEuMTUgMTc5N2ZhOWI5YjkxN2U1ZTkxMWVjZW \
U4NmY5ODc1MTU3Yzc1YzNjYmNhMTY4ZjJhYzdjMjkxM2M5MTNkY2I3Mg== # вставляем сюда ключ
# сгенерированный на сервере
После этого можно запускать агента.
Код: Выделить всё
srv-01# /usr/local/etc/rc.d/ossec-hids start
Starting OSSEC HIDS v1.4 (by Daniel B. Cid)...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-remoted...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.
Остальные сервера-клиенты устанавливаем/настраиваем также.
На данный момент у меня их мониторится 7 штук Unix-серверов.
Клиента можно установить и на windows-сервера.
Скачать виндовс-клиента мжно на офсайте.
Уведомления о подозрительной сетевой активности, а также о блокировке нарушителей,
будут присылаться на е-майл, указанный в конфиге.
Но не плохо бы визуально наблюдать происходящее и иметь отчеты.
Для этого ставим web-интерфейс к нашей OSSEC.
Берем всё на том же офсайте
http://www.ossec.net/files/ui/ossec-wui-0.3.tar.gz
Распаковываем:
Код: Выделить всё
# tar -zxvf ossec-wui-0.3.tar.gz
# mv ossec-wui-0.3 /usr/local/www/ossec-wui
Запускаем установочный скрипт.
Код: Выделить всё
# cd /usr/local/www/ossec-wui
# ./setup.sh
...
Вобщем то его можно и не запускать...
Всё что делает этот скрипт, так это добавляет пользователя в .htaccess
если авторизация при доступе к веб-интерфейсу вам не нужна, то .htaccess не нужен.
Далее нужно добавить пользователя от имени которого работает apache (у меня это www) в группу ossec
Даем разрешения пользователю "www" на доступ к директории tmp
Правим файл /usr/local/www/ossec-wui/ossec_conf.php
(прописываем правильный путь к рабочей директории)
Добавляем алиас в httpd.conf
Код: Выделить всё
Alias /ossec "/usr/local/www/ossec-wui/"
<Directory "/usr/local/www/ossec-wui/">
Options none
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 192.168.1.21 192.168.0.20
</Directory>
Перезапускаем apache
Пробуем зайти по адресу http://myserver_ip/ossec/
Если всё сделано правильно, увидим подобную картинку: