Tcpdump или аналогичный - Как я могу захватить только один экземпляр каждого пункта назначения пакета и порта?

396
Darren

Я хочу оставить что-то вроде tcpdump на срок до недели и поэтому сделать вывод максимально сжатым, чтобы уменьшить размер файла и ускорить анализ после захвата.

Все, что мне нужно сделать, это зарегистрировать первый экземпляр каждого источника или назначения пакета (IP-адрес и порт), чтобы я мог составить представление о том, какие устройства обмениваются данными с моим сервером (или наоборот).

Таким образом, как только он видит пакет с IP-адреса 192.168.1.10 на порт 80, больше не перехватывает больше пакетов с этого адреса на этот порт.

Бонусные баллы, если он может составить таблицу количества пакетов от каждого источника / до каждого пункта назначения.

Лучшее, что я придумал до сих пор запустить ТСРйитр с -tи -qопциями (нет метки времени и покой, соответственно) и запустить вывод через sortи uniqуменьшить (но не устранить) дубликаты. Пакеты в один и тот же порт назначения, но из разных исходных портов, например, проходят через эту сеть.

1
Вы не сможете сделать это только с помощью tcpdump. Вы захотите отфильтровать пакеты tcp, которые по крайней мере отфильтруют слои 2 и 3, поскольку вас интересует только IP: порт в пакете. Для пост-анализа посмотрите на tshark, он имеет впечатляющие опции для анализа pcaps и намного более эффективен для больших, чем графический интерфейс wireshark. MaQleod 7 лет назад 0
Возможно, было бы полезно использовать функцию -G `tcpdump` в сочетании с -w, чтобы записывать файлы pcap управляемого размера, которые могут быть постобработаны после указанного интервала, в более сжатый формат. Nevin Williams 7 лет назад 0
Вам просто нужен кортеж соединения или действительно содержимое пакета? В первом случае я думаю, что было бы достаточно какого-то правила `iptables`, чтобы вести журнал для каждого нового пакета. Мне кажется, что бонусные баллы противоречат вашей первой цели, так как ведение счета означает необходимость видеть все пакеты, а не останавливаться после первой. Patrick Mevzek 7 лет назад 0
@PatrickMevzek, только IP-адрес и порт. Я понимаю вашу точку зрения; Я имел в виду, что если мы продолжим захват пакетов, то подсчет будет хорошим. Darren 7 лет назад 0
Просто напишите скрипт и передайте вывод tcpdump в него. Должно быть выполнимо с любым произвольным языком программирования. SpiderPig 7 лет назад 1
Вы можете сделать это с помощью небольшого скрипта, просто сделайте идентификатор из адресов, например, `id = hex2ascii (md5 (" "+ source +": "+ source.port +", "+ dest +": "+ dest.port )) `Вы можете создавать файлы с идентификатором и добавлять к ним дамп tcp, если вам нужен контент, или просто спросить существование, хотите ли вы хранить только адреса. Вы можете кэшировать фактический идентификатор, установленный в памяти, если вы запускаете свой скрипт как демон. inf3rno 6 лет назад 0

0 ответов на вопрос