路由器怎么接-360来电显示归属地

icmp数据包
2023年4月3日发(作者:win7旗舰版激活软件)

1ICMP简介

ICMP全称InternetControlMessageProtocol(Intemet控制报文协

议),该协议是TCP/IP协议族的一个子协议,属于网络层协议,主要

用于在主机与路由器之间传递控制报文。控制报文是指网络通不通、

主机是否可达、路由是否可用等网络本身的消息。当遇到IP数据无

法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时

会自动发送ICMP报文。我们可以通过Ping命令发送ICMP回应请

求报文(ICMPEcho-Request)并记录收到ICMP回应回复报文

(ICMPEcho-Reply)。通过这些报文来对网络或主机的故障提供参

考依据。ICMP是用IP封装和发送的,用来向IP和高层协议通报有

关网络层的差错和流量控制情况,所有的路由器和主机都支持此协

议。

1.1ICMP报文

0:回应应答3:目的不可达

4:源抑制5:路由重定向

8:回应请求

11:分组超时14:时间戳应答

17:地址掩码请求

18:地址掩码应答

ICMP报文的封装:封装在IP数据报中,如下图:

1.2ICMP回应请求和应答

ICMP的请求、应答报文是一种双向信息查询报文,用于获取某些有

用信息,以便进行故障诊断的网络控制。请求、应答报文共有3对。

①回应请求/应答报文(类型8/0):检测目的站点的可达性与状态。信

源机向目的机传送一个回应请求报文,其中包含一个任选的数据区。

目的机接收到请求报文后,向信源机发送相应的回应应答报文,其中

包含了请求报文中的任选数据区的拷贝。如果成功地接收到正确的应

答报文,则说明网络的分组转发和路由选择功能是正常的。在Unix

等许多操作系统中,Ping命令的实现就是利用该报文实现的。

②时间戳请求与应答报文(类型13/14):在网络中实现时间同步和分

组传送时间的估计。利用该报文可以估计两个结点之间的机器时间

差,以便进行同步。但是,由于TCP/IP网络分组传送的随机性。用

这种方式进行测量和同步是很不准确的。

③地址掩码请求与应答报文(类型17/18):用于获取目的主机所在网

络的子网掩码,用于无盘系统在引导过程中获取自己的子网掩码。

1.3ICMP差错报告

差错报告是单方向的:由路由器向信源主机报告(如图1)。对ICMP

差错报文进行响应时,不会生成另一份ICMP差错报文,否则会永远

循环下去。

差错报告类型:

①目的地不可达报告:网络不可达、主机不可达、协议和端口不可达

等(见图4)

②超时报告

③参数出错报告

差错报告的能力是有限的:

①ICMP实现网络中诊断信息的交换,并不能提高IP分组传输的可

靠性。仅仅是报告了网络的问题;

②ICMP提供差错报告的功能,但并没有严格规定对于某种差错应该

采取何种差错处理措施;

③路由器并不能发现所有的传输错误。

1.4ICMP源抑制(类型4)(SourceQuench)

通过限制信源主机发送IP分组的速率来降低拥塞的方法。

源抑制的三个阶段:路由器发现拥塞,并向源端发送ICMP源抑制报

文;信源主机逐步降低发往目的主机的分组发送速率;拥塞解除后,

信源主机逐步恢复原有的分组发送速率。

1.5ICMP重定向(类型5)

在转发分组时路由器同时检查被转发分组。一旦发现其使用非最优路

径.则向信源发送重定向报文,指出去往目的端的最佳路径。重定向

机制用于同一个网络中的主机和路由器之间。

TCP/IP网中路由选择是由路由器和主机上的路由表决定,而路由表

示反映了网络的拓扑结构。网络拓扑发生变化时,路由表也需要根据

网络中新的路由信息来进行相应的调整。路由器获得路由信息的方法

是利用路由协议,在路由器之间定期交换路由信息。而主机获得路由

信息的方法是利用ICMP的重定向报文。

主机在启动时其缺省的路由表(通常保存在缓存中)通常不是最优的,

网络变化的信息也应该通知给主机。ICMP重定向机制给主机提供了

一种获得网络配置信息的机制。

2基于ICMP的攻击

ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器

和主机。

2.1PingofDeath

黑客利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规

定,向主机发起“PingofDeath”(死亡之Ping)攻击。“PingofDeath”

攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就

会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

2.2ICMP攻击导致拒绝服务(DoS)攻击

向目标主机长时阃、连续、大量地发送ICMP数据包,也会最终使系

统瘫痪。它的工作原理是利用发出ICMP类型8的echo-request给

目的主机,对方收到后会发出中断请求给操作系统,请系统回送一个

类型0的echo-reply。大量的ICMP数据包会形成“ICMP风暴”或称

为“ICMP洪流”,使得目标主机耗费大量的CPU资源处理,疲于奔命。

这种攻击被称为拒绝服务(DoS)攻击,它有多种多样具体的实现方

式。

1.针对宽带的DOS的攻击

主要是利用无用的数据来耗尽网络带宽。通过高速发送大量的ICMP

echo-reply数据包,目标网络的带宽瞬间就会被耗尽,组织合法的

数据通过网络。ICMPecho-reply数据包具有较高的优先级,在一般

情况下,网络总是允许内部主机使用Ping命令。

2.针对连接的DOS攻击

针对连接的DOS攻击,可以终止现有的网络连接。它使用合法的

ICMP消息影响所有的IP设备。Nuke通过发送一个伪造的ICMP

DestinationUnreachable或Redirect消息来终止合法的网络连接。

更具恶意的攻击如puke和smack,会给某一个范围内的端口发送大

量的数据包,毁掉大量的网络连接,同时还会消耗受害主机CPU的

时钟周期。

攻击

首先,攻击者会先假冒目的主机(受害者)之名向路由器发出广播的

ICMPecho-request数据包。因为目的地是广播地址,路由器在收到

之后会对该网段内的所有计算机发出此ICMP数据包,而所有的计算

机在接收到此信息后,会对源主机(亦即被假冒的攻击目标)送出

ICMPecho-reply响应。如此一来,所有的ICMP数据包在极短的时

间内涌入目标主机内,这不但造成网络拥塞,更会使目标主机因为无

法反应如此多的系统中断而导致暂停服务。除此之外,如果一连串的

ICMP广播数据包洪流(packetflood)被送进目标网内的话,将会造成

网络长时间的极度拥塞,使该网段上的计算机(包括路由器)都成为攻

击的受害者。

1)下面详细介绍Smurf攻击的过程:

1>黑客锁定一个被攻击的主机(通常是一些Web服务器);

2>黑客寻找可做为中间代理的站点,用来对攻击实施放大(通常会选

择多个,以便更好地隐藏自己,伪装攻击);

3>黑客给中间代理站点的广播地址发送大量的ICMP包(主要是指

Ping命令的回应包)。这些数据包全都以被攻击的主机的IP地址做

为IP包的源地址;

4>中间代理向其所在的子网上的所有主机发送源IP地址欺骗的数据

包;

5>中间代理主机对被攻击的网络进行响应。

举例解释一下:假设黑客拥有调制解调器,或者其它的能快速上网方

式,能以1Mbps的速度向中间代理机器发送ICMP数据包;再假设

中间代理站点有150台主机对这些ICMP包做出了反应。这样,一

下子就有150Mbps的攻击数据从中间代理拥向被攻击的主机。黑客

可以控制这个过程直到他自己连接到中间代理机器上,并且控制中间

代理持续向被攻击主机发送ICMP包。

2)如何防止网络遭受Smurf攻击:

首先,通过在路由器上使用输出过滤,就可以滤掉源欺骗的IP数据

包,从而阻止从网络中发起的Smurf攻击。在路由器上增加这类过

滤规则的命令如下:

Access-list100permitIP{你的网络号}{你的网络子网掩码}any

Access-list100denyIPanyany

在你局域网的边界路由器上使用这一访问列表的过滤规则,就可以阻

止你的网络上的任何人向局域网外发送这种源欺骗的IP数据包。

其次,停止你的网络做为中间代理。如果没有必须要向外发送广播数

据包的情况,就可以在路由器的每个接口上设置禁止直接广播,命令

如下:

noipdirected-broadcast

还有,如果你的网络比较大,具有多个路由器,那么可以在边界路由

器上使用以下命令:

ipverifyunicastreverse-path

让路由器对具有相反路径的ICMP欺骗数据包进行校验,丢弃那些没

有路径存在的包。最好是运行Cisco快速转发(CiscoExpress

Forwarding,CEF)或者其它相应的软件。这是因为在路由器的CEF

表中,列出了该数据包所到达网络接口的所有路由项,如果没有该数

据包源IP地址的路由,路由器将丢弃该数据包。例如,路由器接收

到一个源IP地址为1.2.3.4的数据包,如果CEF路由表中没有为IP

地址1.2.3.4提供任何路由(即反向数据包传输时所需的路由),则路

由器会丢弃它。

3)遭受Smurf攻击时的防护:

如果你的主机不幸成为了Smurf攻击的目标,在这儿可以找到很多

种方法来限制这种拒绝服务攻击造成的影响。在最近新进修改的

CiscoIOS操作系统中,被访问列表所拒绝的数据包直接就被丢弃(其

丢弃速度几乎接近于硬件速度)。不过每秒钟每个列表行有两个数据

包例外,这就是向中间代理回送ICMP不可达消息的数据包。因此,

如果你不想做为别人Ping的目标,那么在边界路由器上就直接可以

阻塞掉。激活这个列表的命令是:

ipicmprate-limitunreachable

如果必须允许Ping命令,你可以通过使用命令访问速率(Committed

AccessRate,CAR)来限制ICMP的流量。以下列出了其它Cisco

IOS的例子:

configt

Access-list100permiticmpany{你的网络号}{你的网络子网掩码}

echo-reply

Access-list100permiticmpany{你的网络号}{你的网络子网掩

码}echoInterfacee1

Rate-limitinputaccess-group18000conform

actiontransmitexceedactiondrop

这个例子限制ICMP的传输速率不能超过512Kbps,突发速率不能

超过8000bits。所有多出的包将被丢弃。可以有多个速率限制命令同

时添加到一个接口上,可以对不同的数据包进行不同的速率限制。

4)查找黑客:

对发起Smurf攻击的机器的定位非常困难,但并不是不可能的。为

了跟踪这类拒绝服务攻击的真正源头,可以采取以下几步:

确定中间代理的IP地址空间,并与他们的网络管理员取得联系。记

住你看到的这些包是从中间代理那儿来的,并不是从真正黑客处来

的。那些以被攻击的主机的IP地址为源IP地址的进入该网络的数据

包,就是黑客使用的源地址欺骗数据包。

从这些数据包上取得源IP地址欺骗的物理地址,并用这些物理地址

做一下iparp(适用于CiscoIOS),得到的结果就是源IP地址欺骗

来的最后一跳节点的IP地址。与他们的管理员取得联系。

重复以上几步,直到你找到与跟踪的物理地址相同的路由器。

5)总结:

通过过滤输出数据流,可以使你的网络免受Smurf这类攻击;通过

适当地限制广播流量,就可以防止你的网络被利用成为中间代理。如

果你遭到攻击,可用以上办法把灾难降低到最小的手段,同时可以跟

踪敌人。Smurf攻击是具有破坏性的,但是合理正确的准备就可以最

大限度地降攻击传播的性能和影响力。

2.2基于重定向(redirect)的路由欺骗技术

攻击者可利用ICMP重定向报文破坏路由,并以此增强其窃听能力。

除了路由器,主机必须服从ICMP重定向。如果一台机器想网络中的

另一台机器发送了一个ICMP重定向消息,这就可能引起其他机器具

有一张无效的路由表。如果一台机器伪装成路由器截获所有到某些目

标网络或全部目标网络的IP数据包,这样就形成了攻击和窃听。

3ICMP攻击防范措施

虽然ICMP协议给黑客以可乘之机,但是ICMP攻击也并非防不胜防

的。只要在网络管理中未雨绸缪,提前做好准备,就可以有效地避免

遭受ICMP的攻击。

对于利用ICMP产生的拒绝服务攻击可以采取下面的方法:一、在路

由器或主机端拒绝所有的ICMP包(对于Smuff攻击:可在路由器禁

止IP广播);二、在该网段路由器对ICMP包进行带宽限制(或限制

ICMP包的数量),控制其在一定的范围内。

避免ICMP重定向欺骗的最简单方法是将主机配置成不处理ICMP重

定向消息,另一种方法是路由器之间一定要经过安全认证。例如,检

查ICMP重定向消息是否来自当前正在使用的路由器,要检查重定向

消息发送者的IP地址并校验该IP地址与ARP高速缓存中保留的硬

件地址是否匹配。ICMP重定向消息应包含转发IP数据报的报头信

息,报头虽然可用于检验其有效性,但也有可能被窥探并加以伪造。

无论如何,这种检查可增加对重定向消息有效性的信心,并且由于无

须查阅路由表及ARP高速缓存,所以执行起来比其他检查容易一些。

更多推荐

icmp数据包