
Pulled Pork для управления правилами Snort и Suricata (из Google code)
PulledPork для управления правилами Snort и Suricata (с Google code)
Найдите нас на Libera.Chat (IRC) #pulledpork
Авторские права (C) 2009–2021 JJ Cummings, Michael Shirk и команда PulledPork!
Спасибо, что выбрали PulledPork! Этот файл содержит основные рекомендации по использованию PulledPork. Пожалуйста, внимательно прочитайте его, чтобы ничего не упустить!
Usage: pulledpork.pl [-dEgklnRTPVvv? -help] -c <config filename> -o <rule output path>
-O <oinkcode> -s <so_rule output directory> -D <Distro> -S <SnortVer>
-p <path to your snort binary> -C <path to your snort.conf> -t <sostub output path>
-h <changelog path> -H <signal_name> -I (security|connectivity|balanced) -i <path to disablesid.conf>
-b <path to dropsid.conf> -e <path to enablesid.conf> -M <path to modifysid.conf>
-r <path to docs folder> -K <directory for separate rules files>
Options:
-help/? Вывести эту справку.
-b Где находится файл конфигурации dropsid.
-C Путь к вашему snort.conf
-c Где находится файл конфигурации pulledpork.
-d Не проверять подпись архива правил, т.е. загрузка из не VRT или ET источников.
-D Какой дистрибутив вы используете для so_rules
Актуальные поддерживаемые опции см. на http://www.snort.org/snort-rules/shared-object-rules
Допустимые типы дистрибутивов:
Alpine-3-10
Centos-6, Centos-7, Centos-8
Debian-8, Debian-9, Debian-10
FC-27, FC-30
FreeBSD-11, FreeBSD-12
OpenBSD-6-2, OpenBSD-6-4, OpenBSD-6-5
OpenSUSE-15-0, OpenSUS-15-1, OpenSUSE-42-3
RHEL-6, RHEL-7, RHEL-8
Slackware-14-2
Ubuntu-14-4, Ubuntu-16-4, Ubuntu-17-10, Ubuntu-18-4
-e Где находится файл конфигурации enablesid.
-E Записывать ТОЛЬКО включённые правила в выходные файлы.
-g только загрузка (скачать архивы правил и НЕ обрабатывать)
-h путь к sid_changelog, если вы хотите его вести?
-H Отправить имя_сигнала процессам, указанным в файле конфигурации (SIGHUP или SIGUSR2)
-I Указать базовый набор правил (-I security,connectivity,или balanced, см. README.RULESET)
-i Где находится файл конфигурации disablesid.
-k Сохранять правила в отдельных файлах (используя те же имена файлов, что и при чтении)
-K Куда (в какую директорию) поместить отдельные файлы правил?
-l Записывать важную информацию в Syslog (ошибки, успешные запуски и т.д., все записи от WARN и выше)
-L Где вы хотите, чтобы я прочитал ваш local.rules для включения в sid-msg.map
-m Куда поместить файл sid-msg.map?
-M Где находится файл конфигурации modifysid.
-n Делать всё, кроме загрузки новых файлов (disablesid и т.д.)
-o Куда поместить общий файл правил?
-O Определить oinkcode в командной строке (необходимо для некоторых пользователей)
-p Путь к вашему бинарному файлу Snort
-P Обрабатывать правила, даже если не было загружено новых правил
-R При обработке enablesid возвращать правила в ИСХОДНОЕ состояние
-r Куда поместить справочные документы (xxxx.txt)
-S Какую версию Snort вы используете (допустимые значения: 2.8.6 или 2.9.0)
-s Куда поместить so_rules?
-T Обрабатывать только текстовые файлы правил, т.е. НЕ обрабатывать so_rules
-u Откуда загрузить архив правил
** Например, ET, Snort.org. Смотрите опцию rule_url в конфигурации pulledpork для возможных значений
-V Вывести версию и выйти
-v Подробный режим, знаете.. для устранения неполадок и прочей ерунды.
-vv ОЧЕНЬ подробный режим, знаете.. для углублённого устранения неполадок и прочей ерунды.
-w Пропустить проверку SSL (если возникают проблемы при загрузке файлов правил)
-W Где обойти проблему, при которой некоторые реализации LWP не работают с прокси-конфигурацией PulledPork.
Простой пример использования PulledPork: задать все директивы конфигурации внутри файла PulledPork.conf. В частности, для минимальной функциональности (т.е. БЕЗ обработки правил Shared Object) необходимо определить как минимум значения rule_file, oinkcode, temp_path, tar_path и rule_path. Ниже приведены несколько примеров.
./pulledpork.pl -o /usr/local/etc/snort/rules/ -O 12345667778523452344234234 \
-u http://www.snort.org/reg-rules/snortrules-snapshot-2973.tar.gz \
-i disablesid.conf -T -H
Приведённая выше команда загрузит архив snortrules-snapshot-2973.tar.gz с snort.org, используя указанный oinkcode — 12345667778523452344234234, и поместит файлы правил из этого архива в выходной каталог /usr/local/etc/snort/rules/, при этом опция -i указывает PulledPork, где находится disablesid.conf, опция -T отключает обработку правил Shared Object, а опция -H отправляет сигнал Hangup процессу Snort, PID которого определён в pulledpork.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -T -H
Аналогично первому примеру, но все опции заданы в файле pulledpork.conf (кроме disablesid и -H)...
./pulledpork.pl -c pulledpork.conf -i disablesid.conf \
-m /usr/local/etc/snort/sid-msg.map -Hn
Приведённая выше команда просто прочитает правила из disablesid и отключит их, как указано, затем отправит сигнал Hangup после создания sid-msg.map в указанном месте, без загрузки чего-либо. Очень полезно при настройке / внесении изменений и т.д.
Следующий пример: Snort в inline-режиме с правилами, которые мы хотим сбрасывать и отключать, затем отправляем сигнал HUP нашим демонам после создания sid-msg.map и записи информации об изменениях в sid_changes.log!
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-m /usr/local/etc/snort/sid-msg.map -h /var/log/sid_changes.log -H
Следующий пример: то же, что и предыдущий, но с указанием использовать базовый набор правил "security" и включить правила, заданные в enablesid.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H
Следующий пример: то же, что и предыдущий, но с указанием -K (Keep — сохранять) исходные имена tar-архивов и записывать их в /usr/local/etc/snort/rules/
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H -K /usr/local/etc/snort/rules/
Для пользователей Suricata необходимы те же шаги в зависимости от расположения файлов вашей установки. Всё, что нужно PulledPork для обработки файлов правил, — это установить флаг -S в значение suricata-3.1.3 или используемую версию Suricata
./pulledpork.pl -c pulledpork.conf -S suricata-3.1.3
PulledPork "должен" работать с правилами Suricata и ET/ETPro. Однако поддержка правил Talos для работы на Suricata отсутствует.
Обратите внимание, что PulledPork выполняет модификацию правил (включение, сброс, отключение, изменение) именно в таком порядке по умолчанию..
Это означает, что правила на отключение всегда имеют приоритет.. таким образом, если вы укажете один и тот же gid:sid в файлах конфигурации enable и disable, этот sid будет отключён.. помните об этом и для диапазонов! Однако вы можете указать другой порядок с помощью ключевого слова state_order в главном конфигурационном файле.
Вероятно, я добавлю больше информации позже; --help или --? показывают все параметры времени выполнения, а pulledpork.conf довольно хорошо аннотирован... так что если вы не можете разобраться... постарайтесь сильнее! А когда разберётесь, не стесняйтесь вносить свой вклад в виде дополнительных README/помощи.. спасибо!
Как примечание, хочу поблагодарить своего друга Брюса за помощь в названии PulledPork! "надеюсь, это заставит его замолчать ;-)"