Как перехватить все входящие пакеты на сетевую карту, даже если эти пакеты мне не принадлежат

Как перехватить все входящие пакеты на сетевую карту, даже если эти пакеты мне не принадлежат

Насколько мне известно, сетевая карта получает все пакеты из провода в локальной сети, но отклоняет те пакеты, адрес назначения которых не равен ее IP-адресу.

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

Я и еще несколько человек связаны сDES-108 8-портовый неуправляемый настольный коммутатор Fast Ethernet

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

Как заставить сетевую карту или другие компоненты принимать все пакеты?

решение1

Насколько мне известно, сетевая карта получает все пакеты из провода в локальной сети, но отклоняет те пакеты, адрес назначения которых не равен ее IP-адресу.

Исправление: он отклоняет те пакеты, которые не соответствуют их назначению.МАКадрес не равен своемуMAC-адрес(или многоадресная рассылка или любые дополнительные адреса в его фильтре.

Утилиты захвата пакетов могут тривиально перевести сетевое устройство в режим неразборчивости, то есть, обойти вышеуказанную проверку и устройство принимает все, что получает. Фактически, это обычно по умолчанию: с tcpdump, вы должны указать -pопцию, чтобынетсделай это.

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

Для этого вам необходимо подключиться к специально настроенному порту зеркалирования или мониторинга на управляемом коммутаторе Ethernet.

решение2

В ранних версиях Ethernet-концентраторов (не коммутаторов) отправленные пакеты доступны всем хостам в подсети, но хосты, которые не являются предполагаемыми получателями, должны игнорироваться.

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

Это усложняет мониторинг/анализ сети, поскольку вы можете анализировать только пакеты, предназначенные для вашего хоста. Это считалось хорошей вещью с точки зрения безопасности, но с точки зрения мониторинга сети не очень. Чтобы мониторинг сети работал, поставщики внедряют функцию, называемую зеркалированием портов. Ее необходимо настроить на сетевом коммутаторе, и приведенная ниже ссылка должна указать вам правильное направление для продуктов D-link. Вы найдете ее где-то в программном обеспечении управления коммутаторами или в веб-интерфейсе администратора. Если вы не нашли эти функции, то функциональность может быть не предоставлена ​​в этом конкретном устройстве.

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring

решение3

Сначала вам нужно переключить ваш NIC в режим promiscuous. Предположим, что ваш интерфейс NIC — eth0.

root@linux#ifconfig eth0 promesc

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

root@linux#macof -i eth0

Затем вы можете использовать wiresharkили tcpdumpдля захвата всего трафика.

root@linux#tcpdump -i eth0 -w outputfile

Если вы не подключены к коммутируемой сети, просто включите беспорядочный режим и используйте tcpdump.

решение4

Вы изобретаете велосипед.

Если у вас простая сеть с клиентами, подключающимися к коммутаторам, со шлюзом по умолчанию в Интернет, то вам нужно только отслеживать это устройство шлюза по умолчанию. Это будет узким местом для отображения всего трафика между клиентом локальной сети и Интернетом.

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

Если вы действительно хотите видеть весь трафик, каждый пользователь должен находиться в своей собственной IP-сети, а трафик в другие сети должен проходить через шлюз по умолчанию. Вы можете выделить /28 каждому человеку, и они смогут иметь 14 IP-адресов для себя.

Ваш обычный домашний маршрутизатор не справится со многим из этого, вам нужно будет изучить выделенный дистрибутив брандмауэра. Лично я бы выбрал pfsense, но есть много вариантов.

Связанный контент