39 | 案例篇:怎么缓解 DDoS 攻击带来的性能下降问题?
该思维导图由 AI 生成,仅供参考
DDoS 简介
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了DDoS攻击的原理和类型,以及通过案例分析来缓解DDoS攻击带来的性能下降问题。首先介绍了DDoS攻击的基本原理和危害,包括不同类型的攻击对网络性能的影响。通过案例分析,展示了如何使用Nginx和curl等工具模拟DDoS攻击,并使用tcpdump和sar等工具进行网络状况监测和分析。文章还介绍了如何使用iptables命令来丢弃相关的包以解决SYN攻击问题,并提出了限制syn包速率和增大半连接容量等TCP优化方法。此外,还介绍了TCP SYN Cookies作为一种专门防御SYN Flood攻击的方法。总的来说,本文通过深入的技术分析和案例演示,为读者提供了全面了解DDoS攻击及其缓解方法的重要参考。 文章指出,DDoS攻击难以完全防御,只能设法缓解其影响。建议购买专业的流量清洗设备和网络防火墙,在网络入口处阻断恶意流量,只保留正常流量进入数据中心的服务器中。在Linux服务器中,可以通过内核调优、DPDK、XDP等多种方法,来增大服务器的抗攻击能力,降低DDoS对正常服务的影响。而在应用程序中,可以利用各级缓存、WAF、CDN等方式,缓解DDoS对应用程序的影响。 最后,文章提出了思考题,鼓励读者思考更好的方法来检测DDoS攻击,除了tcpdump外,还有哪些方法可以查找这些攻击的源地址。整体而言,本文提供了深入的技术分析和解决方案,对于网络安全领域的从业者具有重要参考价值。
《Linux 性能优化实战》,新⼈⾸单¥68
全部留言(40)
- 最新
- 精选
- 怀特这个专栏太超值,我跟追剧一样的追到现在,收获已经巨大! 谢谢倪工的分享。 更谢谢倪工对留言一丝不苟的回复---这份对听众的耐心,其他专栏的作者没有一个能比得上的。 继续追剧!
作者回复: 哈哈,谢谢热心回复和支持
2019-02-21328 - ichiro最近服务会出现干核现象,一个单进程程序发现把一个cpu耗尽,用top发现一个cpu的,软中断很高,通过watch -d cat /proc/softireq,发现网络中断很高,然后配置多网卡队列,把中断分散到是他cpu,缓解了进程cpu的压力,但同时带来担忧,配置多网卡队列绑定,会不会带来cpu切换,缓存失效等负面影响?另外,老师还有别的建议吗?
作者回复: 会的,实际上优化网络都会占用更多的cpu和内存。所以还要看优化是不是值得,是不是最需要优化的瓶颈
2019-02-27215 - 李燕平服务器插上网线就像开车上路。 DDoS攻击可以理解为撞车,提升汽车本身的安全系数会有用。 大量DDoS攻击可以理解为撞上大货车,需要护卫车队来保护主车。
作者回复: 赞👍
2019-02-2012 - 明翼检测DDOS攻击,我没有什么这方面经验想了下: 1、既然攻击,肯定不是正常业务,所以在sar -n DEV 4 命令看运行包的时候,不光要注意收到的包的大小,还要注意平时在监控业务的时候观察正常的业务的收包量,做一个横向比较,确定异常流量;还有一点特别重要,我觉得tcp连接交互基本都是双向的,那么回包数量和发包的数量不能相差太大,如果太大了可能有问题。 2、至于查看源IP,除了tcpdump外,是不是可以通过netstat 结合wc 统计下各类状态的连接数,如果连接数超过平时的连接数就要注意,关注状态一致的连接数,这里面也有ip信息,当然也可以判断来源。
作者回复: 嗯,sar和netstat都是最常用的工具
2019-02-2011 - dancer重新开追,前两天着重看了cpu调优,正好线上压测发现了cpu.user飙高的问题,通过perf和pprof查明了是一个复杂json结构解析导致的,学以致用下来印象更深了!这两天开始看网络,后面再看io和内存相关,感谢!
作者回复: 赞,很高兴也看到学以致用
2019-03-068 - z.l请问老师今天讲的三个tcp内核参数调优能否作为通用的提高服务器抗并发能力的优化手段?
作者回复: 嗯 是的
2019-04-095 - 青石REJECT攻击IP所有报文,接口响应没什么变化,还是127秒,DROP报文后响应时间才恢复正常,查了REJECT和DROP的区别,REJECT会返回个ICMP包给源IP,有点不太理解为什么一个ICMP包导致这么大的差异。 # hping3命令, u10效果不明显,所以改成了u1测试 $ hping3 -S -p 80 172.30.81.136 -I eno1 -i u1 # 调整内核参数测试结果,接口响应时间为127秒 $ curl -s -w 'Http code: %{http_code}\nTotal time:%{time_total}s\n' -o /dev/null http://172.30.81.136/ Http code: 000 Total time:127.109s # 调整内核参数、iptables限制syn并发的测试结果,接口响应时间为127秒 $ curl -s -w 'Http code: %{http_code}\nTotal time:%{time_total}s\n' -o /dev/null http://172.30.81.136/ Http code: 000 Total time:127.106s # 调整内核参数、iptables限制syn并发、单IP连接数的测试结果,接口响应时间为127秒 $ curl -s -w 'Http code: %{http_code}\nTotal time:%{time_total}s\n' -o /dev/null http://172.30.81.136/ Http code: 000 Total time:127.097s # 调整内核参数、iptables限制syn并发、单IP连接数、DROP攻击IP所有报文的测试结果,接口响应时间为127秒 $ curl -s -w 'Http code: %{http_code}\nTotal time:%{time_total}s\n' -o /dev/null http://172.30.81.136/ Http code: 200 Total time:0.001s
作者回复: REJECT还会给攻击源发送响应,这也是消耗网络资源的;而DROP没有任何回应,直接丢弃
2019-03-175 - forever我之前在生产环境中遇到过多次ddos攻击,最好的被打到55G.最初的时候遇到攻击束手无策,还被人勒索过,说给钱就不攻击!哈哈😄因为没经验,后来就打游击战,那时候攻击的是我们负载均衡的ip,当攻击发生时我就换ip这样能暂时缓解,当然提前要把ip给准备好,比如白名单添加等!后来业务壮大,换ip的时间成本比网站不能访问的成本要高,最后我们用了阿里云的高防,就这样攻击就告一段落了!虽然高防很贵,但是比起被攻击的损失,还是值得的!
作者回复: 👍谢谢分享
2019-02-255 - ninuxer打卡day42 真正的ddos要靠运营商的流量清洗之类的了
作者回复: 是的,流量型DDoS还是要靠硬件来抗
2019-02-253 - 且听风吟net.ipv4.tcp_max_tw_buckets net.ipv4.tcp_tw_reuse net.ipv4.tcp_tw_recycle net.ipv4.tcp_keepalive_time net.ipv4.tcp_timestamps 期待结合生产环境对这几个内核参数的讲解。目前生产环境下php服务器time_wait特别多,网络包的流程: NGINX代理<——>PHP服务器——>redis/mysql.. 高峰时期php服务器一共50k+的连接。49k+的time_wait., 主要来源是php作为客户端的角色时连接redis、mysql、给代理NGINX回包、php服务器内部调用。希望老师能给解决问题的思路。
作者回复: 嗯,后面有的
2019-02-203