2026-09-19

Установка и настройка Suricata 8 на Ubuntu: IDS/IPS для защиты сети

Suricata — современный движок сетевой безопасности, который умеет работать в режимах IDS (обнаружение вторжений), IPS (предотвращение) и NSM (мониторинг безопасности). Он использует правила в стиле Snort и обрабатывает трафик в многопоточном режиме — это быстрый и бесплатный вариант для защиты периметра. Разберём установку из репозитория и из исходников, настройку правил и рабочего интерфейса.


Режимы работы и принципы перехвата

Чтобы понять, какая установка нужна, важно различать режимы:

  • IDS — следит за трафиком и только обнаруживает атаки, не блокируя их.
  • IPS — активно блокирует вредоносный трафик.
  • NSM — полноценный мониторинг безопасности с записью и анализом.

Для полноценной работы Suricata должна стоять на пути трафика — как правило, на границе с интернетом (шлюз). Под Linux есть два способа перехвата:

  • NFQUEUE — работает через сетевой фильтр ядра (iptables/nftables). Проще в установке, но медленнее.
  • AF_PACKET — пакетный режим, требует прямой доступ к сетевым интерфейсам. Быстрее, но система должна быть шлюзом.

Из репозитория Ubuntu Suricata по умолчанию работает через NFQUEUE. Для AF_PACKET обычно нужна сборка из исходников, хотя в современных версиях (7.x/8.x) AF_PACKET включён в пакет из репозитория.

Для IDS/NSM системы не обязательно ставить на путь трафика — можно зеркалировать пакеты через SPAN-порт коммутатора.


Настройка времени

Suricata чувствительна к точному времени: корреляция событий и timestamps строятся на нём.

timedatectl set-timezone Europe/Moscow
# список зон: timedatectl list-timezones
apt-get install chrony
systemctl enable chrony

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

Рекомендуемый способ на Ubuntu 24.04/26.04:

apt-get install software-properties-common
add-apt-repository ppa:oisf/suricata-stable

При запросе нажимаем Enter, затем:

apt-get update
apt-get install suricata
systemctl enable suricata

На момент написания статьи актуальная стабильная версия — Suricata 8.0.6 (июль 2026). Из репозитория Ubuntu 24.04 ставится версия 7.x из официального дистрибутива — она также поддерживается, но для новых функций лучше PPA-канал.


Сборка из исходников

Нужен вариант с расширенными опциями: CUDA (использование GPU для ускорения), специфические режимы перехвата или кастомные патчи.

1. Подготовка к сборке

apt-get install libpcre3 libpcre3-dev build-essential autoconf automake libtool 
    libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev make 
    libmagic-dev libjansson-dev pkg-config rustc cargo

Для режима IPS также:

apt-get install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

Скачиваем исходники последней версии с openinfosecfoundation.org/download/:

wget https://openinfosecfoundation.org/download/suricata-8.0.6.tar.gz
tar zxvf suricata-8.0.6.tar.gz
cd suricata-8.0.6

2. Конфигурирование и установка

Для IDS:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var

Для IPS (включаем перехват пакетов):

./configure --enable-af-packet --prefix=/usr --sysconfdir=/etc --localstatedir=/var

Чтобы IPS работал, нужна опция --enable-af-packet либо --enable-nfqueue.

make
make install
make install-conf

Утилиты для обновления правил:

apt-get install python3-pip
pip3 install --upgrade suricata-update

Настройка после установки

1. Файл окружения

vi /etc/default/suricata:

RUN=yes
RUN_AS_USER=suricata
SURCONF=/etc/suricata/suricata.yaml
LISTENMODE=af-packet
IFACE=enp0s3
NFQUEUE="-q 0"
CUSTOM_NFQUEUE="-q 0 -q 1 -q 2 -q 3"
PIDFILE=/var/run/suricata.pid

2. Обновление и выбор правил

# обновить индекс источников
suricata-update update-sources

# загрузить/обновить сами правила
suricata-update

По умолчанию подтягивается набор Emerging Threats (Open). Дополнительные наборы правил подключаются через enable-source.

3. Сетевой интерфейс

Узнаём имя интерфейса:

ip a

Прописываем его в двух местах. В vi /etc/default/suricata:

IFACE=enp0s3

В vi /etc/suricata/suricata.yaml укажите интерфейс в секциях перехвата:

af-packet:
  - interface: enp0s3

pcap:
  - interface: enp0s3

4. Запуск

systemctl daemon-reload
systemctl restart suricata

Проверка статуса и журнала:

systemctl status suricata
journalctl -u suricata -f

Проверка работы

Посмотреть обработку трафика:

suricata -T -c /etc/suricata/suricata.yaml   # тест конфигурации
suricata-update check                        # проверка актуальности правил

Cтатистика по событиям пишется в каталог логов (/var/log/suricata/): файлы fast.log, eve.json (структурированный JSON, удобен для Grafana/Loki из наших статей).


Тонкости, подводные камни

  • Suricata 8 и старые правила — наборы правил Emerging/ET Open требуют актуального движка; при переезде с 7.x на 8.0 обновите suricata-update.
  • Устройство в NFQUEUE — если IPS работает медленно, переходите на AF_PACKET: он даёт существенный прирост скорости на больших интерфейсных скоростях.
  • Два интерфейса для шлюза — в AF_PACKET перехват идёт на интерфейсах, а не через маршрутизацию. Для домашнего шлюза удобнее режим NFQUEUE.
  • Безопасность времени — регулярная сверка часов обязательна; снос времени ломает корреляцию событий.
  • Правила не обновляются сами — добавьте suricata-update в cron или systemd-timer, иначе набор правил устаревает.

Автозапуск обновления правил (cron)

crontab -e
# раз в сутки
0 4 * * * suricata-update && systemctl reload suricata

Шпаргалка

add-apt-repository ppa:oisf/suricata-stable
apt-get update && apt-get install suricata
suricata-update update-sources
suricata-update
vi /etc/suricata/suricata.yaml   # af-packet -> interface
systemctl restart suricata
# статус: systemctl status suricata

Проверено на: Ubuntu 22.04/24.04/26.04 + Suricata 8.0.6.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *