如何捕获所有进入NIC的数据包,即使这些数据包不属于我


13

在AFAIK中,NIC从局域网中的线路接收所有数据包,但拒绝其目的地址不等于其IP的那些数据包。

我想开发一个监视用户互联网使用情况的应用程序。每个用户都有一个固定的IP地址。

我和其他一些人已连接到DES-108 8端口快速以太网非托管台式机交换机

如前所述,我不仅要捕获属于我的那些数据包,还要捕获所有用户的所有流量。

如何强制我的NIC或其他组件接收所有数据包?


1
购买便宜的托管交换机,价格约为30欧元,并在通往网关的链接上启用端口镜像。
Max Ried'4

Answers:


27

在AFAIK中,NIC从局域网中的线路接收所有数据包,但拒绝其目的地址不等于其IP的那些数据包。

更正:它拒绝那些目标MAC地址不等于其MAC地址(或多播或过滤器中的任何其他地址)的数据包。

数据包捕获实用程序可以使网络设备处于混杂模式,这就是说,上述检查被绕过了,设备接受了它收到的所有内容。实际上,这通常是默认设置:使用时tcpdump,您必须指定该-p选项才能不使用它。

更为重要的问题是,您感兴趣的数据包是否甚至全部通过电线传送到您的嗅探端口。由于您使用的是非托管的以太网交换机,因此几乎可以肯定不是。交换机决定在网络设备希望看到它们之前,先从端口修剪不属于您的数据包。

为此,您需要连接到托管以太网交换机上经过特殊配置的镜像或监视端口。


1
还是以太网集线器……如果您在阁楼上发现一个生锈的东西:)我怀疑是否有1000Base-T的版本,维基百科说千兆位集线器仅支持半双工链接,现在已弃用。
chx

1
@chx,所有真正的集线器仅支持半双工。就个人而言,我从未见过1000Base-T。
Celada'4

我认为这与千兆位以太网的缓慢吸收有关-尽管802.3ab标准于1999年问世,但吸收速度却非常缓慢,直到2003/2004年,英特尔首次发布了带有专用于千兆位以太网的CSA总线的875P芯片组,然后在2004年,PCI Express最终获得了足够的带宽来支持千兆以太网。到那时,交换机已经足够便宜了。
chx

以太网交换机不会总是广播帧。它具有自己的交换表(包含交换端口和MAC地址的映射),用于单播帧。如果该表在帧中没有MAC条目,那么它将广播/填充该帧。您的桌面将永远不会收到其他框架。如答案中所述,您必须使用特殊的开关来捕获到达开关的所有帧。
Valarpirai

8

在早期提到的以太网集线器(不是交换机)中,已发送的数据包可用于子网上的所有主机,但是不是预期收件人的主机应该忽略。

显然,子网饱和并不需要很长时间,因此交换技术应运而生,解决了这些问题,而他们要做的一件事就是使网络交换机仅将发往该主机的数据包路由到该端口(加上andy广播流量) )。

这会使网络监视/嗅探复杂化,因为您只能嗅探用于主机的数据包。从安全的角度来看,这被认为是一件好事,但是从网络监视的角度来看,这并不是一件好事。为了使网络监视有效,供应商实现了一项称为端口镜像的功能。这必须在网络交换机上进行配置,并且下面的链接应为您指明D-link产品的正确方向。您可以在交换机管理软件或Web管理员界面中的某个位置找到它。如果找不到这些功能,则可能无法在该特定设备中提供该功能。

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


2

首先,您需要将NIC切换为混杂模式。假设您的NIC接口是eth0。

root@linux#ifconfig eth0 promesc

如果您在交换网络上,则将嗅探减少到冲突域,然后连接到交换端口。您可以运行macof以使交换机的转发表不堪重负。

root@linux#macof -i eth0

然后,您可以使用wiresharktcpdump捕获所有流量。

root@linux#tcpdump -i eth0 -w outputfile

如果您不在交换网络上,只需启用混杂模式并使用tcpdump


1
tcpdump将为您启用混杂模式。您不需要手动执行操作(完成后记得撤消操作)。
Celada's

0

您正在重新发明轮子。

假设您有一个简单的网络,其中客户端连接到交换机,并且具有默认的Internet网关,那么您只需要在该默认网关设备上进行监视。这将是显示局域网客户端和互联网之间所有流量的瓶颈。

我假设不关心LAN客户端到LAN客户端的流量,因为对于所有IP地址都在同一IP子网内的情况,本地流量不会触及默认网关。

如果您确实希望查看所有流量,则每个用户都需要位于自己的IP网络中,而通过默认网关到其他网络的流量。您可以为每个人分配一个/ 28,他们自己可以拥有14个IP。

普通的家庭级路由器将无法处理很多此类问题,您需要探索专用的防火墙发行版。我个人可能会喜欢pfsense,但是有很多选择。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.