【发布时间】:2014-04-02 23:44:04
【问题描述】:
我正在编写 python 代码来与 linux 系统上的 iptables nfqueue 交互。我能够检索队列数据包并根据需要修改它们,但是我无法通过队列接受它们。
payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(p), len(p))
据我了解,这是允许它通过队列的行。 p 是我创建的新数据包,payload 是原始队列数据包。
这方面的文档确实不多,因此我们将不胜感激。 谢谢
这就是我创建数据包的方式
def queue_callback(i, payload)
data = payload.get_data()
packet = IP(data)
这是我创建数据包的地方。我做了一点数据包操作,这就是我返回它的地方
packet[TCP].payload = after;
return packet;
返回数据包后,我尝试使用上一个命令更新 iptables 中的 nfqueue
p = modify(packet)
print p[TCP].payload
payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(p), len(p))
修改功能是我创建一个新数据包并返回它的地方。
【问题讨论】:
-
您能否提供有关该问题的更多信息,以及您创建
p的代码? -
我更新了帖子。顺便说一句,感谢您的帮助,在线上确实没有此文档。我看过不少。问题是数据包正在按照我想要的方式进行修改。 tcp 有效负载是正确的,但是我不知道如何重新接受新数据包。数据包在 iptables 防火墙中排队,然后我想更新数据包,然后允许它通过。谢谢
标签: python linux iptables scapy