Snort 3 — это Snort IPS (система предотвращения вторжений) нового поколения. Этот файл покажет вам, что может предложить Snort++, и проведет вас через все этапы от загрузки до демо-версии. Если вы не знакомы со Snort, вам следует сначала просмотреть документацию Snort. Мы рассмотрим следующие темы:
Обзор
Зависимости
Скачать
Сборка Snort
Запустить Фырканье
Документация
Визг
Эта версия Snort++ включает в себя новые функции, а также все функции Snort 2.X и исправления ошибок базовой версии Snort, за исключением указанного ниже:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Вот некоторые ключевые особенности Snort++:
Поддержка нескольких потоков обработки пакетов
Используйте общую конфигурацию и таблицу атрибутов.
Используйте простую конфигурацию с поддержкой сценариев.
Сделайте ключевые компоненты подключаемыми
Службы автоматического обнаружения для конфигурации без портов
Поддержка липких буферов в правилах.
Автоматическое создание справочной документации
Обеспечьте лучшую кроссплатформенную поддержку.
Упрощение тестирования компонентов
Используйте общую карту сети
Дополнительные функции в дорожной карте включают в себя:
Поддержка конвейерной обработки пакетов
Поддержка разгрузки оборудования и интеграции плоскости данных.
Поддержка режима прокси
Поддержка Windows
Если вы уже создали Snort, возможно, у вас есть все необходимое. Если нет, скачайте последнюю версию:
cmake для сборки из исходного кода
daq из https://github.com/snort3/libdaq для пакетного ввода-вывода
dnet с https://github.com/dugsong/libdnet.git для функций сетевых утилит.
flex >= 2.6.0 с https://github.com/westes/flex для синтаксического анализатора JavaScript
g++ >= 7 или другой компилятор C++17
hwloc с https://www.open-mpi.org/projects/hwloc/ для управления привязкой ЦП.
LuaJIT с http://luajit.org для настройки и написания сценариев.
OpenSSL с https://www.openssl.org/source/ для подписей файлов SHA и MD5, параметра правила protected_content и обнаружения службы SSL.
pcap с http://www.tcpdump.org для ведения журнала в стиле tcpdump
pcre с http://www.pcre.org для сопоставления шаблонов регулярных выражений
pkgconfig с https://www.freedesktop.org/wiki/Software/pkg-config/, чтобы найти зависимости сборки.
zlib с http://www.zlib.net для распаковки
Дополнительные пакеты предоставляют дополнительные функции. Дополнительную информацию см. в руководстве.
В разделе «Загрузки» на snort.org доступен архив с исходным кодом:
snort-3.0.0-a3.tar.gz
Вы также можете получить код с помощью:
git clone https://github.com/snort3/snort3.git
Для cmake существуют отдельные дополнительные пакеты, которые предоставляют дополнительные функции и демонстрируют, как создавать плагины. Источник дополнений находится в репозитории snort3_extra.git.
Выполните следующие действия:
Настройте исходный каталог:
Если вы используете клон GitHub:
компакт-диск snort3/
В противном случае сделайте следующее:
tar zxf snort-tarballcd snort-3.0.0*
Путь установки установки:
экспортировать my_path=/path/to/snorty
Скомпилируйте и установите:
Чтобы выполнить сборку с помощью cmake и make, запустите configure_cmake.sh. Он автоматически создаст и заполнит новый подкаталог с именем «build».
./configure_cmake.sh --prefix=$my_pathcd сборка сделать -j $(nproc) установить
Примечание :
Если вы можете выполнить src/snort -V, значит, сборка выполнена успешно.
Если вы знакомы с cmake, вы можете запустить cmake/ccmake вместо configure_cmake.sh.
cmake --help выведет список всех доступных генераторов, таких как Xcode. Не стесняйтесь использовать один из них, однако помощь с ним будет предоставлена отдельно.
Вот несколько примеров. Если вы используете правила и/или конфигурации Talos, вам следует сначала установить все необходимые переменные в верхней части snort.lua и snort_defaults.lua.
Snort++ предоставляет множество подсказок из командной строки, в том числе:
$my_path/bin/snort --help$my_path/bin/snort --help-module подавление$my_path/bin/snort --help-config | grep-поток
Осмотрите и сбросьте PCAP. Ниже замените a.pcap на свой любимый:
$my_path/bin/snort -r a.pcap$my_path/bin/snort -L dump -d -e -q -r a.pcap
Проверьте конфигурацию с правилами или без них:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
Запустите режим IDS. Далее замените pcaps/ на путь к каталогу с одним или несколькими файлами *.pcap:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000
Давайте подавим 1:2123. Мы могли бы отредактировать конфигурацию или просто сделать это:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000 --lua "подавить = { { gid = 1, sid = 2123 } }"
Полностью изучите каталог с несколькими потоками пакетов:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A alert_fast --max-packet-threads 8
Дополнительные примеры приведены в doc/usage.txt.
Взгляните на руководство, части которого генерируются кодом, поэтому оно всегда актуально:
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
В нем пока нет подробностей о том, как и почему, но есть все доступные на данный момент конфигурации и т. д. Некоторые ключевые изменения в правилах:
вы должны использовать подопции содержимого, разделенные запятыми, например: content:"foo", nocase;
селекторы буфера должны появляться перед содержимым и оставаться в силе до тех пор, пока не будут изменены.
селекторы буфера pcre были удалены
дополнительную информацию о Snort++ и Snort см. в руководстве.
проверьте справочный раздел руководства, чтобы понять, как определяются параметры и т. д.
Он также охватывает новые функции, не продемонстрированные здесь:
snort2lua, инструмент для преобразования конфигурации и правил Snort 2.X в новую форму
новый HTTP-инспектор
связующее для сопоставления конфигурации с трафиком
мастер для независимой от порта настройки
улучшенный анализ правил - произвольные пробелы, комментарии в стиле C, комментарии #begin/#end
локальная и удаленная оболочка командной строки
o")~
Мы надеемся, что вы так же в восторге от Snort++, как и мы. Дайте нам знать, что вы думаете о списке пользователей snort. А пока мы будем держать морду на точильном камне.