Linux
如何使用 Linux 擷取 eth0 上的數據包並將所有內容髮送到 eth1?
今天,我通過 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 的流量,我相信您不需要指定太多的介面方式。