- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章什么是ICMP协议?ICMP有什么重要性?由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
对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.在Windows 2000 Server中设置ICMP过滤 。
Windows 2000 Server提供了“路由与远程访问”服务,但是默认情况下是没有启动的,因此首先要启动它:点击“管理工具”中的“路由与远程访问”,启动设置向导。在其中选择“手动配置服务器”项,点击[下一步]按钮。稍等片刻后,系统会提示“路由和远程访问服务现在已被安装。要开始服务吗?”,点击[是]按钮启动服务.
服务启动后,在计算机名称的分支下会出现一个“IP路由选择”,点击它展开分支,再点击“常规”,会在右边出现服务器中的网络连接(即网卡)。用鼠标右键点击你要配置的网络连接,在弹出的菜单中点击“属性”,会弹出一个网络连接属性的窗口,如图1所示.
图1 。
图1中有两个按钮,一个是“输入筛选器”(指对此服务器接受的数据包进行筛选),另一个是“输出筛选器”(指对此服务器发送的数据包进行筛选),这里应该点击[输入筛选器] 按钮,会弹出一个“添加筛选器”窗口,再点击[添加]按钮,表示要增加一个筛选条件.
在“协议”右边的下拉列表中选择“ICMP”,在随后出现的“ICMP类型”和“ICMP编码”中均输入“255”,代表所有的ICMP类型及其编码。ICMP有许多不同的类型(Ping就是一种类型),每种类型也有许多不同的状态,用不同的 “编码”来表示。因为其类型和编码很复杂,这里不再叙述.
点击[确定]按钮返回“输入筛选器”窗口,此时会发现“筛选器”列表中多了一项内容(如图2所示)。点击[确定]按钮返回“本地连接”窗口,再点击[确定]按钮,此时筛选器就生效了,从其他计算机上Ping这台主机就不会成功了.
图2 。
2. 用防火墙设置ICMP过滤 。
现在许多防火墙在默认情况下都启用了ICMP过滤的功能。如果没有启用,只要选中“防御ICMP攻击”、“防止别人用ping命令探测”就可以了,如图3所示.
图3 。
通过以上讲解,你现在知道ICMP的重要性了吧?赶紧给你的服务器设置ICMP过滤吧.
以上内容中,爱站技术频道小编为大家详细讲解了ICMP协议的具体含义以及重要性,同时还教大家如何去避免ICMP遭受黑客的攻击,看完是不是再也不会对此协议一头雾水了呢?
最后此篇关于什么是ICMP协议?ICMP有什么重要性?的文章就讲到这里了,如果你想了解更多关于什么是ICMP协议?ICMP有什么重要性?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在 ICMP 套接字上接收时(SOCK_RAW 和 IPPROTO_ICMP),因为ICMP协议(protocol)中没有“端口”的概念,怎么能应用程序确定接收到的数据包不是其他数据包的一部分TCP/
我正在 Linux 中进行一些有关路径 MTU 发现的实验。据我从 RFC 1191 中了解到,如果路由器收到一个具有非零 DF 位的数据包,并且该数据包无法在没有分段的情况下发送到下一个主机,那么路
我正在尝试使用 POX Controller 向交换机添加流条目,我的代码是: fm = of.ofp_flow_mod() fm.match.in_port = 1 fm.p
我试图用 iptables 保护 Smurf 攻击。与 iptables -A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DR
我正在从一台 PC 向另一台 PC 发送 UDP 数据包。我正在使用 Wire Shark 观看整个事件。我注意到有一段时间从一个系统到另一个系统的数据包传输顺畅。然后突然ICMP数据包错误 'por
介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM
介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM
如果相关 NAT 设备重写出站 ICMP 数据包,ICMP NAT 穿越应该如何工作? 图表 =====================================================
我感兴趣的基本代码序列是(伪代码) sendto(some host); // host may be unreachable for now which is normal ... if(selec
我目前正在开发基于 Go 的路由器以用于教育目的。 当尝试序列化我从主机转发的 ICMP 数据包时,gopacket.ICMPv4 结构的 .SerializeTo 函数似乎正在剥离 ICMP 有效负
有人可以解释为什么ICMP回声数据包的最大合法大小计算如下: 65535 - 20 - 8 = 65507 谢谢。 最佳答案 65535 字节是 IPv4 网络数据包的最大允许大小,而 20 和 8
我一直在使用 jedie's python ping implementation在 Windows 上。我可能是错的,但是当从不同的线程 ping 两台计算机(A 和 B)时,ping 将返回它收到
我在 x64 机器上。以下是我计算 ICMP 校验和的方法: unsigned short in_checksum(unsigned short *ptr, int n_bytes) { regi
我正在尝试使用与 tcp 和 udp 相同的技术对 icmp 数据包进行校验和,但它得到错误的校验和,你能告诉我我的问题在哪里吗? ICMP_HEADER *icmpheader =
我重用了这个 site 中的原始套接字片段并删除了 TCP 部分并添加了我的 ICMP 部分以请求回显。我的两台机器都在同一个局域网上,运行 Ubuntu 32 位。我给了校验和函数我的 ICMP 指
当类型为 11 时,即超出时间,ICMP 数据包负载的大小是多少? 由于它包含一个 IP header 和生成 ICMP 消息的 IP 数据包有效载荷的前 8 个字节,我认为它的大小是 20 + 8
我知道 ICMP 请求包含 IP 地址。客户端 MAC 地址是否包含在 ICMP 请求中? ping 请求中包含哪些其他信息(如果有)? 最佳答案 ICMP“ping”数据包,正式称为“echo re
当校验和应包括数据部分,数据部分的大小可以是可变的,并且无法预测数据大小时,如何计算 ICMP 回显请求或回复的校验和? 这是documentation关于如何计算 ICMP header 的校验和。
作为家庭作业的一部分,我必须在 Linux 中编写一个 C 程序,该程序使用原始套接字生成对 ICMP Echo 请求的 ICMP 回复。 ICMP 数据包中的数据是否也必须包含在校验和中?还是应该只
以下代码是对从 icmp dll 调用的 IcmpPing 例程的测试。在调试中它工作正常,但在发布中它会抛出错误。该错误是由“IcmpCloseHandle”调用引起的,因为调用 IcmpSendE
我是一名优秀的程序员,十分优秀!