2012-05-03 30 views
4

我想要捕获端口80上的所有tcp数据包,这些数据包将转发到转发地址并将它们传递到用户空间程序中进行加密。我知道如何用iptables规则做到这一点,如从netfilter接收用户空间中的数据包

iptables -A FORWARD ... -j NFQUEUE --queue-num 10 

,但我似乎无法找到任何例子,有时间限制的,所以我不能只是通过Wireshark的代码来审核。我正在寻找例子,甚至是一个开始的地方。我可以使用套接字吗?或者是否有内核数据结构可用于将数据包从堆栈中弹出,一旦完成,我如何将数据包传递回netfilter?

回答

3

你可以编写一个内核模块来注册某个协议的排队数据包。 您可以阅读netfilter-hacking-HOWTO,第25页有一个“处理排队的数据包”部分。本节讨论更高级别的问题,但会回答您提出的所有问题。

下载它: http://www.netfilter.org/documentation/index.html#documentation-howto

你可以使用nf_reinject()让数据包得到进一步处理。

我不想重复本指南中的任何内容,但这应该足以开始。

相关问题