如何防止DDos攻击的一些个人经验

DDoS(Distributed Denial of Service)即分布式拒绝服务。DDoS攻击是指攻击者通过控制大量的僵尸主机,向被攻击目标发送大量精心构造的攻击报文,造成被攻击者所在网络的链路拥塞、系统资源耗尽,从而使被攻击者产生拒绝向正常用户的请求提供服务的效果。可能不少朋友的公司都遭遇过大大小小的这类攻击,导致网站不少时间内都濒临崩溃无法访问,上面被老板催,下面被客户质疑,但一时半会又搞不定的囧境,关键还是公司没运维,没其他人背锅,只能自己团队解决了
之前公司也遇到这种情况,总结一下我们当时是怎么做的。

(一) 不断的重启服务器
只能说是上面领导催促无奈中的举措了(大概他们觉得这是你敲几下键盘就能搞定的事情),一开始大量的流量导致服务器宕机,只好暂时重启,但是重启之后不久又重新宕机,在没找到解决问题的方案的时候,也只能派人守着随时和运营商沟通和重启服务器。
我们采取的服务器架构是一台nginx服务器(含静态文件代码和少量php代码)+后端服务器(存放应用代码)+数据库服务器。经常宕机的主要是数据库服务器,偶尔是nginx负载均衡服务器。

(二)开启iptables防御
一开始我们是分析access.log,统计访问量最高的50个ip,在nginx里面禁止访问,防止访问进入到应用代码层

awk '{print $1}' access.log | sort | uniq -c | sort -n -k 1 -r | head -n 50

在这里插入图片描述

但过不了多久,服务器也一样崩溃,因为ddos攻击是会一直伪造IP发起攻击,所以效果不大,而且黑名单ip过多,也会影响其他用户访问速度。后来我们发现linux的iptables也有类似效果
这也是偶然发现的一个方法,能抵御轻量级的ddos方法,这里直接发一篇引用文章
iptables防DDOS攻击和CC攻击设置

(三)提高服务器性能
可能我们针对的ddos攻击是小规模,也或许对手暂时吃午饭去了,所以网站崩溃现象暂时就缓下来了。为了防止今后更大规模的,我们做了服务器的优化,首先因为经常崩溃的是数据库服务器,我们将数据库服务器的硬件配置升级了(主要针对cpu),同时添加了一台备用的数据库服务器,打算做主从分离。(这里应该花了不少钱,也不知道我们经理是如何说服抠门老板的)。接着就是做服务器优化,将nginx服务器的所有代码都迁出,nginx服务器主要做负载均衡,代码全部放到应用服务器。一些静态资源(主要是图片),准备上个CDN(也不知道经理有如何说服老板了),减轻服务器压力。代码层面,一些前台展示页面,能做静态缓存的,全部做成静态缓存;我们属于门户类网站,一些动态页面,例如根据不同条件查询分类列表不能做成静态的,就准备构建个搜索引擎,减轻数据库压力。这部分其实和ddos不是很大关系了,主要是针对自身项目结构设计、代码逻辑的优化。
(四)购买运营商的DDoS防护
当你遭遇比较大型的ddos攻击,而自身没有有效的防火措施,建议还是花点钱买高防服务吧!
1。购买阿里,腾讯,华为的云服务,最好每家都买,分摊风险,做服务代理,打瘫一个还有别的,这些云服务通常都有抗ddos的服务可以购买。通过ip,dns等技术将客户负载到不同代理上,这些服务器对某一区域用户只暴漏一个,避免被同时打瘫。
2。准备备用网络,一旦被打瘫可以换网络。
3。在ISP哪里购买抗DDOS防护服务,注意是在ISP那边(电信联通),因为你这边带宽太小,没有抵抗价值

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值