使用Scapy作为IPS来拦截,选择和转发数据包

时间:2014-12-04 18:39:08

标签: python networking scapy packet-capture network-traffic

我需要根据具体需要拦截网络流量(IPS模式)并丢弃选定的数据包 我在混杂模式下有两个以太网NIC eth0eth1,我需要从eth0检索数据包,根据特定规则丢弃一些数据包,并将所选数据包转发到{{ 1}}。
我知道像Snort这样的IPS系统允许拦截和过滤数据包,但如果可能的话,我更喜欢使用Scapy库使用Python程序。 如何使用Scapy在混杂模式下使用两个NIC拦截和转发网络流量?

1 个答案:

答案 0 :(得分:1)

你不能“拦截”来自Scapy的数据包。

当Snort这样做时,它不再是IDS(嗅探网络)并成为IPS(基本上是一个防火墙,它会查看应用程序层以及网络层以做出决定)。

要做你想做的事,你需要Netfilter,Iptables的NFQUEUE目标和Python bindings for nfqueue(基于Debian的发行版下的python-nfqueue包)。

Scapy可能只会帮助您剖析数据包(“理解”它们并可选择篡改它们。)

无论如何,这可能会非常慢,所以除非你正在使用PoC,否则你可能想要使用Snort或Suricata。