我需要根据具体需要拦截网络流量(IPS模式)并丢弃选定的数据包
我在混杂模式下有两个以太网NIC eth0
和eth1
,我需要从eth0
检索数据包,根据特定规则丢弃一些数据包,并将所选数据包转发到{{ 1}}。
我知道像Snort这样的IPS系统允许拦截和过滤数据包,但如果可能的话,我更喜欢使用Scapy库使用Python程序。
如何使用Scapy在混杂模式下使用两个NIC拦截和转发网络流量?
答案 0 :(得分:1)
你不能“拦截”来自Scapy的数据包。
当Snort这样做时,它不再是IDS(嗅探网络)并成为IPS(基本上是一个防火墙,它会查看应用程序层以及网络层以做出决定)。
要做你想做的事,你需要Netfilter,Iptables的NFQUEUE目标和Python bindings for nfqueue(基于Debian的发行版下的python-nfqueue包)。
Scapy可能只会帮助您剖析数据包(“理解”它们并可选择篡改它们。)
无论如何,这可能会非常慢,所以除非你正在使用PoC,否则你可能想要使用Snort或Suricata。