Im пишущий код для взаимодействия с iptables nfqueue в системах Linux. Я могу получить пакеты очереди и изменить их, поскольку я хочу, однако у меня возникают проблемы с их получением через очередь.Python Scapy 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;
После того как я вернуть пакет я пытаюсь обновить nfqueue в IPTables с помощью предыдущей команды
p = modify(packet)
print p[TCP].payload
payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(p), len(p))
изменить функцию где я создаю новый пакет и возвращаю его.
Не могли бы вы предоставить более подробную информацию о проблеме, а также код, в котором вы создаете 'p'? –
Я обновил сообщение. Спасибо за помощь кстати, действительно нет документации для этого онлайн. Я посмотрел совсем немного. Проблема в том, что пакет изменяется, как я хочу. Полезная нагрузка tcp правильная, но я не знаю, как понравиться повторно принимать новый пакет. Пакет находится в очереди в брандмауэре iptables, а затем я хочу обновить пакет и затем разрешить его. Спасибо – CBaker