46得票9回答
如何以编程方式动态管理iptables规则?

我需要查询现有规则,还要能够轻松添加和删除规则。我没有找到任何相关的API。我是否遗漏了什么? 我找到最接近的解决方案是使用 iptables-save | iptables-xml 进行查询,并手动调用 iptables 命令来添加/删除规则。我还考虑过另一种解决方案,即从应用程序数据库中...

12得票6回答
来自sk_buff的IP地址

我正在编写一个注册了netfilter钩子的内核模块。我尝试通过使用sk_buff->saddr成员来获取调用方的IP地址。有没有一种方法可以以人类可读的方式即x.x.x.x格式获取IP地址? 我发现函数inet_ntop(),但它似乎在内核头文件中不可用。如何将 \xC0\xA8\x...

12得票2回答
使用Linux netfilter将源IP地址从struct iphdr*转换为字符串等效形式

我希望将使用netfilter捕获的数据包中的源IP和目标IP地址转换为char *。 在我的netfilter钩子函数中,我有:sock_buff = skb; // argument 2 of hook function // ip_header is struct iphdr* ip...

11得票1回答
如果所有Netfilter钩子都指定为NF_IP_PRI_LAST或NF_IP_PRI_FIRST,那么它们的顺序是什么?

如果我编写了几个内核模块,并在所有模块中指定它们应该是第一个(或最后一个)被调用的netfilter钩子,在实际调用时,它们会按照什么顺序被调用?netfilter_ops_out.hook = hook_func_out; netfilter_ops_out.pf = P...

11得票4回答
为什么在netfilter钩子中空的关键段会出现“BUG:在原子操作时调度”的错误?

我写了这个钩子:#include <linux/kernel.h> #include <linux/module.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> ...

9得票2回答
多核系统上的Netfilter钩子

我们编写了一个使用netfilter钩子拦截IP数据包的LKM。问题是,在1Gb/s负载下,我们发现钩子仅通过soft irq加载一个CPU核心。其他15个核心处于闲置状态。因此,我得出结论,钩子不支持多线程。 所以我的问题是:有没有办法将钩子处理分布到多个核心上?

8得票1回答
关于 iptables 中的 "-set-xmark" 的一些问题

我有一个如下的规则: -A PREROUTING -d 10.228.20.15/32 -p tcp -m tcp --dport 80--tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark 0x70/0xffffffff 男人文档如下解释...

8得票1回答
从iptables最新列表中删除那些在ipset中不存在的条目。

我在工作中使用iptables recent匹配功能,它可以保存我需要的IP地址及其上一次出现的时间。 但现在我需要从iptables recent列表中删除某些条目,这些条目存在于一个ipset中。请问是否有可能删除这些条目?如果可以,应该如何操作?

8得票2回答
如何使用net_dev_add() API过滤和拦截Linux数据包?

我正在为Linux编写以太网网络驱动程序。我希望能够接收数据包,编辑并重新发送它们。 我知道如何在 packet_interceptor 函数中编辑数据包,但是如何在此函数中丢弃传入的数据包呢? #include <linux/netdevice.h> #include <...

7得票1回答
Linux内核模块:如何重新注入内核视为NF_STOLEN的数据包?

晚上好。这对我来说是在这个网站发布帖子的第一次,但我已经是一个感激的读者,从这个论坛中学到了很多东西。这是我第一次遇到一个问题,我既不能自己解决,也不能通过Stackoverflow或互联网上其他资源的帮助来解决。 我希望你能再次帮助我(从现在开始,我也能够帮助他人,因为我觉得我已经变得足够...