【问题标题】:I want to know how capture RAW data packets in a Queue using Iptables or Nftables我想知道如何使用 Iptables 或 Nftables 在队列中捕获 RAW 数据包
【发布时间】: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


【解决方案1】:

根据您的评论,原始数据包是指第 2 层。Iptables 在第 3 层工作,您需要改用 ebtables。

【讨论】:

  • 谢谢@Pierre,我确实检查了可食用的东西,但仍然没有得到我需要的东西,因为它正在建设中。
  • 我觉得很遗憾你别无选择,只能等待......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多