扩展 iptables 内核模块

extending iptables kernel modules

我想编写一个内核模块,为 linux iptables 添加一些功能。在开始编写我自己的模块之前,我想做一些测试并尝试使用一些模块并尝试将它们添加到我新安装的 Ubuntu 15.5 机器上。它提供了 libipt_xx.c 、 ipt_xx.c 和 ipt_xx.h,我在一些教程中读到它们应该以这种方式传递文件:

ipt_xx.c   -> /usr/src/linux-headers-4.2.0-16/net/ipv4/netfilter/
ipt_xx.h   -> /usr/src/linux-headers-4.2.0-16/include/uapi/linux/netfilter_ipv4
libipt_xx.c   -> /usr/local/src/iptables-x.x.x/extensions/

但是,我找不到 /usr/local/src/iptables-x.x.x/ 目录。当我执行 iptables -V 时,我有 iptables v1.4.21 作为输出,所以这意味着我应该有一个像 iptables-1.4.21.

这样的文件夹

感谢您的帮助。

您提到的一些文件是 Linux 内核源代码的一部分。当您从多个地方之一下载 Linux 内核源代码时,您会得到它们。这些文件以静态或模块的形式编译到内核中。这些文件位于:

net/ipv4/netfilter/
include/uapi/linux/netfilter_ipv4/

其他文件是 iptables 源代码的一部分,它是用户 space 应用程序。您可以从 Netfilter Git repository 获取源代码。这些文件位于:

iptables-x.x.x/extensions/