我们正在开发一个基于iptables的防火墙工具(非商业)。
但是使用现有iptables无法实现以下功能:
在windows下,如果使用windows平台下的防火墙,当打开一个新的网络应用程序时,如果防火墙发现这个应用程序还是不允许访问网络的,那么会提示用户是否允许该程序访问网络。这个交互功能是非常实用的,但是使用iptables无法实现。
但是,Netfilter是可扩展的,可以通过自己编写内核模块来增加这项功能。我对linux内核以及网络协议栈还有一定的了解,所以想尝试一下。
请各位给点思路,下面是一些比较具体的问题。
具体问题1:当检测出未知端口的出站SYN包,如何与我的防火墙工具进行交互(信号?)
具体问题2:如何从数据包找到发出该数据包的应用程序?
可能我说的还不是很清楚,下面我给出一个应用场景:
在一个只允许web应用的防火墙下,一个用户打开了lumaQQ,这个时候“防火墙工具”探出一个对话框,显示“是否允许 /opt/LumaQQ/lumaqq访问网络”。如果用户选择是,那么就将该SYN包放行,并通过iptables添加一条新的规则允许该应用程序以后也能够访问网络,否则丢弃该数据包,并禁止该应用程序以后也访问网络。
只要能实现上面应用场景,不管采用什么方法都行,还请各位多多指点!!
十分感谢!!
--------------------next---------------------
阅读(490) | 评论(0) | 转发(0) |