前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何防御大流量例如cc和ddos这种攻击

如何防御大流量例如cc和ddos这种攻击

作者头像
乔千
发布2020-04-16 16:10:07
3K0
发布2020-04-16 16:10:07
举报

前言

最近看见一些我的朋友遭受了各种网站攻击,于是就有了这篇博文,主要讲解如何防御大流量消耗资源的方案。

了解流量防御口

一个单服务器的流量进入由 客户>解析域名(如果有域名解析缓存可不需要)>服务器网卡硬件>服务器服务端(例如nginx)>服务器网页程序(例如typecho)

了解cc和ddos

cc和ddos是一种攻击方式 由于篇幅问题我们引用了文章 cc和ddos区别

了解流量黑洞

当服务器遭受到大流量攻击时,服务商会检测一定流量上限对服务器进行黑洞处理,黑洞顾名思义,如黑洞一般,将该台服务器脱离外网环境,进行隔离一定时间,如果仍然存在大流量攻击就会一直进入黑洞,黑洞时间一般在2小时,隔离服务器是比较万全的,因为一个服务器受到大流量攻击可能会牵连整个机房服务器躺枪,为了避免这种情况黑洞机制就出现了。

准备工作

相信被攻击很多人才会找如何防御,都被攻击了防御又怎么及时。 我们先要关闭域名解析,然后对服务器的IP进行切换, 如果是黑洞状态需要等待时间。

确定问题

先别着急防御,我们首先要确定问题,如果你有CDN加持,翻车,可能就是你泄露了服务器ip或者漏洞泄露了, 如果避免ip泄露就是一个问题了,很多情况下发送邮件是可以泄露服务器ip的,因为一些原因单台服务器顺便当邮件发送很常见,所以这样导致的泄露ip是很常见的。

其次是对日志的分析,分析ip是否泄露,日志可以从php日志和服务商提供的日志下载,分析出被攻击网页特征和攻击特征,比如五个相同的ip攻击,如果是cc攻击是可以比较好的防御的,还有攻击同一个网页的,收集好这些数据。如果量大可以提交举报。

避免再次黑洞

如何避免服务器再次黑洞,我们可以使用两台服务器,对主服务器进行反代,无论怎么攻击,主服务器运行不会受到影响,当然副服务器可以增加两台(这样在cdn中可以设置主备,这样来回横跳能抗一会

万能的CDN

CDN就是一个分布式的服务器群,加入cdn之后,在流量方面能过帮我们缓存部分资源,在平常业务中能过更快更流畅,当然被攻击的时候比如ddos和cc都有一定用处,但是一定要记住泄露源站ip是保不了你的,设置好源站缓存的一些规则会更高效,其次刚刚说过如何避免黑洞,你主备两ip+cdn可以抗一会 但是远远不够。

服务器第一层程序防御

服务器第一层软件一般都是nginx iis之类的 但是我们今天只讲解nginx,为什么?nginx多并发高性能,抗打就套上,而且我一般也不用什么Apache,也搞不懂。 nginx我们进行的是对ip进行封禁,对流量进行限制,误杀几率尽量压制到最低。 nginx需要修改配置项 下面的指令可以对nginx设置单用户限速和限制链接数量

代码语言:javascript
复制
client_body_timeout
limit_req_zone
limit_conn_zone

这些操作详细内容不做介绍 除了这些你还可以使用nginx_lua脚本进行一些操作 这篇文章有些不足的是对seo有些问题,不过可以通过一些方法解决,这个放在以后文章。 这里你还可以开启 用基于sysctl的保护(这个是可以鉴别一些伪造的或者cookies的 经典防御文章 除了这些你还可以使用deny指令对指定的ip或者ip段进行封杀,除了这些还有很多,但是我们需要介绍很多,所以这个可以百度找到。 撇开这些我想起宝塔本身就可以限制流量,当然这样被cc或者ddos占完估计用户全是503之类的

waf

突然就忘记了防火墙别着急,防火墙分为两类其中一种是硬件防火墙一种是软件防火墙,但是服务器的硬件防火墙就需要充钱来解决了,比如说什么云盾什么的,停,虽然硬件防火墙是很有用,但是没办法没钱买那个几千的学生,只能用用免费的防火墙了。 这里环境是linux,win主机可以自行百度。

fail2ban就是一款出色的服务器入侵检测软件 可以阻止连接到服务器的可疑IP。这会扫描服务器日志以查找可疑访问权限并在防火墙中阻止此类IP,例如,我们创建一个fail2ban jail/etc/fail2ban/jail.local并添加以下代码来监控对Nginx的请求数。

代码语言:javascript
复制
 [nginx-req-limit] enabled = true 
 filter = nginx-req-limit action = 
 iptables-multiport[name=ReqLimit, 
 port=”http,https”, protocol=tcp] 
 logpath = /var/log/nginx/*error.log 
 findtime = 200 bantime = 2600 
 maxretry = 20

这将扫描Nginx日志文件并阻止IP与服务器建立过多连接。

在linux还可以使用DDoS-Deflate,这是一款非常小巧的防御和减轻DDoS攻击的工具,它可以通过监测netstat来跟踪来创建大量互联网连接的IP地址信息,通过APF或IPTABLES禁止或阻档这些非常IP地址。

第二层网页软件防cc

都打到这里来了,还能有啥防御?如果想防御的话,也只能防cc了,这里可以使用数据库缓存比如memcached和静态化缓存,当然还可以使用五秒盾进行防御cc

总结

cc是一种比较好防御的攻击,但是ddos就是洪流了,有人在双11前夕有人调侃每年流量最大的ddos即将开始, ddos本身就是一种不好防御的攻击,一些大厂依然受到攻击,码云之类的平台也遭受过,在这之下,我们能做好的就是修复漏洞,限制流量,避免服务器的过多流量,分布均衡,这些是我的看法,有兴趣可以留言。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 了解流量防御口
  • 了解cc和ddos
  • 了解流量黑洞
  • 准备工作
  • 确定问题
  • 避免再次黑洞
  • 万能的CDN
  • 服务器第一层程序防御
  • waf
  • 第二层网页软件防cc
  • 总结
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档