阅读:2325回复:12
关于NDIS Hook的问题
我想在网关拦截内网的数据包,用NDIS Hook可以实现吗?
我想通过判断IP地址(内网)来过滤部分内网机子的数据包。 局域网的出口带宽为10-30M,内网有1200台机子,在运行过滤程序时对网络性能的影响有多大? 这个程序实际是计费软件的一部分,我想让没有成功登录的用户不能访问外网。请问实现这个目的,都有什么方法呀? 谢谢 |
|
沙发#
发布于:2003-07-12 23:47
http://driverdevelop.com/forum/post.php?action=reply&fid=10&tid=46199
|
|
板凳#
发布于:2003-07-12 23:47
可以的。
转发数据无非先是进入数据, 到IP层路由后, 作为外出数据发出。 与本机数据的过滤没什么大的区别。 奔腾500的机子就应没问题了! |
|
地板#
发布于:2003-07-13 08:27
可以的。 我觉得在网关,内网和外网的路由在底层完成的。 Win2000的IpFilterDriver是哪一层? 我以前是用Winsock2 SPI来做的,但做完后发现程序只能拦截本机和外网的数据包,内网的数据包可以任意通过。SPI是在应用层吧,我觉得内网的数据包可能到不了这一层。 所以我又改用NDIS,因为它比SPI更底层。Hook比IM容易,所以就选了Hook,但不知道应用于网关是否可行。 |
|
地下室#
发布于:2003-07-14 09:18
IpFilterDriver 是在IP 层, 可能 行的。
SPI 是 不行的。 NDIS HOOk 用的正确的话, 应该可以的。 |
|
5楼#
发布于:2003-07-15 08:41
我使用Ndis Hook的情况是,除了sygate,其他的winRoute,ics,isa Server等等都可以,举例说,网关上安装了sygate和费尔防火墙,选择过滤所有包,工作站仍然能上网,但包内容是可以得到的,通过softice输出都是全的。
这不知道是不是Ndis Hook的原因,费尔给的解释比较模糊,他们只说这是为何费尔防火墙称为个人防火墙的原因。 还是用passthru比较好,但有个问题,如对工作站上网后接收的包,如网页内容,无法确定这个包是哪个IP的,因为还没有经过Nat,内部IP都是网关机上外网的IP。 |
|
6楼#
发布于:2003-07-15 09:41
> 费尔给的解释比较模糊,他们只说这是为何费尔防火墙称为个人防> 火墙的原因。
原因是费尔的技术不是能 抓住转发包。 >PASSTHRU有个问题,如对工作站上网后接收的包,如网页内容,无 >法确定这个包是哪个IP的,因为还没有经过Nat,内部IP都是网>关机上外网的IP。 应该修改PASSTHRU, 让他 在 NAT 之后抓包。 之外,你的NDIS HOOK 用在网关吗? 与sygate 有什麽关系? |
|
7楼#
发布于:2003-07-15 13:38
我觉得从防火墙的原理角度来说,个人防火墙和网关防火墙好像不同,要不然价格也不会差那么多。
我知道passthru比hook好,但那个好像很难,我想以比较容易的方法实现所需的功能。 当初走SPI的路,没有走通。现在正走hook,我想知道hook能否实现我要的功能,如果不行,那只能再想别的办法。 |
|
8楼#
发布于:2003-07-16 08:16
>>原因是费尔的技术不是能 抓住转发包。
费尔用的是Ndis Hook的,能抓住包,但无法过滤(仅限于sygate) >>应该修改PASSTHRU, 让他 在 NAT 之后抓包。 现在的问题是对于工作站出去的包,抓住的是nat前的,所以包含工作站IP的,而进来的包,抓住的也是nat前的,是不包含工作站IP的,那如果一改的话,原来的出包的源IP不是又抓不住了吗? 不过还是想请教一下,如何修改PASSTHRU, 让他在NAT之后抓包?:) >>之外,你的NDIS HOOK 用在网关吗? 与sygate 有什麽关系? 一样用的Ndis Hook用在网关,对于winroute,ics,isa server使用起来都没有问题,但sygate就是不行。。。 [/quote] [编辑 - 7/16/03 by Ralfy] |
|
9楼#
发布于:2003-07-22 10:37
我那的网关没有采用上面说的任何一种说法。如果采用Hook,是否应该考虑转发问题,是采用win2000的默认路由,还是自己实现转发功能。
|
|
10楼#
发布于:2003-07-24 19:21
我用net start filthook启动服务,但总显示“系统找不到指定的文件”?
我在注册表中已经添加了项: ImagePath REG_SZ System32\\Drivers\\filthook.sys 在相应的目录里也有这个文件,为什么不成呢? |
|
11楼#
发布于:2003-08-01 08:03
>ImagePath REG_SZ System32\\Drivers\\filthook.sys
应该用REG_EXPAND_SZ 另外, \"Type\"=dword:00000001 \"Start\"=dword:00000003 以这种类型启动的驱动好像是一启动就已经start了,我试过换其他类型的启动方式,不过不行. |
|
12楼#
发布于:2003-08-04 11:00
ndis hook当然可以!
运行gateway的机器有2快卡(内网、外网),ndis hook可以抓到2快卡的所有内容,你根本就不用关心外网卡,只关心内网就可以即当捕获的包在A、B、C网段时说明是内网的,你这时可以从容过滤 |
|