news
Новый дата-центр TOR3 в Канаде
VB
15 июля 2022
Обновлено 20 сентября 2022

Установка Suricata на Ubuntu 20.04

Linux

Описание

Suricata — программный комплекс для сбора, мониторинга и аудита сетевой безопасности. Эта утилита «построена» вокруг группы правил, как предопределенных, так и созданных пользователем. В соответствии с этими правилами, весь поступающий трафик анализируется и (возможно) обрабатывается перед отправкой дальше на "клиентское" устройство.

В Suricata есть несколько готовых предопределенных правил, в соответствии с которыми система работает в «пассивном режиме», она просто информирует администратора без каких-либо изменений в проходящем трафике. Этот комплекс можно запустить на "шлюзовом" устройстве для «пропуска» всего офисного трафика или на каждом из клиентских компьютеров отдельно.

Перед началом работы

Требования к оборудованию зависят от топологии локальной сети и конкретных потребностей. В общем, считается верным правило "большее количество проверяемого трафика и обрабатываемых правил требует большего количества системных ресурсов". Необходимый минимум - 2 ядра процессора и 4 или 8 гигабайт оперативной памяти.

Подытоживая, требования такие:

Ubuntu 20.04, на сервере с не менее чем 4 ГБ ОЗУ и 2 ядрами процессора, доступ в систему от имени root или полномочия sudo, установленный системный брандмауэр.

Установка

Во-первых, необходимо подключить к операционной системе дополнительный репозиторий. Авторизуйтесь как суперпользователь и выполните команду:

add-apt-repository ppa:oisf/suricata-stable

Подтвердите операцию, если появится предупреждение системы безопасности.

рис.1

Собственно, программный пакет устанавливается за пару секунд одной командой:

apt-get update
apt-get install suricata

рис.2

Установленную программу стоит добавить в системный пул служб с автозапуском. Если в результате вы видели что-то подобное — автозапуск успешно включен:

systemctl enable suricata

рис.3

Стартовая конфигурация

Suricata "из коробки" удовлетворяет потребности большинства пользователей. Он работает в "безопасном" режиме, никакие сетевые пакеты не отбрасываются, только предупреждает о возможных угрозах. Этот подход хорош до тех пор, пока у вы не погрузитесь в описываемую область достаточно глубоко. Опий немного, но даже среди имеющихся есть полезные, например, Community ID.

Его использование может быть полезно в случае интеграции Suricata и других продуктов (например, Elasticsearch). Community ID добавляется в "главную" конфигурацию Suricata. Чтобы это сделать, установите для директивы "community-id:" значение "true" в файле /etc/suricata/suricata.yaml.

рис.4

Следующим шагом нужно определить имя подлежащего мониторингу сетевого интерфейса. Скорее всего, это будет интерфейс по умолчанию, найти его можно при помощи команды:

ip -j -p route show default

Небольшое пояснение: опция -j установит формат "вывода" как JSON, флаг -p улучшает читабельность. Собственно интерфейс стоит искать в строке "dev".

рис.5

Далее, имя найденного интерфейса нужно указать для Suricata, откройте файл /etc/suricata/suricata.yaml, найдите директиву interface в строке #550. Если нужно отслеживать несколько интерфейсов, можно добавить их все.

рис.6

По окончании редактирования, нужно перезапустить сервис командой:

service suricata restart

Обновление правил

Для добавления дополнительных правил был придуман инструмент suricata-update. С его помощью можно скачивать как свободные, так и распространяемые за плату наборы правил со сторонних сайтов. Также он позволяет посмотреть, которые из наборов правил используются в данный момент.

suricata-update list-sources

Чтобы установить новый набор правил, выполните команду:

suricata-update enable-source <ИМЯ_НАБОРА_ПРАВИЛ>

рис.7

Для применения изменений запустите suricata-update еще раз.

Проверка текущих настроек

Хорошей практикой является проверка конфигурации после каждого изменения. Делается это так:

suricata -T -v -c /etc/suricata/suricata.yaml # С флагом -T Suricata запускается в режиме «проверки», опция -c указывает путь к файлу конфигурации, параметр -v выводит множество дополнительной информации

рис.8

Запуск сервиса

Чтобы перезапустить демон после успешной проверки конфигурации, выполните:

service suricata restart>

Для проверки статуса службы применяется команда

service suricata status

рис.9

Проверка действующих правил

Чтобы проверить, действительно ли трафик обрабатывается сообразно вашим ожиданиям, установите инструмент jq, это сделает анализ журнала более простым. Для тестирования можно использовать специальным образом созданный файл.

apt-get install jq
curl http://testmynids.org/uid/index.html

рис.10

Для поиска идентификаторов предупреждений можно посмотреть в лог-файлы:

tail -f /var/log/suricata/fast.log
tail -f /var/log/suricata/eve.log

Далее, можно посмотреть описание угрозы более детально:

jq 'select(.alert .signature_id==<ID_события>)' /var/log/suricata/eve.json

рис.11

Итоги

Вы научились устанавливать и конфигурировать набор инструментов Suricata. Узнали, что можно использовать Community Flow ID для интеграции данного ПО с другими диагностическими инструментами. Также теперь вы умеете проверять настройки сервиса и анализировать с его помощью HTTP-трафик.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 2
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300