个人防火墙的工作在TDI层和NDIS层

虽然真正可靠的防火墙应该工作在NDIS层,但是,个人防火墙和用于服务器的防火墙毕竟还是有一些不同之处,工作在服务器端的防火墙只需要根据协议、地址 和端口判断是转发还是丢弃就行了,高级一点还可以分析包内容(全状态过滤),根据预设的引擎判断数据包正常还是非法,这样的防火墙还可以用硬件实现。

但是个人防火墙的特别之处就是需要与用户交互,用户数据多是基于IP协议的,并且用户并不关心协议的细节(掌握这些对大多数用户来说有点难度),所以个人 防火墙除了通过IP层的协议进行过滤之外,更主要的手段是根据用户的意愿允许还是阻止某个进程(程序)访问网络,也就是应用程序控制,在这个粒度上用户比 较容易理解和控制。从这一点上讲,工作在TDI层的防火墙的优势就是能够在网络访问发生的时候追踪到发起访问的进程名称,从而给用户一个提示。

工作在TDI层也有其优势 写道
而工作在NDIS层的防火墙则不容易做到这一点。因为发送数据时上层驱动将数据包提交到NDIS的发送队列中后就返回了,当数据包被真正投递的时候已经无从确定是哪个程序(进程)发送的了,对于收到的数据包需要根据端口号判断是哪个程序的,但是在NDIS层并不知道端口号和进程的对应关系,所以无论数据发送还是接收都无法有效地确定是属于哪个进程的数据。如果不能确定哪个进程访问网络,只是根据地址、端口和协议进行过滤对(大多数)用户来说是很不友好的,所以个人防火墙最好应该是TDI+NDIS双保险:TDI层根据进程级访问过滤,NDIS层根据地址、端口和协议过滤。
 

猜你喜欢

转载自xmiangui.iteye.com/blog/609422