【问题标题】:extending iptables kernel modules扩展 iptables 内核模块
【发布时间】:2016-07-10 15:06:06
【问题描述】:

我想编写一个内核模块,为 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 compilation kernel iptables


    【解决方案1】:

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

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

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

    iptables-x.x.x/extensions/
    

    【讨论】:

    • 问题来自被认为是用户空间应用程序的 librairie 文件,我找不到“iptables-xxx/extensions/”文件夹,并且大部分模块安装在名为 Xtable 的文件夹中,我读过它被新的 Netfilter 使用,但是 librari 文件在那里没有相同的名称,xt_XXX.so 而不是 libipt_XXX.c,你认为我应该把它放在那里吗?不改变扩展名
    • @yassine,我不确定您现在的问题是什么,但是如果您点击我为 Netfilter Git 存储库提供的链接,那么您将在源代码树中看到 extensions sub-directory。它包含您正在寻找的那些 libipt_xx.c 文件。请不要忘记对您的问题的答案进行评分。谢谢。
    • 好的,我用apt-get安装了iptable,我还没有找到这个floder,我会尝试手动安装,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多