【发布时间】:2014-12-07 01:59:01
【问题描述】:
我怀疑我想捕获原始数据包,以便我可以使用它们来构建防火墙。 以下脚本在接受每个数据包之前打印它的简短描述。 从 netfilterqueue 导入 NetfilterQueue
def print_and_accept(pkt):
print pkt
pkt.accept()
nfqueue = NetfilterQueue()
nfqueue.bind(1, print_and_accept)
try:
nfqueue.run()
except KeyboardInterrupt:
print
要将发往您的 LAN 的数据包发送到脚本,请键入以下内容:
iptables -I INPUT -d 192.168.0.0/24 -j NFQUEUE --queue-num 1
【问题讨论】:
-
您的问题是什么?这与 Scapy 有什么关系?
-
我正在寻找使用/不使用 scapy 丢弃数据包的任何方法。 Scapy 帮助捕获packtes,但我不知道如何丢弃。
-
不,Scapy(这里)不捕获数据包,它可能被用来剖析它们,仅此而已。 Netfilter 的 NFQUEUE 目标“捕获”数据包。你试过
pkt.drop()而不是.accept()吗? -
NFQUEUE 捕获到第 3 层信息,我想根据 L2 信息丢弃数据包。
标签: python-2.7 iptables packet scapy netfilter