Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2520897
  • 博文数量: 867
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 9800
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 14:44
文章分类

全部博文(867)

文章存档

2007年(6)

2006年(861)

我的朋友

分类: LINUX

2006-09-13 10:01:21

对tcp/ip协议你一定非常熟悉,但是对icmp协议你可能就一无所知了。icmp协议是一个非常重要的协议,它对于安全具有极其重要的意义。下面我们就来谈谈icmp协议。

什么是icmp协议

icmp是“internet control message protocol”(internet控制消息协议)的缩写。它是tcp/ip协议族的一个子协议,用于在ip主机、路由器之间传递控制消息。控制消息是指通不通、主机是否可达、路由是否可用等本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  我们在中经常会使用到icmp协议,只不过我们觉察不到而已。比如我们经常使用的用于检查通不通的ping命令,这个“ping”的过程实际上就是icmp协议工作的过程。还有其他的命令如跟踪路由的tracert命令也是基于icmp协议的。

icmp的重要性

icmp协议对于安全具有极其重要的意义。icmp协议本身的特点决定了它非常容易被用于攻击上的路由器和主机。例如,在1999年8月海信集团“悬赏”50万元人民币测试防火墙的过程中,其防火墙遭受到的icmp攻击达334050次之多,占整个攻击总数的90%以上!可见,icmp的重要性绝不可以忽视!

  比如,可以利用操作系统规定的icmp数据包最大尺寸不超过64kb这一规定,向主机发起“ping of death”(死亡之ping)攻击。“ping of death” 攻击的原理是:如果icmp数据包的尺寸超过64kb上限时,主机就会出现内存分配错误,导致tcp/ip堆栈崩溃,致使主机死机。

  此外,向目标主机长时间、连续、大量地发送icmp数据包,也会最终使系统瘫痪。大量的icmp数据包会形成“icmp风暴”,使得目标主机耗费大量的cpu资源处理,疲于奔命。

 应对icmp攻击

 虽然icmp协议给黑客以可乘之机,但是icmp攻击也并非无药可医。只要在日常管理中未雨绸缪,提前做好准备,就可以有效地避免icmp攻击造成的损失。
对于“ping of death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对icmp数据包进行带宽限制,将icmp占用的带宽控制在一定的范围内,这样即使有icmp攻击,它所占用的带宽也是非常有限的,对整个的影响非常少;第二种方法就是在主机上设置icmp数据包的处理规则,最好是设定拒绝所有的icmp数据包。

  设置icmp数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种是在主机上安装防火墙。具体设置如下:

  1.在 2000 server中设置icmp过滤

   2000 server提供了“路由与远程访问”服务,但是默认情况下是没有启动的,因此首先要启动它:点击“管理工具”中的“路由与远程访问”,启动设置向导。在其中选择“手动配置服务器”项,点击[下一步]按钮。稍等片刻后,系统会提示“路由和远程访问服务现在已被安装。要开始服务吗?”,点击[是]按钮启动服务。

  服务启动后,在计算机名称的分支下会出现一个“ip路由选择”,点击它展开分支,再点击“常规”,会在右边出现服务器中的连接(即网卡)。用鼠标右键点击你要配置的连接,在弹出的菜单中点击“属性”,会弹出一个连接属性的窗口中有两个按钮,一个是“输入筛选器”(指对此服务器接受的数据包进行筛选),另一个是“输出筛选器”(指对此服务器发送的数据包进行筛选),这里应该点击[输入筛选器] 按钮,会弹出一个“添加筛选器”窗口,再点击[添加]按钮,表示要增加一个筛选条件。

  在“协议”右边的下拉列表中选择“icmp”,在随后出现的“icmp类型”和“icmp编码”中均输入“255”,代表所有的icmp类型及其编码。icmp有许多不同的类型(ping就是一种类型),每种类型也有许多不同的状态,用不同的“编码”来表示。因为其类型和编码很复杂,这里不再叙述。

  点击[确定]按钮返回“输入筛选器”窗口,此时会发现“筛选器”列表中多了一项内容。点击[确定]按钮返回“本地连接”窗口,再点击[确定]按钮,此时筛选器就生效了,从其他计算机上ping这台主机就不会成功了。

2. 用防火墙设置icmp过滤

  现在许多防火墙在默认情况下都启用了icmp过滤的功能。如果没有启用,只要选中“防御icmp攻击”、“防止别人用ping命令探测”就可以了
阅读(2479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~