Это не делает никакой фильтрации, но этот пример создает удобный непрерывный анализатор пакетов:
tcpdump -n -C 128 -W 100 -z /home/user/compress_logs.pl -i br0 -w /home/user/packetlogs/packetlog.pcap &
-n
не выполнять обратный поиск по IP-адресам, не преобразовывать номера портов в текстовые описания, не преобразовывать MAC-адреса в имена и т. д.-C 128
вращать файлы захвата каждые 128 000 000 байтов-W 100
ограничить количество вращающихся файлов захвата (см.-C
) до 100-z /home/user/compress_logs.pl
запустить скриптcompress_logs.pl
на каждом повернутом файле захвата-i br0
захватить на интерфейсеbr0
-w /home/user/packetlogs/packetlog.pcap
использовать имя файла/home/user/packetlogs/packetlog.pcap
&
это анализируется bash; указывает, что команда должна выполняться в фоновом режиме (асинхронно)
Поместите его в /etc/rc.local для запуска при загрузке. Он захватывает все пакеты на интерфейсе br0
, который может быть двумя встроенными интерфейсами в виде ответвления или двух интерфейсов, подключенных к пассивному ответвлению, или одного интерфейса, подключенного к зеркальному порту коммутатора (на практике я использовал все три)
Он записывает ~ 128 МБ файлов и автоматически поворачивает до 100 из них. Когда он захватывает 128 МБ данных, он закрывает файл, открывает новый и раскручивает указанную команду со старым именем файла в качестве аргумента - в этом случае небольшой скрипт Perl, который сжимает предыдущий файл захвата для более быстрой передачи из IDS сервер.
Я использую это, когда мне приходится долго контролировать соединение (например, день или два), и мне нужно вернуться назад и найти событие, которое произошло в определенное время. Небольшие файлы гораздо проще обрабатывать в Wireshark, чем один огромный файл pcap.