如何通过另一台服务器上的 iptables 阻止一台服务器上由 tcpreplay 抽取的 pcap?

如何通过另一台服务器上的 iptables 阻止一台服务器上由 tcpreplay 抽取的 pcap?

我是 Stack Exchange 的新手。我正在尝试:我使用以下命令从一台服务器抽取流量:tcpreplay -i ens3 ~/daniel/sipdump.pcap 来自服务器 1

我正在通过 tcpdump -i ens3 -nn 捕获服务器 2 中的流量,我想阻止所有默认使用 5060 作为源或目标的 SIP 流量。

但是 pcap 中的 ip 不是目标 ip:我的服务器 2 ip 不同(192.168.101.5)。当我抽取 pcap 时,ip 不同(源和目标)。

[root@serevr1]# tshark -r outbound_incoming1.pcap

  1          0 172.16.130.119 -> 172.16.130.119 SIP/SDP 561 Request: INVITE sip:sandeep@com:5060 | 
  2          0 172.16.130.119 -> 172.16.130.119 SIP 358 Status: 100 OK | 
  3          0 172.16.130.119 -> 172.16.130.119 SIP 358 Status: 183 OK | 
  4          0 172.16.130.119 -> 172.16.130.119 SIP 439 Request: PRACK sip:sandeep@com:5060 | 
  5          0 172.16.130.119 -> 172.16.130.119 SIP 364 Status: 200 OK | 
  6          0 172.16.130.119 -> 172.16.130.119 SIP 364 Status: 180 OK | 
  7          3 172.16.130.119 -> 172.16.130.119 SIP/SDP 529 Status: 200 OK | 
  8          3 172.16.130.119 -> 172.16.130.119 SIP 398 Request: ACK sip:sandeep@com:5060 | 
  9          6 172.16.130.119 -> 172.16.130.119 SIP 385 Request: BYE sip:kapil@com:5060 | 
 10          6 172.16.130.119 -> 172.16.130.119 SIP 346 Status: 200 OK | 

我想丢弃/接受 sip 流量,即 iptables 中的 udp 数据包,但我无法这样做。

请帮助我做到这一点。

答案1

尝试使用tcpreplay-编辑修改目标 MAC 和目标 IP 以匹配目标服务器。或者您可以使用tcprewrite(也是 Tcpreplay 套件的一部分)来修改 PCAP 文件的目标 MAC/IP。无论哪种方式,您的服务器都会拒绝任何其他流量(广播数据包除外)。

请注意,如果目标是 TCP 应用程序,仅更改 MAC 和 IP 地址是不够的。在 TCP 握手期间,客户端和服务器会协商随机序列号,因此仅推送 PCAP 文件是不够的。在这些情况下,您可以使用直播播放,但这需要一个非常特制的 PCAP 文件。

相关内容