Ключевые слова:freebsd, snort, security, (найти похожие документы)
From: HFSC <[email protected]>
Newsgroups: mail
Date: Mon, 24 Jul 2003 14:31:37 +0000 (UTC)
Subject: Установка snort совместно с acid и snortsam на FreeBSD
Оригинал: http://alpha.sytes.net/~holdman/snortsam.html
Установка snort совместно с acid и snortsam на FreeBSD.
Snort - мощный и гибкий инструмент для обнаружения различного вида
атак.
Snortsam - плагин для snort, обеспечивающий блокировку атак, имеет
намного большие возможности чем широко используемый guardian. Основной
отличие - может обслуживать множество фаерволов+snort с отдельной
машины. Подробнее можно почитать на http://www.snortsam.net
Oinkmaster - скрипт для обновления правил snort.
Acid - php-поисковая машина, работающая с базой данных Snort'a.
Предполагается что уже установлены mysql и apache. Их установка и
настройка здесь описыватся не будет. Так как snortsam использует
модуль для ipf (или pf), на машине должен быть установлен ipf как
основной фаервол если версия FreeBSD ниже 5.1 или же ipf или pf в
случае FreeBSD 5.1.
Для начала необходимо создать юзера от которого будет работать snort.
pw useradd snort -d /nonexistent -s /sbin/nologin
pw groupadd snort
Устанавливаем snort.
cd /usr/ports/security/snort && make install
Создаем базу snort:
cd work/snort-*
Открываем файл create_mysql и добавляем в начало
CREATE DATABASE snort;
USE snort;
Создаем базу snort:
mysql -u root -ppass < create_mysql
Коннектимся и выставляем права доступа: mysql -u root -ppass
mysql>GRANT ALL PRIVILEGES ON snort.* TO snort@localhost IDENTIFIED BY 'snort';
mysql>GRANT ALL PRIVILEGES ON snort.* TO acid@localhost IDENTIFIED BY 'acid';
Качаем бинарник snort'a с поддержкой mysql и snortsam с
http://www.snortsam.net/files/snort-2.0-plugin/compiled/freebsd/snort-2.0-mysql-sam.tar.gz
Распаковываем и заменяем старый бинарник snort'a:
tar -xzvpf snort-2.0-mysql-sam.tar.gz -C /usr/local/bin
Копируем образец конфига:
cp /usr/local/etc/snort.conf-sample /usr/local/etc/snort.conf
Открываем и правим snort.conf:
Меняем "VAR_HOME_NET any" на "VAR_HOME_NET адрес_сети".
Меняем "var EXTERNAL_NET any" на "var EXTERNAL_NET !$HOME_NET".
Меняем "var RULE_PATH ../share/snort" на "var RULE_PATH /usr/local/share/snort/rules".
В разделе плагинов добавляем строку для snortsam в формате:
output alert_fwsam:[хост]:[порт]/[пароль].
В моем случае snortsam запущен на одной машине где и snort
output alert_fwsam: 127.0.0.1:898/snortsam
Добавляем строку для acid:
output database: alert, mysql, user=snort password=snort dbname=snort host=127.0.0.1
Устанавливаем oinkmaster.
cd /usr/ports/security/oinkmaster && make install clean
В /usr/local/etc/oinkmaster.conf ставим
url = http://www.snort.org/dl/rules/snortrules-stable.tar.gz
и skipfile sid-block.map
mkdir -m 700 /var/backups/snort && chown snort /var/backups/snort
Создаем скрипт rules_update.sh и запускаем его.
#!/bin/sh
if [ ! -d /usr/local/share/snort/rules ] ; then
mkdir -m 700 /usr/local/share/snort/rules
chown snort /usr/local/share/snort/rules
fi
cd /var/backups/snort
su -fm snort -c '/usr/local/bin/oinkmaster -o
/usr/local/share/snort/rules -b /var/backups/snort -r'
Если все нормально и правила обновились, делаем
ln -s /usr/local/share/snort/rules/sid-msg.map /usr/local/etc
Создаем файл /usr/local/etc/sid-block.msg и вносим туда записи в
формате
sid: who[how], time;
Файл sid-block.map нужен чтобы избежать редактирования правил
непосредственно,т.к. oinkmaster удалит все ваши изменения.
sid надо взять из файла sid-msg.map.
who может быть - src,dst
direction может быть - in, out, either, both, this, conn
time может быть
'days','months','weeks','years','minutes','seconds','hours, значение 0
означает бесконечный.
Подробнее на http://www.snortsam.net/files/snortsam-v2_multi-threaded/FAQ
Образец файла sid-block.map
121: src, 1 day
122: src, 1 day
123: src, 1 day
Устанавливаем acid.
cd /usr/port/security/acid && make install
По умолчанию acid ставится в /usr/local/www/acid
Создаем таблицы acid'a в базе snort:
Открываем work/acid/create_acid_tbls_mysql.sql и добавляем в начало
"USE snort;"
Выполняем mysql -u root -ppass < work/acid/create_acid_tbls_mysql.sql
Открываем /usr/local/www/acid/acid_conf.php и ставим свои пути к либам
и параметры для доступа к базе snort.
Устанавливаем snortsam.
Качаем с http://www.snortsam.net распаковываем и выполняем makesnortsam.sh.
Создаем файл /usr/local/etc/snortsam.conf.
Основные опции snortsam.
defaultkey password - пароль по умолчанию для всех машин. Если пароль
указанный в snortsam.conf не совпадает с паролем,указанным в
snort.conf, все запросы с данного фаервола игнорируются.
port number - порт на котором будет слушать snortsam (по умолчанию
898).
accept host/mask, password - список машин с которых snortsam будет
ждать запросов. Допускается указание одного хоста на линию.
keyinterval time - интервал запроса/обновления ключа. Можно указывать
hours,days,months,weeks,years (по умолчанию 4 часа).
dontblock host/mask - Перечисление машин,которые не должны
блокироваться.
override host/mask,time - позволяет изменять время блокировки для
указанного адреса,чем указано в правилах snort.
rollbackhosts amount - snortsam будет хранить записи о заблокированых
адресах на указанное число раз, при превышении порога блокировки,
блокировка снимается, дабы не перегружать фаервол.
rollbackthreshold amount / time - задает порог блокировки, при
превышении порога включается правило rollbackhosts.
rollbacksleeptime time - если превышен порог блокировки, игнорировать
запросы от snort на указанное время.
skipinterval time - игнорировать повторяющиеся запросы на блокировку
на указанное время (по умолчанию 10 секунд).
skiphosts amount - запоминать число машин для проверки повторяющихся
запросов на блокировку.
logfile file - snortsam будет писать в указанный файл.
loglevel level - от 0 до 3 . Для начала поставьте 3.
include file - указание на дополнительный конфигурационный файл.
disableseqnocheck - отключает проверку пакетов .
fwsamipflip - не допускает блокировку машины на которой запущен
snortsam.
fwexec path_to_firewall - если snortsam запущен непосредственно на
фаерволе,вызывать программу-фаервол напрямую.
fwsam host - при блокировке отсылается шифрованный пакет на указанную
машину (один хост на линию).
nothreads - не использовать треды.
ipf interface loglevel - использование ipf плагина для блокировки.
loglevel по умолчанию local7.info.
email smtpserver recipient sender - уведомление о блокировках по
почте.
Подробнее об опциях snortsam можно почитать в README.conf.
Запускаем snortsam: snortsam /usr/local/etc/snortsam.conf &
Проверяем snort: snort -i interface -c /usr/local/etc/snort.conf -T
Должны быть следущие строки:
INFO => [Alert_FWsam](AlertFWsamSetup) Using sid-map file:
/usr/local/etc/sid-block.map
INFO => [Alert_FWsam](FWsamCheckIn) Connected to host 127.0.0.1.
Accepted connection from 127.0.0.1
Had to use initial key!
database: compiled support for ( mysql )
database: configured to use mysql
database: user = snort
database: password is set
database: database name = snort
database: host = 127.0.0.1
database: detail level = fast
database: sensor name = 80.235.50.112
database: sensor id = 17
database: schema version = 106
database: using the "alert" facility
1438 Snort rules read...
1438 Option Chains linked into 187 Chain Headers
0 Dynamic rules
Если все в порядке,запускаем snort.
snort -D -i interface -c /usr/local/etc/snort.conf -u snort -g snort -Np
Смотрим в лог snortsam. Должно быть чтото типа...
127.0.0.1, 3, snortsam, Accepted connection from 127.0.0.1.
127.0.0.1, 3, snortsam, Adding sensor 127.0.0.1 to list.
>Доброго времени суток...
>У меня все установилось вроде нормально...
>только вот когда я пытаюсь пропачит snort-2.1.3
>рекомендованными пачами snortsam, при сборке выдаеться вот такое:
Вот такая проблема с Snort
Ошибка вот такая
Initializing Network Interface rl0
ERROR:OpenPcap() FSM compilation failed:syntax error
PCAP command:start
Fatal Error,Quitting
Еще и грузит проц,а потом вываливается с процесов