荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: michaelx (我有事不在), 信区: Security
标  题: 在Win2000中如何关闭ICMP(Ping)
发信站: 荔园晨风BBS站 (Sun May 20 02:46:07 2001), 转信

在Win2000中如何关闭ICMP(Ping)
    ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报
文协议,这个协议主要是用来进行错误信息和控制信息的传递,例如著名的Ping和Trac
ert工具都是利用ICMP协议中的ECHO request报文进行的(请求报文ICMP ECHO类型8代码
0,应答报文ICMP ECHOREPLY类型0代码0)。
ICMP协议有一个特点---它是无连结的,也就是说只要发送端完成ICMP报文的封装并传递
给路由器,这个报文将会象邮包一样自己去寻找目的地址,这个特点使得ICMP协议非常
灵活快捷,但是同时也带来一个致命的缺陷---易伪造(邮包上的寄信人地址是可以随便
写的),任何人都可以伪造一个ICMP报文并发送出去,伪造者可以利用SOCK_RAW编程直
接改写报文的ICMP首部和IP首部,这样的报文携带的源地址是伪造的,在目的端根本无
法追查,(攻击者不怕被抓那还不有恃无恐?)根据这个原理,外面出现了不少基于IC
MP的攻击软件,有通过网络架构缺陷制造ICMP风暴的,有使用非常大的报文堵塞网络的
,有利用ICMP碎片攻击消耗服务器CPU的,甚至如果将ICMP协议用来进行通讯,可以制作
出不需要任何TCP/UDP端口的木马(参见《揭开木马的神秘面纱三》)......既然ICMP协
议这么危险,我们为什么不关掉它呢?
我们都知道,Win2000在网络属性中自带了一个TCP/IP过滤器,我们来看看能不能通过这
里关掉ICMP协议,桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->
高级->选项->TCP/IP过滤,这里有三个过滤器,分别为:TCP端口、UDP端口和IP协议,
我们先允许TCP/IP过滤,然后一个一个来配置,先是TCP端口,点击"只允许",然后在下
面加上你需要开的端口,一般来说WEB服务器只需要开80(www),FTP服务器需要开20(FT
P Data),21(FTP Control),邮件服务器可能需要打开25(SMTP),110(POP3),以此类推
......接着是UDP,UDP协议和ICMP协议一样是基于无连结的,一样容易伪造,所以如果
不是必要(例如要从UDP提供DNS服务之类)应该选择全部不允许,避免受到洪水(Floo
d)或碎片(Fragment)攻击。最右边的一个编辑框是定义IP协议过滤的,我们选择只允
许TCP协议通过,添加一个6(6是TCP在IP协议中的代码,IPPROTO_TCP=6),从道理上来
说,只允许TCP协议通过时无论UDP还是ICMP都不应该能通过,可惜的是这里的IP协议过
滤指的是狭义的IP协议,从架构上来说虽然ICMP协议和IGMP协议都是IP协议的附属协议
,但是从网络7层结构上ICMP/IGMP协议与IP协议同属一层,所以微软在这里的IP协议过
滤是不包括ICMP协议的,也就是说即使你设置了“只允许TCP协议通过”,ICMP报文仍然
可以正常通过,所以如果我们要过滤ICMP协议还需要另想办法。
刚刚在我们进行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 Filt
er,然后在操作选框中选择我们刚刚定义的Deny操作,退出向导窗口,右击ICMP Filte
r并启用它,现在任何地址进入的ICMP报文都会被丢弃了。
虽然用IP sec能够对ICMP报文进行过滤,不过操作起来太麻烦,而且如果你只需要过滤
特定的ICMP报文,还要保留一些常用报文(如主机不可达、网络不可达等),IP sec策
略就力不从心了,我们可以利用win2000的另一个强大工具路由与远程访问控制(Routi
ng & Remote Access)来完成这些复杂的过滤操作。
路由与远程访问控制是win2000用来管理路由表、配置VPN、控制远程访问、进行IP报文
过滤的工具,默认情况下并没有安装,所以首先你需要启用它,打开"管理工具"->"路由
与远程访问",右击服务器(如果没有则需要添加本机)选择"配置并启用路由及远程访
问",这时配置向导会让你选择是什么样的服务器,一般来说,如果你不需要配置VPN服
务器,那么选择"手动配置"就可以了,配置完成后,主机下将出现一个IP路由的选项,
在"常规"中选择你想配置的网卡(如果你有多块网卡,你可以选择关闭某一块的ICMP)
,在网卡属性中点击"输入筛选器",添加一条过滤策略"from:ANY to:ANY 协议:ICMP
 类型:8 :编码:0 丢弃"就可以了(类型8编码0就是Ping使用的ICMP_ECHO报文,如果
要过滤所有的ICMP报文只需要将类型和编码都设置为255)
细心的朋友刚才可能已经发现,在输入、输出过滤器的下面,还有一个"碎片检查"功能
,这个功能使用来应付IP碎片攻击的,这已经超出了本文所讨论的范围,我会在以后的
拒绝服务攻击的文章中继续和大家一起探讨的。Win2000的路由及远程访问是一个功能非
常强大的工具集,如果你好好地研究,一定能发现更多的功能和技巧,如果你有什么心
得体会,也请不吝告诉我,我的Email地址是:Shotgun@xici.net
黑白道 - 21Road.com 为您搜集一切 !

--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 202.105.102.34]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店