Linux

如何使用 Linux 擷取 eth0 上的數據包並將所有內容髮送到 eth1?

  • April 5, 2013

今天,我通過 Sagemcom 路由器獲得了企業 Internet 連接。首次連接網際網路時,將花費 20 分鐘升級韌體。

我真的很想使用帶有兩個 NIC 的 CentOS 主機來擷取這次升級的所有流量,目的是弄清楚如何對升級進行身份驗證。例如,使用秘密使用者帳戶和密碼?

如果我想將 CentOS 主機放在 Internet 連接和路由器之間:

問題

  • 如何配置 CentOS,讓所有進入 at 的流量都在eth0流出eth1
  • 是否tcpdump -s0 -A -w upgrade.pcap -nni eth0正確,如果我以後想使用 Wireshark 檢查包?

您可以將 eth0 和 eth1 設置為橋接器,並假設 eth0 連接到 Sagemcom 並且 eth1 連接到 Internet 連接。流量將通過網橋,然後您可以在網橋上執行 TCP 轉儲並擷取所有流量。

您將需要 bridge-utils 包

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 up

tcpdump -s0 -w dump.pcap -i br0

首先,您將 CentOS 機器設置為路由器,這基本上涉及啟用數據包轉發(通常一台機器是目的地),如果您想讓流量通過。

簡單的部分正在改變/etc/sysctl.conf

改變

net.ipv4.ip_forward = 0為 1。

然後在一個網路中設置 eth0,在另一個網路中設置 eth1,並在網路之間添加一條路由。

配置防火牆或 selinux 等其他東西取決於您。

我會使用tcpdump -s0 -n host < router IP > -w upgrade.pcap -i any

雖然其中一些可能是多餘的,例如,如果您正在偵聽進出路由器 IP 的流量,我相信您不需要指定太多的介面方式。

引用自:https://serverfault.com/questions/496388