Мой tcpdump всегда фильтрует пакеты?

Я использую tcpdump уже около месяца, и недавно он прекратил захватывать любые пакеты, которые не были отправлены на или с компьютера, на котором запущен tcpdump. Я сократил свою команду до просто:

sudo tcpdump -i en2

Я проверил свои интерфейсы с помощью ifconfig, и en2 находится в режиме "PROMISC". Определяя конкретный хост в качестве фильтра, я вижу только несколько сообщений "arp", но ничто по сравнению с тем, что на самом деле происходит в сети.

Есть идеи, почему это будет происходить? Очень признателен, если кто-нибудь может дать совет!

Ричард

2 ответа

Возможно, ваша сеть была недавно обновлена ​​с концентратора до коммутатора. Коммутаторы узнают, к какому порту подключен данный MAC-адрес, и перенаправляют трафик только для этого MAC-адреса на этот один порт. Многоадресные и широковещательные рассылки (такие как ARP) по-прежнему отправляются на все порты.

Чтобы увидеть одноадресный трафик для других хостов при подключении к коммутатору, типичным решением является использование управляемого коммутатора, который поддерживает "зеркалирование портов", где вы можете настроить его для копирования всего трафика, который прошел бы через определенный порт, а также для копирования. ко второму порту, к которому подключен ваш сниффер.

Существуют также инструменты для хакерских атак, которые можно использовать для просмотра одноадресного трафика других устройств в коммутируемой сети, например, с помощью инструментов отравления ARP, чтобы заставить другие машины отправлять вам свой трафик, как если бы вы были маршрутизатором сети по умолчанию.

Когда tcpdump работает без -n опция, он будет выполнять поиск DNS для IP-адресов, которые он видит, это может объяснить, почему вы не видите пакеты, как только они приходят. Из справочной страницы tcpdump:

-n     Don't convert addresses (i.e., host addresses,
       port numbers, etc.) to names.

Я всегда использую tcpdump с -n возможность избежать этой проблемы:

sudo tcpdump -n -i en2
Другие вопросы по тегам