к сожалению (по крайней мере для того, что вы хотите) вы не сможете регистрировать все пакеты без изменений в вашей аппаратной и сетевой архитектуре.
в отличие от более старых сетей, которые функционировали на общей шине или использовали многопортовые ретрансляторы (концентраторы), современные коммутируемые сети обычно не отправляют трафик через порт коммутатора, который не подключается к запрошенному MAC-адресу назначения. исключения из этого правила - широковещательный трафик на уровнях MAC и IP, часто используемый протоколами обнаружения устройств и служб.
чтобы достичь своей цели, вам нужно перевести коммутатор в беспорядочный режим на порт, подключенный к вашей машине Linux, чтобы весь трафик на коммутаторе был виден вашему процессу tcpdump.
В большинстве случаев лучший способ сделать это - купить коммутатор, поддерживающий зеркалирование портов, и настроить его на отправку всего трафика на второй сервер в вашей Linux-системе.
если вы хотите воспользоваться этой возможностью, ознакомьтесь с этими инструкциями по подготовке сети к SNORT. http://www.symantec.com/connect/articles/complete-snort-based-ids-architecture-part-one
обратите внимание, что если вы можете изолировать один протокол, который вы хотите отслеживать, вы можете установить для него прокси-сервер на своем компьютере с Linux, настроить устройство Android на его использование, а затем перехватить трафик по мере его передачи, поскольку теперь он проходит через ваш ящик Linux.
не уверен насчет последней части вашего вопроса. все пакеты используют сетевой и канальный уровень, и TCPdump может регистрировать протоколы l2, такие как ARP, и протоколы не-IP на уровне l3 (ICMP), так что да и нет, я полагаю?
Если вы подключаете (или можете подключить) ваш ноутбук и устройство Android без проводов на точку доступа Wi-Fi, и если вы используете только WEP или не используете защиту на точке доступа Wi-Fi, то ваш ноутбук, вероятно, сможет видеть и декодировать весь трафик на ваше устройство Android и обратно.
Возможно, вам придется ограничить вашу точку доступа более старыми схемами модуляции 802.11, которые легче получить надежно (например, отключив 802.11n, чтобы он просто выполнял 802.11g), и / или поместите свой ноутбук так, чтобы он находился «между» точкой доступа и точкой доступа. Android-устройство.
Технически возможно отслеживать трафик Wi-Fi устройства Android, даже если вы используете шифрование WPA-PSK или WPA2-PSK, но это сложнее, потому что вам нужно захватить первые несколько пакетов, когда устройство Android подключается или присоединяется к сети. Отключение шифрования решает эту проблему, как и переключение на старый добрый WEP, потому что каждый в данной сети WEP постоянно использует один и тот же ключ.
И да,
tcpdump
увидит эти пакеты, потому что по умолчанию он работает в случайном режиме, если вы не добавите-p
аргумент, чтобы отключить его.tcpdump
не способен расшифровать WEP (или WPA или WPA2), поэтому вам придется использовать Wireshark (или "tshark" Wireshark, если вам действительно нравятся инструменты командной строки), чтобы сделать это.источник