0

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))

変更機能は、新しいパケットを作成して返す場所です。

4

1 に答える 1