我正在编写 python 代码来与 linux 系统上的 iptables nfqueue 交互。我能够检索队列数据包并根据需要修改它们,但是我无法通过队列接受它们。
payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(p), len(p))
据我了解,这就是允许它通过队列的线路。p 是我创建的新数据包,有效负载是原始队列数据包。
确实没有太多关于此的文档,因此我们将不胜感激。谢谢
这就是我创建数据包的方式
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))
修改功能是我创建一个新数据包并返回它的地方。