Linuxシステムでiptables nfqueueとやり取りするためのPythonコードを書いています。キュー パケットを取得して、必要に応じて変更することはできますが、キューを介してそれらを受け入れるのに問題があります。
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))
変更機能は、新しいパケットを作成して返す場所です。