Воспроизведение файла pcap для Snort
В настоящее время у меня есть следующая, предположительно стандартная установка: у меня есть физический сервер с запущенным Snort. Snort входит в свои файлы журнала, как и должно. Эти файлы отслеживаются barnyard2, который записывает трафик в базу данных для Snorby.
Snort и barnyard2 запускаются как системный сервис. Теперь, помимо продолжающегося анализа сетевого трафика Snort, я хочу каждый час читать файлы pcap из другого источника, применяя к ним свои правила Snort.
К счастью, snort предоставляет эту функцию напрямую. Однако, используя snort -r foo.pcap
запускает новый экземпляр Snort, что, естественно, приводит к созданию нового файла журнала. Barnyard2 распознает этот новый файл журнала и обрабатывает данные из pcap, как и ожидалось => правила в порядке и работают для трафика pcap. Однако трафик от экземпляра Snort, работающего в качестве службы, все еще записывается в старый файл, и barnyard2 не обрабатывает эти пакеты из-за наличия нового файла журнала.
Во избежание этого я сейчас пытаюсь использовать tcpreplay
чтобы воспроизвести pcap на моем внешнем интерфейсе, чтобы служба Snort могла обрабатывать пакеты, как и любой другой трафик. К сожалению, Snort не совпадает ни с какими пакетами, если они воспроизводятся таким образом. Правила, действующие через snort -r
должен доказать, что они верны.
Нужно ли переписывать что-либо вроде MAC-адресов при использовании tcpreplay
? Стоит упомянуть, что мне пришлось перекомпилировать Snort с --enable-non-ether-decoders
параметр для того, чтобы иметь возможность читать трафик pcap.
1 ответ
Решение было использовать tcprewrite
переписать кадры данных через tcprewrite --dlt=enet
, Проблема, похоже, та же, что требовала компиляции Snort с --enable-non-ether-decoders
, Я предполагаю, что это происходит из-за виртуализации, вовлеченной где-то в наблюдаемой среде.