Установка системы обнаружения попыток вторжения Bro на Ubuntu 12.04
Linux, Ubuntu, VPS, Без категорий | Комментировать запись
Вступление
Система обнаружения вторжений (IDS) Bro разработана Верном Паксоном, который до сих пор руководит проектом совместно с основной командой исследователей и разработчиков Международного института информатики в Беркли, Калифорния, и Национального центра суперкомпьютерных приложений в Урбана-Шампейн, штат Иллинойс. Во время презентации Shmoocon в 2013 Лиам Рэндалл заявил, что “IDS Bro – это лишь первое большое приложение, написанное в языке сетевого программирования Bro”. Другими словами, Bro – это не совсем IDS; это, скорее, скриптовая платформа, которая предназначена для работы с сетевым трафиком.
Фреймворк Bro отличается от большинства стандартных систем обнаружения вторжений, поскольку он разрабатывался с целью обеспечить одновременно гибкий и продуктивный анализатор нескольких протоколов вне зависимости от используемых ими портов. Система Bro охватывает весь диапазон важнейших функций, а именно захват пакетов, контроль трафика, запись потока данных, отправка оповещений и написание скриптов. Кроме того, система мониторинга сетевой безопасности Bro предоставляет профессиональным пользователям комплексные журналы для анализа и изучения транзакционных данных в сети. Bro является программным обеспечением с открытым исходным кодом, его платный аналог – Broalla.
1: Обновление операционной системы
Войдя на VPS, нужно запустить следующую команду как root, чтобы обновить операционную систему:
apt-get update && apt-get upgrade
Если ядро было обновлено, нужно перезагрузить сервер, прежде чем продолжить.
2: Установка зависимостей
Далее нужно установить требуемые зависимости, запустив как root следующую команду. Чтобы получить дополнительную информацию по необходимым зависимостям, перейдите по данной ссылке.
apt-get install cmake make gcc g++ flex bison libpcap-dev libgeoip-dev libssl-dev python-dev zlib1g-dev libmagic-dev swig2.0
Возможно, некоторые из этих пакетов уже установлены. В таком случае команда apt-get загрузит и установит недостающие пакеты.
3: Установка LibGeoIP
Bro может использовать библиотеку GeoIP, которая уже установлена (libgeoip-dev в вышеприведенной команде). В завершение нужно установить базу данных GeoLite перед запуском Bro.
Установка базы данных GeoIPLite
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoLiteCityv6.dat.gz
Затем нужно перейти к файлам базы данных в каталоге /usr/share/GeoIP/, выполнив следующие команды:
mv GeoLiteCity.dat /usr/share/GeoIP/GeoLiteCity.dat
mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoLiteCityv6.dat
Теперь нужно создать ссылку на файлы GeoLiteCit.dat, GeorLiteCityv6.dat, а также на GeoIPCity.dat и GeoIPCityv6.dat соответственно. Если при сборке Bro LibGeoIP была установлена, но соответствующие ссылки на файлы не были созданы, в /nsm/bro/logs/current/stderr.log будут выведены следующие ошибки:
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCity.dat
1392083947.452043 Fell back to GeoIP Country database
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCityv6.dat
Чтобы создать ссылки на файлы, используйте следующие команды:
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCity.dat
1392083947.452043 Fell back to GeoIP Country database
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCityv6.dat
4: Установка системы обнаружения вторжений Bro
Теперь нужно скачать систему Bro из исходного кода и установить ее. Для этого нужно загрузить tarball, а затем извлечь и запустить файлы.
Чтобы загрузить и распаковать tarball системы Bro как root, используйте:
wget http://www.bro.org/downloads/release/bro-2.2.tar.gz
tar -xvzf bro-2.2.tar.gz
Чтобы собрать приложение, нужно изменить каталоги при помощи команды ” cd bro-2.2″ и указать каталог, в который будет установлена система Bro, с помощью опции –prefix=. В приведенном ниже примере система Bro будет установлена в /nsm/bro с помощью команды ./configure –prefix=/nsm/bro. Вот полный пример настройки, сборки и установки приложения Bro:
cd bro-2.2
./configure --prefix=/nsm/bro
make
make install
Если не произошло никаких ошибок, добавьте Bro в PATH:
export PATH=/nsm/bro/bin:$PATH
Также можно внести PATH=/opt/bro2/bin:$PATH в файл ~/.profile, чтобы данные изменения оставались активными постоянно.
Настройка системы Bro
Bro – очень мощный инструмент. Для выполнения базовых действий по установке следуйте инструкциям на странице проекта.
С помощью предпочитаемого текстового редактора отредактируйте следующие 3 файла:
- $PREFIX/etc/node.cfg => настройте сетевой интерфейс для мониторинга (интерфейс = eth0);
- $PREFIX/etc/networks.cfg => настройте локальные сети (10.0.0.0/8 Private IP space);
- $PREFIX/etc/broctl.cfg => измените адрес MailTo и ротацию логов.
Примечание: $PREFIX ссылается на root-каталог инсталляции Bro, то есть, на каталог, установленный командой ./configure –prefix=. Используя предыдущий пример, $PREFIX нужно заменить на /nsm/bro (то есть nsm/bro/etc/node.cfg).
Настройки файла node.cfg
Если система настроена с помощью единого интерфейса, можно открыть файл по умолчанию node.cfg, но только не для того, чтобы изменить прослушивающий сеть интерфейс. К примеру, команда ifconfig выведет примерно следующее:
root@brodemo:/nsm/bro/etc# ifconfig
eth0 Link encap:Ethernet HWaddr 04:01:10:15:fa:01
inet addr:162.243.XXX.XXX Bcast:162.243.XXX.XXX Mask:255.255.255.0
inet6 addr: fe80::601:10ff:fe15:fa01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:998663 errors:0 dropped:0 overruns:0 frame:0
TX packets:27341 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:130635788 (130.6 MB) TX bytes:4043010 (4.0 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2174 errors:0 dropped:0 overruns:0 frame:0
TX packets:2174 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:114442 (114.4 KB) TX bytes:114442 (114.4 KB)
Данный вывод показывает, что в системе есть только один интерфейс (eth0); раскомментировав следующие строки, можно использовать настройки по умолчанию:
root@brodemo:~# cat /nsm/bro/etc/node.cfg
# Example BroControl node configuration.
#
# This example has a standalone node ready to go except for possibly changing
# the sniffing interface.
# This is a complete standalone configuration. Most likely you will
# only need to change the interface.
[bro]
type=standalone
host=localhost
interface=eth0
## Below is an example clustered configuration. If you use this,
## remove the [bro] node above.
#[manager]
#type=manager
#host=host1
#
#[proxy-1]
#type=proxy
#host=host1
#
#[worker-1]
#type=worker
#host=host2
#interface=eth0
#
#[worker-2]
#type=worker
#host=host3
#interface=eth0
#
#[worker-3]
#type=worker
#host=host4
#interface=eth0
Настройки файла networks.cfg
Предполагается, что система была настроена при помощи одного интерфейса, как в примере выше; откройте файл networks.cfg, содержащий настройки локальных/частных сетей.
root@brodemo:~# cat /nsm/bro/etc/networks.cfg
# List of local networks in CIDR notation, optionally followed by a
# descriptive tag.
# For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes.
10.0.0.0/8 Private IP space
192.168.0.0/16 Private IP space
Настройки файла broctl.cfg
Кроме других функций файл broctl.cfg содержит адрес получателя всех электронных писем, отправленных Bro и BroControl, а также интервалы ротации логов.
5: Запуск системы Bro
Теперь нужно использовать оболочку broctl, которая будет выполнять команды bro. Введите broctl как пользователь root; если путь не был задан, как было показано выше, команду можно выполнить с помощью полного пути: /nsm/bro/bin/broctl
# broctl
warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run)
Welcome to BroControl 1.2
Type "help" for help.
[BroControl] >
Поскольку это новая установка, сначала нужно запустить команду install. Затем нужно запустить start с последующим статуса системы Bro:
[BroControl] > install
warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run)
creating policy directories ... done.
installing site policies ... done.
generating standalone-layout.bro ... done.
generating local-networks.bro ... done.
generating broctl-config.bro ... done.
updating nodes ... done.
[BroControl] > start
starting bro ...
[BroControl] > status
Name Type Host Status Pid Peers Started
bro standalone localhost running 15837 0 10 Feb 20:57:35
[BroControl] >
Теперь система определения вторжений Bro запущена. Чтобы получить более подробную информацию, читайте официальную документацию приложения.
Tags: Bro, GeoLite, IDS, LibGeoIP, Linux, Ubuntu, Ubuntu 12.04, VPS