如何使用Linux在eth0上捕获数据包并将所有内容发送到eth1?

今天,我与Sagemcom路由器一起获得了企业互联网连接。 它第一次连接到互联网,它将花费20分钟升级固件。

我真的想用一个带有两个网卡的CentOS主机捕获所有的升级stream量,目的是确定升级是如何进行身份validation的。 例如用一个秘密的用户帐户和密码?

如果我想把CentOS主机放在Internet连接和路由器之间:

  • 如何configurationCentOS, eth0所有stream量都在eth1
  • tcpdump -s0 -A -w upgrade.pcap -nni eth0是否正确,如果以后我想用Wireshark来检查软件包?

您可以将eth0和eth1设置为网桥,并假设eth0连接到Sagemcom,eth1连接到Internet连接。 stream量将通过网桥,然后您可以在网桥上运行TCP转储,并捕获所有stream量。

您将需要bridge-utils软件包

 brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 ifconfig br0 up tcpdump -s0 -w dump.pcap -i br0 

首先你要把你的CentOS盒子设置成一个路由器,如果你想让stream量通过,基本上需要启用数据包转发(通常是一台机器是目的地)。

这个简单的部分是改变/etc/sysctl.conf
更改

net.ipv4.ip_forward = 0到1。

然后你可以在一个networking中设置eth0,在另一个networking中设置eth1,并在networking之间添加一条路由。

像防火墙或selinuxconfiguration其他的东西是由你自己决定的。

我会使用tcpdump -s0 -n host < router IP > -w upgrade.pcap -i any
尽pipe其中一些可能是多余的,例如,如果您正在监听来自路由器IP的stream量,我相信您不需要指定太多的接口方式。