首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux编程之ICMP洪水攻击

我的上一篇文章《Linux编程之PING的实现》里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?...这里我将介绍ICMP另一个很有名的黑科技:ICMP洪水攻击。...ICMP洪水攻击属于大名鼎鼎的DOS(Denial of Service)攻击的一种,一种是黑客们喜欢的攻击手段,这里本着加深自己对ICMP的理解的目的,也试着基于ICMP写一段ICMP的洪水攻击小程序...要实现ICMP的洪水攻击,需要以下三项的知识储备: DOS攻击原理 ICMP的深入理解 原始套接字的编程技巧 一、ICMP洪水攻击原理 ICMP洪水攻击是在ping的基础上形成的,但是ping程序很少能造成目的及宕机的问题...= ICMP_ECHO; icmp_hdr->icmp_code = 0; icmp_hdr->icmp_cksum = htons(~(ICMP_ECHO << 8)); //注意这里,

2.1K21
您找到你想要的搜索结果了吗?
是的
没有找到

traceroute和tracert原理

目标主机收到traceroute 的UDP探测包回复ICMP(type=3,code = 3,端口不可达)。Linux上称之为 traceroute,Windos类似的功能为tracert。...linux 上 traceroute 运行过程: traceroute 连续发送TTL从1开始递增的UDP包,目标端口 30000+,相同的目标地址,每个TTL相同的UDP包默认发送三个,端口依次递增...二、Tracert 通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。...Tracert 先发送 TTL 为 1 的回应数据包,并随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.4K20

Linux crond 执行原因分析

为了定时监控Linux系统CPU、内存、负载的使用情况,写了Linux Shell脚本,当达到一定值得时候,定时发送邮件通知。.../mimvp-email.sh)是正常的,因为手动执行脚本可以默认获取Linux的环境变量,但通过Crontab做的定时任务,则无法获取环境变量。...分析了原因,crond执行的原因主要有以下几个方面: 1、crond服务没启动 ps -ef | grep -v grep | grep crond         // 查看crond服务是否运行...附上linux下的flock的用法: flock (util-linux 2.13-pre7) Usage: flock [-sxun][-w #] fd#        flock [-sxon][-...error: "(" unexpected 解决方法: 需指定shell解释器命令:SHELL=/bin/bash(请参见上面 crontab编辑示例 SHELL=/bin/bash) 或者参见: LINUX

6.1K110

linux远程ssh连接上?

背景 昨天下午从公司下班回到家后,想连接linux来给一个docker项目部署好,发现突然连接上了?...这类linux问题,我的排查能力还是不足,并且无从分析,我是直接照着报错去百度搜索,压根没有什么用。...总结 第一点 linux中不是说当一个程序出现了错误,如果是权限问题,不是就是权限不够,全部赋予755权限,反而会导致bug出现 第二点 当linux中重装了ssh后,你的之前修改的权限文件还是不会变的...,也有可能是我重装了ssh,没有碰到上面三个权限文件 第三点 linux出现了错误不要慌,首先使用救援连接进入linux内部,然后根据命令一步步排查,比如sshd -t就是查看ssh服务是否有问题的 一个命令...,学到了 废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:linux远程ssh连接上?

22.2K10

如何在Linux中禁用ICMP和ICMPv6重定向

--- 文章声明:此文基于木子实操撰写 \ 生产环境:CentOS Linux release 7.9.2009 (Core) \ 问题关键字:禁用ICMP,禁用ICMPv6 --- 写在最前面 正如前文...所述,为了能够更好的传播Linux基础知识,同时也为巩固、沉淀个人知识体系,在经过很长时间的思考后,木子决定率先开启一个专题系列《Linux基础》,其系列以Linux基础出发,如:系统安装、磁盘管理、安全配置...今天我们将学习如何在Linux服务器上禁用ICMP和ICMPv6重定向。ICMP重定向功能在路由器上使用,因此,如果您的Linux服务器未充当路由器,那么作为一般的安全实践,建议禁用重定向。...即使您的Linux服务器充当并打开了路由转发功能,您也可以使用内核参数(sysctl)有选择的禁用某些接口上的ICMP重定向。...: redirect 使用内核参数(sysctl) 如果您的Linux服务器启用了路由转发功能,则可以选择在所有接口或指定接口上禁用ICMP重定向。

4.3K40

ping广播地址会如何(转)

bytes=32 time<1ms TTL=255  Reply from 10.26.20.90: bytes=32 time<1ms TTL=64 说明了几点: 1.ping这个广播地址通了,但从回应看...,是同网段的地址回的 2.同网段的很多机器,为什么只有这两台回应我了?...下面,全面的解释一遍: 1.我发出ping 10.26.255.255这个请求,在这个icmp包出去之前,发出去一个多播的帧,目的mac是多播mac; 2.好,所有能收到这个多播包的主机,看到这个包...,知道我要做什么(icmp reauest),如果它的系统支持(linux支持,windows不支持),就会对其响应(icmp response),于是发给我一个arp查询,查询我的arp是什么,于是我响应这个查询...,这样我也学到了它的arp; 3.以后,我每一个ping广播的icmp,都由组内可以响应的主机来回应我,这是ping的结果了(分别是255.254和20.90回应我) 这个过程不复杂,重点是理清流程

2.3K50

独家 | 英伟达回应禁令:研究人员放心用,更新驱动就没影响

刚刚,英伟达向量子位发来了回应。 (新鲜出炉,全网独家) 回应全文 以下是量子位根据英伟达英文官方声明整理的回应全文。...为了澄清这一点,我们最近对GeForce专门的EULA(最终用户许可协议)条款做了修正,以图鼓励将GeForce和TITAN系列产品误用在需求严苛的大规模企业环境中。...我们认识到,研究者经常将GeForce和TITAN产品用于非商业用途,或者用于自己的研究,这些用途涉及数据中心规模的运行。英伟达无意禁止这类用途。 更多细节 看了上面的声明,估计不少人能松一口气。...不止如此,英伟达还对量子位提出的问题,给出了更多回应。 量子位:为什么英伟达会更新EULA?...英伟达:随着产品线的扩张,NVIDIA感觉有必要为消费级和企业级产品分别设置EULA,而GeForce系列产品不是为数据中心设计的,它的保修也覆盖在数据中心的应用。 量子位:什么是数据中心?

69560

分析ICMP报文「建议收藏」

14 : 时间戳应答 17 : 地址掩码请求 18 : 地址掩码应答 30 : 路由跟踪 常见的 type类型字段(8位)、code代码字段(8位) 组合有: 类型0、代码0:回应应答...类型3、代码0:网络不可达 类型3、代码1:主机不可达 类型5、代码1:为主机重定向数据包 类型8、代码0:回应 类型11、代码0:传输中超出TTL(常说的超时) 简单类型分析: (1)响应请求...我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败...发现标示符LE与BE都指向二进制报文内容的0x0001,后来在网上搜索是大小端问题,window系统与Linux系统发出的ping报文(主要指ping应用字段而非包含IP头的ping包)的字节顺序不一样...(windows为LE:little-endian byte order,Linux为BE:big-endian)。

1.1K20

让人迷糊的 socket udp 连接问题

(上面是 udp 异常下的 icmp,下面是正常 icmp) 当 UDP 连接异常时,可以通过 tcpdump 工具指定 ICMP 协议来抓取该异常报文,毕竟对方是通过 icmp 返回的 ECONNREFUSED...full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes...netcat nc udp 的逻辑 为什么当 ip 连通或者报文被 DROP 时,返回连接成功?...还是那句话,UDP 没有 TCP 那样的握手步骤,像 TCP 发送 syn 总得不到回报时,协议栈会在时间退避下尝试 6 次,当 6 次还得不到回应,内核会给与错误的 errno 值。...客户端和服务端互通数据,当服务进程挂了时,UDP 客户端不能立马感知关闭状态,只有当再次发数据时才会被对方系统回应 icmp ECONNREFUSE 异常报文,客户端才能感知对方挂了。

1.6K11

linux网络95值工具,Linux下网络故障排查工具之ping|traceroute和tcptraceroute|mtr工具

大量且快速地送网络封包给一台机器,看它的回应。...LINUX的ping不会自动终止如果指定这个参数就需要手动按ctrl+c终止 -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。 -I 网络界面:使用指定的网络界面送出数据包。...-I 使用ICMP回应取代UDP,与-U\-T是互斥关系。 -m 设置检测数据包的最大存活数值TTL的大小,也就是改变跳数,默认只检测30跳。 -n 直接使用IP地址而非主机名称。...-T 使用TCP协议来探测,与-U\-I是互斥关系,另外TCP协议默认是80端口,而LINUX下1024以下端口需要管理员ROOT权限才能执行,因此需注意权限。...yum install mtr -y UBUNTUsudo apt-get install traceroute 使用格式:mtr [options] hostname 常用的选项:-n ——探测主机名

1.4K30

Linux 防火墙新秀 nftables 为你的 VPS 保驾护航

iptables 匹配大量数据时,还得需要 ipset 配合,而 nftables 直接内置了集合和字典,可以直接匹配大量的数据,这一点比 iptables 方便多了,拿来练练魔法真是极好的,不多解释,请直接看 Linux...如果收到回应的第一个包不是本地产生的,那就会在 PREROUTING 链里被设置为 NEW 状态。...通过令牌桶机制,可以有效的控制单位时间内通过(匹配)的数据包数量,又可以容许短时间内突发的大量数据包的通过(只要数据包数量超过令牌桶 n),真是妙哉啊。...首先我们能看到前 5 个包的回应都非常正常,然后从第 6 个包开始,我们每 6 秒能收到一个正常的回应。...脚注 [1] Linux全局智能分流方案: https://fuckcloudnative.io/posts/linux-circumvent/

3.7K10

Traceroute原理「建议收藏」

linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。...traceroute使用方法 在大多数情况下,我们会在linux主机系统下,直接执行命令行: traceroute hostname 如果执行过程中没有 t raceroute 命令,可通过 yum...-I 使用ICMP回应取代UDP资料信息。 -m 设置检测数据包的最大存活数值TTL的大小。 -n 直接使用IP地址而非主机名称。 -p 设置UDP传输协议的通信端口。...路径上的每个路由器都要在转发该 ICMP 回应报文之前将其 TTL 值至少减 1,因此 TTL 是有效的跳转计数。当报文的 TTL 值减少到 0 时,路由器向源系统发回 ICMP 超时信息。...通过发送 TTL 为 1 的第一个回应报文并且在随后的发送中每次将 TTL 值加 1,直到目标响应或达到最大 TTL 值,Tracert 可以确定路由。

54020

linux网络编程之TCPIP基础(二):利用ARP和ICMP协议解释ping命令

下图是返回的ICMP 错误的报文,包含路由器的MTU。 ? 二、以太网帧格式 ? 其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。...五、ICMP(Internet Control Message Protocol) ICMP协议用于传递差错信息、时间、回显、网络信息等控制数据,如下图所示。 ?...ICMP报文是封装在IP数据报文中进行传输的,如下图所示。 ? ? 具体的类型和代码见下图。 ? ? 六、利用ARP和ICMP协议解释ping程序 先看下面的流程图,再来解释。 ?...步骤e:发送ICMP数据包到主机B。 步骤f:主机B接收到主机A的ICMP包,发送响应包。 步骤g:主机A接收到主机B的ICMP包响应包。...参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》

2.7K100
领券