【参加讨论】刚刚在我们进行tcp/ip过滤时,还有另外一个选项:ip安全机制(ip security),我们过滤icmp的想法就要着落在它身上。
打开本地安全策略,选择ip安全策略,在这里我们可以定义自己的ip安全策略。一个ip安全过滤器由两个部分组成:过滤策略和过滤操作,过滤策略决定哪些报文应当引起过滤器的关注,过滤操作决定过滤器是“允许”还是“拒绝”报文的通过。要新建ip安全过滤器,必须新建自己的过滤策略和过滤操作:右击本机的ip安全策略,选择管理ip过滤器,在ip过滤器管理列表中建立一个新的过滤规则:icmp_any_in,源地址选任意ip,目标地址选本机,协议类型是icmp,切换到管理过滤器操作,增加一个名为deny的操作,操作类型为"阻止"(block)。这样我们就有了一个关注所有进入icmp报文的过滤策略和丢弃所有报文的过滤操作了。需要注意的是,在地址选项中有一个镜像选择,如果选中镜像,那么将会建立一个对称的过滤策略,也就是说当你关注any ip->my ip的时候,由于镜像的作用,实际上你也同时关注了my ip->any ip,你可以根据自己的需要选择或者放弃镜像。再次右击本机的ip安全策略,选择新建ip过滤策略,建立一个名称为icmp filter的过滤器,通过增加过滤规则向导,我们把刚刚定义的icmp_any_in过滤策略指定给icmp filter,然后在操作选框中选择我们刚刚定义的deny操作,退出向导窗口,右击icmp filter并启用它,现在任何地址进入的icmp报文都会被丢弃了。
虽然用ip sec能够对icmp报文进行过滤,不过操作起来太麻烦,而且如果你只需要过滤特定的icmp报文,还要保留一些常用报文(如主机不可达、网络不可达等),ip sec策略就力不从心了,我们可以利用win2000的另一个强大工具路由与远程访问控制(routing & remote access)来完成这些复杂的过滤操作。
路由与远程访问控制是win2000用来管理路由表、配置vpn、控制远程访问、进行ip报文过滤的工具,默认情况下并没有安装,所以首先你需要启用它,打开"管理工具"->"路由与远程访问",右击服务器(如果没有则需要添加本机)选择"配置并启用路由及远程访问",这时配置向导会让你选择是什么样的服务器,一般来说,如果你不需要配置vpn服务器,那么选择"手动配置"就可以了,配置完成后,主机下将出现一个ip路由的选项,在"常规"中选择你想配置的网卡(如果你有多块网卡,你可以选择关闭某一块的icmp),在网卡属性中点击"输入筛选器",添加一条过滤策略"from:any to:any 协议:icmp 类型:8 :编码 丢弃"就可以了(类型8编码0就是ping使用的icmp_echo报文,如果要过滤所有的icmp报文只需要将类型和编码都设置为255)