阅读:2168回复:12
用TDI Filter能否截获用NAT上网的机器的数据包?
我们单位要我作一个监控本公司员工上网的工具,我现在不知道用NDIS Hook还是用TDI Filter来做(我是初学者)
有人说TDI Filter截的太高了,可是因为我需要解析HTTP、SMTP等协议的内容,用NDIS HOOK好像也不能做到。 望高手指点一个方向。 |
|
沙发#
发布于:2003-10-04 14:03
都可以做到。
用TDI完全可以的。TDI只是过滤不了ICMP/IGMP等INTERNT LAYER协议。 过滤应用层协议,还不如用PACKET |
|
|
板凳#
发布于:2003-10-07 12:32
NAT的必须要工作在数据链路层,不然内网的包在协议栈就会遭到处理的下场。所以如果你确定是NAT的包的话,估计你要做到NDIS才行了。
|
|
|
地板#
发布于:2003-10-08 00:33
我已经在写TDI Filter了,到底行不行,我不想花了大量时间精力却发现走错方向了。
我一向以为NDIS Hook技术不能用来分析HTTP SMTP等应用层协议。 哪位做过类似的工作,指点一下。 |
|
地下室#
发布于:2003-10-08 22:48
1、NAT在NDIS那一层就已经转发数据包了,根本没有到达TDI那一层,估计TDI Filter不会有什么作用。
2、我一向以为NDIS Hook技术不能用来分析HTTP SMTP等应用层协议。哪位做过类似的工作,指点一下。 ============================== 你怎么以为,有什么根据?总不会是瞎猜吧? HTTP使用80号端口,SMTP使用21号端口。在TDI Filter层判断HTTP、SMTP协议,不就是在截获TDI_CONNECT(这里只指TCP协议)时判断远程端口是否是80或者21吗? 判断远程端口的工作在NDIS层完全可以办到。唯一需要担心地就是在NDIS层可能会收到TCPIP.SYS发送给它的分片数据包。 |
|
5楼#
发布于:2003-10-08 23:58
判断端口号当然可以,但是我需要搜索网页中的关键字,如果包含特定字符就不放行。发送邮件需要完全记录,也就是说要有完整的备份。
实现上述要求用NDIS HOOK技术可以实现吗?因为我只是粗粗的了解了一下,可能还有其他办法。 |
|
6楼#
发布于:2003-10-09 10:07
拦截邮件等完全可以在应用层做。SOCKET就可以轻松做到。
最好不要做到驱动里去。因为搜索关键字是很耗CPU的。 不想你系统性能严重下降的话,最好不要做驱动 |
|
|
7楼#
发布于:2003-10-09 12:38
拦截邮件等完全可以在应用层做。SOCKET就可以轻松做到。 他是要在网关的机器上来判断吧? |
|
|
8楼#
发布于:2003-10-10 16:31
TDI绝对不行的,你的监控应
|
|
9楼#
发布于:2003-10-10 18:52
的确是要装在NAT的服务器上,或者在NAT服务器前面再接一台专门用于过滤的。
我也感觉从NAT的原理来看TDI Filter好像截不到,可是我又不能单单封掉某个网站或者端口就完事了,NDIS HOOK技术能对数据包分析吗?而且E-MAIL备份只怕更加不行了吧。 |
|
10楼#
发布于:2003-10-12 11:06
如果打算用TDI做为什么不能用NDIS来做呢,如果你要处理很多包的备份,那么在TDI里和在NDIS里面对系统性能的影响是一致的。TDI可以来分析包,NDIS为什么就不可以呢,所有的外面进入TDI的包都是NDIS交给它的,这不会带来分析上的问题呀。不解! ;) ;) ;) ;)
好运! |
|
|
11楼#
发布于:2003-10-12 11:10
antspower的话很有道理,如果在驱动里面需要分析应用层数据的话,会对系统的性能影响很严重的!如果是NAT的话,是否可以根据NAT列表来做,这样就可以减少很多分析量了! :P :P :P
|
|
|
12楼#
发布于:2007-03-26 22:13
NDIS HOOK 的实现有谁成功过吗?
使用可以动态加载驱动的方式。 |
|
|