阅读:1740回复:5
怎么实现WIN2K SERVER下IP或MAC白名单
我想在WIN2K SERVER下做一个IP或MAC地址白名单,就是只允许与在名单里的机器通信。本来想直接用RRAS里的IP筛选器,没想到刚添加了200多个RULE,系统就崩溃了,看来IP筛选器不支持大量规则,可是我的白名单中至少有300多个IP或MAC,如果对每个包都做检查是不是效率非常低,怎样才能实现高效率的白名单呢?有现成的防火墙软件也行
|
|
沙发#
发布于:2003-09-14 20:33
我有快速过滤IP地址的方法了,但是却不会写驱动程序,真是有力都使不上。
用汇编写的快速过滤IP的程序为 iplist dd ip1,ip2,ip3,ip4;其中所有IP均为转换为32位数字的IP地址 count=4 mov eax,ip ;ip为要过滤的当前IP mov edi,offset iplist;es:edi=>iplist mov ecx,count ; cld repe scasd;这样最多循环4次就能找到IP,即使有300个IP也只要300次,对CPU来说,每次过滤花300个时钟周期可能也无所谓了吧 je found [编辑 - 9/14/03 by HarryPotter] |
|
板凳#
发布于:2003-09-15 11:46
我有快速过滤IP地址的方法了,但是却不会写驱动程序,真是有力都使不上。 300多个IP,也就300多个long数据。如果事先进行排序,过滤时使用“二分查找”的方法,总共不超过10次比较就可得出结果,是不是比你原来的方法快一些? |
|
地板#
发布于:2003-09-20 11:46
厉害!我怎么就没想到呢,呵呵
还有个问题是我的服务器已经启动了RRAS的NAT服务,它也是用的IP FILTER,虽然我还没有在里面添加任何RULES。但是如果我再写一个IP FILTER会不会冲突呢 |
|
地下室#
发布于:2003-09-24 23:21
可以用NDIS驱动实现嘛,很简单的
|
|
5楼#
发布于:2003-09-25 15:16
这个应该是做在ndis中比较好,imd就可以了。
|
|
|