墨者安全分享:如何使用Nginx对抗DDoS攻击?

DDOS攻击是目前最常见的网络攻击方式之一,大部分企业都有被DDOS攻击过,或是敲诈勒索盗取信息,或是竞争对手恶意攻击。而DDOS攻击之所以深受黑客欢迎,最主要的原因是因为DDOS无法彻底解决,只能被动防御,特别是针对应用层的DDOS更难防御。今天墨者安全通过以往的客户案例经验,为大家介绍一下如何使用Nginx对抗DDoS攻击?

Apache DDoS攻击

攻击Apache或者任何其他的HTTP服务器并不需要大量流量。有些服务器可能1 Mbit流量就宕机了。正确页面上的正确请求会生成巨大的负载,导致服务器过载。应用设计、阿帕奇配置和其他的因素都会对这种相对较低水平的流量宕机作出贡献。当然也有办法能够对抗DDoS攻击。比如使用Nginx,作为HTTP服务器的替代品用来处理流量。

用Nginx对抗DDoS

在这里不再介绍怎么设置Nginx作为反向代理系统,从而起到对抗DDoS攻击的作用。如果想自己做做看的,有很多在线的教程可以参考。这里要分享的是使用Nginx的结果,以及一些高级的技巧。

Nginx作为反向代理

由于一些技术内部组件,Nginx通常比Apache更擅长处理高并发。在很多案例中,我们在Apache系统的前端部署Nginx作为反向代理服务器。通过在Nginx中调整变量,通常可以抵抗住更小的攻击。如果攻击更大的话,可能就需要在Nginx中采用IP之地、用户代理、国籍或者其他的数据过滤流量。也可以将这些流量彻底丢掉,就永远不会到达web服务器了。

服务器静态页面

如果攻击的目标是脚本或者数据库驱动页面,服务器或者数据库可能很快就过载。首先可以做的就是创建这个页面的静态版本:

1.在安全的地方做一个镜像

2.将真正的脚本转移到一个替代命名

3.设置一个副本用来使用wget或curl,从而在需要间隔创建该页面的静态版本。

就算你的副本每分钟都在运行,这样也比运行脚本导致的数据库受到的攻击少得多。这也是一种快速且更易于实现的方式来显著提升页面可扩展性的方法。

来自Nginx的服务器目标页面

还有一些案例中,几个页面的Apache每秒收到了2000多个请求。即便采用静态页面的技巧以及用Nginx作为反向代理,系统仍旧处于困境。这种案例中,攻击者攻击具体的页面,可以将这些页面的静态副本转移到Nginx代理。使用位置定向,可以设置Nginx来处理这些文件,好处就是现在的Nginx代理正在处理大多数的负载,而Apache服务器则在做该做的。

采用RAM磁盘

还可以使用/dev/shm (RAM) 作为静态文件的位置。通过将目标文件从主服务器转移到Nginx反向代理,从RAM服务他们,就能够在最低限度的硬件上处理每秒1000个请求,这样做减少了磁盘的IO问题,可以快速服务正常业务。

用户代理封堵

我们发现超过60%的攻击都有具体的用户代理。这个用户代理大部分都独一无二。这个用户代理可以识别极少的合法流量。用Nginx的过滤技术发送500 error到任何使用用户代理的客户端。就可以选择性的减少流量或者重定向流量。这样做的确会有一些攻击变化。

IP封堵

别忘了IP信息报过滤系统或者防火墙。在一些案例中,需要更为严厉的举措。比如,我们可以锁定具体的国家,将其流量过滤掉。这样做就能够减少75%的攻击,剩下的就更易于处理,并且保证网站的正常运行。

以上这些对于普通的DDOS可以起到一定的防护作用,当遇到大流量DDOS洪水攻击时,这些防护措施可能就起不到什么作用了。这个时候还是需要更专业的DDOS高防服务,像墨者安全高防的墨者盾,1000G的云防护流量清洗,单节点过滤百万并发攻击,保障网站的安全和数据信息。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181017A16SP600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券