1、我不知道如何从用户空间使用QUEUE target
一个叫做libipq的库被提供用于用户空间数据包处理,请查看它的帮助文档获取更多的信息,你需要编译和安装iptables开发组件:
make install-devel
然后查看libipq(3)【译者注:man libipq 3】
你也可能对Perl绑定libipq有兴趣,Perlipq在http://www.intercode.com.au/jmorris/perlipq/,绑定它自己是使用libipq的一个例子。
其他代码例子包括:
来自netfilter CVS的testsuite/tools/intercept.c
ipqmpd(查看http://www.gnumonks.org/projects/)
nfqtest,netfilter-tools的一部分(查看http://www.gnumonks.org/projects/)
Jerome Etienne的WAN模拟器(查看http://www.off.net/~jme/)
2、我的libipq应用程序报"Failed to received netlink message: No buffer space available"
这意味着内核方Netlink套接字缓冲区超出了空间范围,用户空间应用程序不能控制从内核出来的大量数据。
增大那些内核缓冲区让我不再遇到这个问题是可能的吗?
是的,这些标准的Netlink套接字,你可以通过/proc/sys/net/core,sysctl或在描述符文件上使用SO_RCVBUF选项来调整它们的接收缓冲区大小。
你还可以尝试确保你的应用程序尽可能快地读取任何接收到的数据,如果你不需要完整的数据包,尝试拷贝少量的数据到用户空间(查看ipq_set_mode(3))
3、我想贡献一些代码,但是我还不知道该怎么做
netfilter核心团队维护了一个TODO列表,它里面列出了所有想要的修改/新特征,你看通过匿名CVS检索这个列表,具体指令在netfilter的主页上,你还可以用CVSweb去http://cvs.netfilter.org/cgi-bin/cvsweb/netfilter/TODO/看看。
4、我已经修复了一个bug或编写了一个扩展,我如何提交它?
如果你想发布它,请将其发送到netfilter-devel邮件列表,订阅说明在http://lists.netfilter.org/mailman/listinfo/netfilter-devel/。
正确的发送一个补丁的方法如下:
邮件主题以[PATCH]开头
直接包括在消息的主体中,不是MIME`d
一个cvs-checkin/Changelog条目
diff –u old new表格,来自root目录外部(如当进入未解压的目录时用-p1)
如果你编写了一个新的扩展,或给一个旧的扩展增加了一些新的选项,同时更新netfilter-extension-HOWTO将新的扩展/功能描述包括进来是一个很不错的主意,另外,它将引出更多用户使用你的扩展,你将会得到更多的反馈。
5、提供了增加/移除规则的c/c++ API吗?
不幸的是还没有。
你或许会想libiptc如何?已经在邮件列表中多次指出,libiptc从来就不是被作为一个公共接口使用的,我们不能保证一个稳定的接口,它已经计划在下一个Linux包过滤器中被移除出去,libiptc是太底层的东西。
我们已经注意到缺少一个最基本的API,我们已经开始在这方面努力改进了,到那时,要么使用system()或打开一个管道进入iptables-restore标准输入,今后将给你提供一套性能更好的方法。
原文出处:http://www.netfilter.org/documentation/FAQ/netfilter-faq.html
相关专题
- “艳照门”警钟!编辑教你保护个人隐私 (131次浏览)
- 艳照门启示录:要给电脑“洗澡” (103次浏览)
- 木马程序是如何实现隐藏的 (86次浏览)
- 2008上网必须注意的三大严重安全威胁 (62次浏览)
- 安全性与密码相对强度的暗战 (59次浏览)
- 为系统安全,这些网络端口可以封锁 (56次浏览)
- FCS安装和测试指南——FOREFRONT CLIENT SECU (48次浏览)
- 深入理解及配置ISA Server 2006访问规则 (47次浏览)
- Windows XP隐含超强命令加密系统 (43次浏览)
- 练就金刚不坏之身 让电脑少中点毒的8点忠告 (40次浏览)



