Гид по технологиям

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

4 min read Инфобезопасность Обновлено 28 Nov 2025
Установка Suricata на Ubuntu 22.04
Установка Suricata на Ubuntu 22.04

Схема или логотип Suricata, иллюстрация анализа сети

Что такое Suricata

Suricata — это бесплатный и открытый инструмент для сетевого анализа и обнаружения угроз, разработанный OISF. Поддерживает режимы IDS и IPS. Правила и сигнатуры определяют, какие пакеты помечать и блокировать. Suricata — распространённая альтернатива Snort и даёт глубокий взгляд на сетевые события.

Краткое определение: IDS — система обнаружения вторжений; IPS — система предотвращения вторжений.

Основные требования

  • Сервер с Ubuntu 22.04.
  • Настроен root или пользователь с sudo.

Перед началом

Обновите пакеты и установите зависимости. Это снизит шанс ошибок при компиляции и установке.

apt update -y
apt upgrade -y

Затем установите набор библиотек и инструментов сборки:

apt install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 make libmagic-dev libjansson-dev libjansson4 pkg-config libnspr4-dev libnss3-dev liblz4-dev rustc cargo python3-pip python3-distutils
apt install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

Важно: убедитесь, что на сервере достаточно свободного места и установлен современный компилятор (gcc). Если у вас мало опыта с компиляцией, удобнее использовать пакет из репозитория (ниже).

Установка Suricata из исходников

Шаги ниже устанавливают Suricata из архива исходного кода. Это даёт больше контроля над опциями сборки.

Скачайте релиз (пример для версии 6.0.8):

wget https://www.openinfosecfoundation.org/download/suricata-6.0.8.tar.gz

Распакуйте архив:

tar xzf suricata-6.0.8.tar.gz

Перейдите в каталог и запустите конфигурацию с нужными опциями:

cd suricata-6.0.8
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var

Пример части вывода конфигурации (сокращённо):

  Host:                                    x86_64-pc-linux-gnu
  Compiler:                                gcc (exec name) / g++ (real)
  GCC Protect enabled:                     no
  GCC march native enabled:                yes
  To build and install run 'make' and 'make install'.

Соберите и установите Suricata:

make
make install-full

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

You can now start suricata by running as root something like:
  /usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0

Emerging Threats правила будут установлены, а обновление правил выполняется через suricata-update.

Установка Suricata из репозитория Ubuntu

Этот способ проще и быстрее. Он полезен для продакшен-систем, где важна воспроизводимость.

Установите вспомогательные пакеты:

apt install gnupg2 software-properties-common curl wget git unzip -y

Добавьте официальный PPA и обновите кеш:

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

Проверьте доступную версию пакета:

apt-cache policy suricata

Пример вывода:

suricata:
  Installed: (none)
  Candidate: 1:6.0.4-3

Установите Suricata и утилиту jq (полезна для парсинга JSON-логов eve.json):

apt install suricata jq

Проверьте собранную версию:

suricata --build-info

Пример вывода (сокращённо):

This is Suricata version 6.0.8 RELEASE
Features: NFQ PCAP_SET_BUFF AF_PACKET ...
Suricata Configuration:
  AF_PACKET support:                       yes
  NFQueue support:                         yes
  Detection enabled:                       yes

Настройка Suricata

Редактируйте основной конфигурационный файл, укажите HOME_NET и интерфейс.

nano /etc/suricata/suricata.yaml

Найдите и измените строки, например:

    HOME_NET: "[10.0.2.0/24]"

    EXTERNAL_NET: "!$HOME_NET"

af-packet:
  - interface: eth0
    sip:
    enabled: no

Сохраните файл. Обновите и проверьте конфигурацию правил:

suricata-update
suricata -T -c /etc/suricata/suricata.yaml -v

Пример вывода теста загрузки конфигурации:

18/10/2022 -- 13:45:16 -  - 28627 signatures processed. ...
18/10/2022 -- 13:45:19 -  - Configuration provided was successfully loaded. Exiting.

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

Включите автозапуск и запустите сервис:

systemctl enable --now suricata
systemctl status suricata

Пример ожидаемого статуса:

Active: active (running) since Tue 2022-10-18 13:38:52 UTC; 6min ago
.../usr/bin/suricata -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid --af-packet -D -vvv

Также можно посмотреть доступные режимы запуска:

suricata --list-runmodes

Верификация и тестирование

Перед ручным запуском отключите аппаратные оффлоады на интерфейсе:

ethtool -K eth0 gro off lro off

Остановите сервис и удалите PID, если нужно запустить вручную:

systemctl stop suricata
rm -rf /var/run/suricata.pid
suricata -D -c /etc/suricata/suricata.yaml -i eth0

Для простого теста можно сгенерировать SYN-флуд с удалённой машины с помощью hping3 (тестируйте только в контролируемой среде):

hping3 -S -p 80 --flood --rand-source suricata-ip -I eth0 -c 50

Просматривайте быстрые логи:

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

Пример детектов, которые вы можете увидеть:

10/18/2022-14:01:38.569298  [] [1:2210008:2] SURICATA STREAM 3way handshake SYN resend different seq on SYN recv [] ...

Полезные команды — шпаргалка

  • Проверка конфигурации: suricata -T -c /etc/suricata/suricata.yaml -v
  • Запуск в фоне: suricata -D -c /etc/suricata/suricata.yaml -i eth0
  • Сброс PID: rm -rf /var/run/suricata.pid
  • Обновление правил: suricata-update
  • Парсинг eve.json: jq . /var/log/suricata/eve.json
  • Отключение оффлоада: ethtool -K eth0 gro off lro off

Рекомендации по безопасности и производительности

  • Запускайте Suricata на выделенной машине или VM с достаточной CPU и памятью.
  • Для высоких нагрузок используйте AF_PACKET или NFQ с правильной настройкой потоков.
  • Включите логирование eve.json и отправляйте копии логов в централизованную систему (SIEM).
  • Ограничьте доступ к /etc/suricata и к логам для привилегированных пользователей.
  • Регулярно обновляйте правила и Suricata с учётом тестирования в staging среде.

Решение проблем — когда что-то идёт не так

  • Suricata не запускается: проверьте права на /etc/suricata и наличие зависимостей.
  • Блокировки/пропуски пакетов: проверьте аппаратный оффлоад и настройку сетевого драйвера.
  • Мало производительности: уменьшите объём логирования, настройте detect-thread и af-packet.
  • Не загружаются правила suricata-update: проверьте сетевой доступ и ключи репозитория.

Важно: не применяйте правила в blocking/IPS режиме на бойевой инфраструктуре без предварительного теста.

Инцидентный план и откат (Runbook)

  1. При подозрении на ложные срабатывания временно переключите Suricata в режим IDS (наблюдение).
  2. Заблокируйте IP на уровне firewall, если требуется немедленная защита.
  3. Соберите логи: /var/log/suricata/eve.json и fast.log.
  4. Откат правил: откатите недавние обновления suricata-update или восстановите бэкап /etc/suricata.
  5. Перезапустите сервис: systemctl restart suricata.
  6. Проведите пост-инцидентный анализ и обновите процедуры.

Критерии приёмки

  • Suricata успешно стартует и проходит тест конфигурации без ошибок.
  • Suricata генерирует логи в /var/log/suricata (fast.log и eve.json).
  • Правила загружаются и обновляются через suricata-update.
  • Тестовые атаки в лаборатории регистрируются в логах.

Контрольные списки по ролям

Администратор:

  • Установить зависимости и Suricata.
  • Настроить автообновление правил в тестовой среде.
  • Настроить ротацию логов и мониторинг.

Оператор безопасности:

  • Анализировать eve.json в SIEM.
  • Настраивать исключения/threshold для снижения шумов.
  • Поддерживать актуальность правил и уведомлять об изменениях.

Небольшой словарь (1 строка)

  • HOME_NET — сеть, которую вы защищаете.
  • EXTERNAL_NET — все адреса, не входящие в HOME_NET.
  • AF_PACKET — высокопроизводительный механизм пакетного захвата в Linux.
  • NFQ — Netfilter queue, позволяет передавать пакеты из ядра в пользовательское пространство.

Короткое резюме

Suricata можно установить из исходников или через репозиторий. Из исходников даёт гибкость, из репозитория — проще и быстрее для продакшена. После установки обязательно проверьте конфигурацию, отключите аппаратный оффлоад для корректной работы и настройте обновление правил.

Если нужны примеры production-конфигураций, рекомендации по tuning для высоких нагрузок или генерация правил — напишите, я помогу адаптировать под вашу сеть.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как бесплатно увеличить место в Dropbox
Облачное хранилище

Как бесплатно увеличить место в Dropbox

Организация закладок браузера с ChatGPT
Продуктивность

Организация закладок браузера с ChatGPT

Громкость Windows 11 застряла на 100% — как исправить
Windows

Громкость Windows 11 застряла на 100% — как исправить

Rate limiting в Node.js и Express
Backend

Rate limiting в Node.js и Express

Google Gemini на iPhone: включить и убрать
Мобильные гайды

Google Gemini на iPhone: включить и убрать

Xbox не пускает в онлайн — как исправить
Игры

Xbox не пускает в онлайн — как исправить