Описание
broctl – это интерактивная утилита командной оболочки и командной строки, используемая для управления автономными или распределенными установками Bro.
В этой статье вы установите Bro на Ubuntu 16.04 в автономном режиме.
Предпосылки
Вам необходимо иметь следующее:
Сервер Ubuntu 16.04 с брандмауэром и учетной записью пользователя без полномочий root с привилегиями sudo. Поскольку мы будем выполнять некоторые задачи, требующие дополнительной ОЗУ, вам нужно будет развернуть сервер с объемом памяти не менее 1 ГБ.
Postfix установлен как почтовый агент передачи (MTA) только на серверею. MTA, например Postfix, должен быть установлен для Bro для отправки уведомлений по электронной почте.
Шаг 1 – Установка зависимостей
Прежде чем вы сможете установить Bro, вам необходимо установить его зависимости.
Сначала обновите базу данных пакетов. Невыполнение этого требования перед установкой пакетов может привести к ошибкам диспетчера пакетов.
# sudo apt-get update
Зависимости Bro включают в себя ряд библиотек и инструментов, таких как Libpcap, OpenSSL и BIND8.
Для BroControl дополнительно требуется Python 2.6 или выше.
Поскольку мы собираем Bro из исходников, нам понадобятся дополнительные зависимости, такие как CMake, SWIG, Bison и компилятор C / C ++.
Вы можете установить все необходимые зависимости сразу:
# sudo apt-get install bison cmake flex g ++ gdb сделать libmagic-dev libpcap-dev libgeoip
Шаг 2 – Загрузка базы данных GeoIP
Здесь мы загрузим базу данных GeoIP, которую Bro будет использовать для геолокации IP-адреса.
Мы загрузим два сжатых файла, содержащих IPv4 и базу данных IPv6, распакуем их, а затем переместим их в каталог / usr / share / GeoIP.
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
Затем перейдите в соответствующий каталог, переименовав их в процессе:
# sudo mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat # sudo mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat
С базой данных GeoIP мы можем установить Bro на следующем этапе.
Шаг 3 – Установка Bro из исходников
Чтобы установить Bro из истосходников, сначала нужно клонировать репозиторий GitHub.
Git уже установлен по умолчанию на Ubuntu, поэтому вы можете клонировать репозиторий с помощью следующей команды.
Файлы будут помещены в каталог с именем bro.
# git clone --recursive git://git.bro.org/bro
Смените каталог:
# cd bro
Запустим конфигурацию bro. Это займет меньше минуты:
# ./configure
Затем используйте make для сборки программы.
Это может занять до 20 минут, в зависимости от вашего сервера
# make
Далее выполните:
# sudo make install
Bro будет установлен в каталоге / usr / local / bro.
Теперь вам нужно добавить каталог / usr / local / bro / bin в ваш $ PATH. Чтобы убедиться, что он доступен.
Наилучшим подходом для этого является указание пути в файле /etc/profile.d. Мы назовем этот файл 3rd -party.sh.
Создайте и откройте файл 3rd -party.sh.
# sudo nano /etc/profile.d/3rd-party.sh
Скопируйте и вставьте в нее следующие строки. Первая строка – пояснительный комментарий.
# Expand PATH to include the path to Bro's binaries export PATH=$PATH:/usr/local/bro/bin
Сохраните файл и закройте его. Теперь активируйте изменения с помощью source.
# source /etc/profile.d/3rd-party.sh
Теперь, когда установлен Bro, нам нужно внести некоторые изменения в конфигурацию, чтобы он работал правильно.
Шаг 4 – Настройка Bro
На этом этапе мы настроим несколько файлов, чтобы убедиться, что Bro работает правильно.
Все файлы находятся в каталоге / usr / local / bro / etc, и вот их описание:
node.cfg, который используется для настройки узлов для мониторинга.
network.cfg, который содержит список сетей в нотации CIDR, которые являются локальными для узла.
broctl.cfg, который является глобальным конфигурационным файлом BroControl для почты, логирования и других параметров.
Давайте посмотрим, что нужно изменить в каждом файле.
Настройка узлов для мониторинга
Чтобы настроить узлы Bro, которые будут отслеживаться, нам необходимо изменить файл node.cfg.
Из коробки Bro сконфигурирован для работы в автономном режиме.
Поскольку это автономная установка, вам не нужно изменять этот файл, но хорошо бы проверить правильность значений.
Откройте файл для редактирования.
# sudo nano /usr/local/bro/etc/node.cfg
В разделе bro найдите параметр интерфейса.
По умолчанию это eth0, и это должно соответствовать общему интерфейсу вашего сервера Ubuntu 16.04.
Если это не так, обязательно обновите его.
[bro] type=standalone host=localhost interface=eth0
Сохраните и закройте файл, когда закончите редактирование.
Настройка узлов частных сетей
Файл network.cfg – это где вы настраиваете, какие IP-сети принадлежит узлу (т. е. IP-сеть любого из интерфейсов вашего сервера, который вы хотите контролировать).
Давайте откроем этот файл:
# sudo nano /usr/local/bro/etc/networks.cfg
По умолчанию файл поставляется с тремя частными IP-блоками, уже настроенными как пример того, как вам нужно указывать.
# 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 172.16.0.0/12 Private IP space 192.168.0.0/16 Private IP space
Удалите существующие три записи, затем добавьте свои собственные.
Вы можете использовать ip addr show для проверки сетевых адресов для ваших интерфейсов сервера.
Окончательная версия вашего network.cfg должна выглядеть примерно так: ваши сетевые адреса заменены на:
203.0.113.0/24 Public IP space 198.51.100.0/24 Private IP space
Сохраните и закройте файл, когда вы закончите его редактирование.
Затем мы настроим параметры почты и ведения журнала.
Настройка настроек почты и ведения журнала
Файл broctl.cfg – это тот конфиграционный файл, где вы настраиваете, как BroControl обрабатывает свои отчеты по электронной почте и логгирование.
Большинство параметров по умолчанию не нужно изменять.
Вам просто нужно указать целевой адрес электронной почты.
Откройте файл для редактирования.
# sudo nano /usr/local/bro/etc/broctl.cfg
В разделе Mail Options в верхней части файла найдите параметр MailTo и измените его на реальный адрес электронной почты.
Все оповещения по электронной почте Bro будут отправлены на этот адрес.
. . . # Mail Options # Recipient address for all emails sent out by Bro and BroControl. MailTo = urmommy@example.com . . .
Сохраните файл и закройте его.
Шаг 5 – Управление Bro с BroControl
BroControl используется для управления установками Bro – запуск и остановка службы, развертывание Bro и выполнение других задач управления.
Если broctl вызывается с помощью sudo / usr / local / bro / bin / broctl, он запустит интерактивную оболочку:
Output Welcome to BroControl 1.5-21 Type "help" for help. [BroControl]
Вы можете выйти из интерактивной оболочки с помощью команды exit.
Из оболочки вы можете запустить любую команду Bro.
Одни и те же команды можно запускать непосредственно из командной строки без вызова оболочки.
Запуск команд в командной строке часто является более полезным, потому что он позволяет вам вывести вывод команды broctl в стандартную команду Linux.
Для остальной части этого раздела мы будем вызывать команды broctl в командной строке.
Во-первых, используйте broctl deploy для запуска Bro и убедитесь, что файлы, необходимые BroControl и Bro, обновлены на основе конфигураций на шаге 4.
# sudo /usr/local/bro/bin/broctl deploy
Вы также должны запустить эту команду, когда будут внесены изменения в файлы конфигурации или скрипты.
Примечание. Если Bro не запускается, вывод команды подскажет причину. Например, вы можете увидеть следующее сообщение об ошибке, даже если у вас установлен MTA:
Output bro not running (was crashed) Error: error occurred while trying to send mail: send-mail: SENDMAIL-NOTFOUND not found starting ... starting bro ...
Решение заключается в редактировании файла конфигурации BroControl, /usr/local/bro/etc/broctl.cfg и добавлении записи для Sendmail в конце раздела Mail Options:
. . . # Added for Sendmail SendMail = /usr/sbin/sendmail ######################################### # Logging Options . . .
Затем переустановите Bro с помощью sudo / usr / local / bro / bin / broctl.
Вы можете проверить статус Bro, используя команду status.
# sudo /usr/local/bro/bin/broctl status