当前位置: 首页 > news >正文

使用Nginx、Nginx Plus抵御DDOS攻击

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

DDOS是一种通过大流量的请求对目标进行轰炸式访问,导致提供服务的服务器资源耗尽进而无法继续提供服务的攻击手段。

一般情况下,攻击者通过大量请求与连接使服务器处于饱和状态,以至于无法接受新的请求或变得很慢。

应用层DDOS攻击的特征

应用层(七层/HTTP层)DDOS攻击通常由木马程序发起,其可以通过设计更好的利用目标系统的脆弱点。例如,对于无法处理大量并发请求的系统,仅仅通过建立大量的连接,并周期性的发出少量数据包来保持会话就可以耗尽系统的资源,使其无法接受新的连接请求达到DDOS的目的。其他还有采用发送大量连接请求发送大数据包的请求进行攻击的形式。因为攻击是由木马程序发起,攻击者可以在很短时间内快速建立大量的连接,并发出大量的请求。

以下是一些DDOS的特证,我们可以据此特征来抵抗DDOS(包括但不限于):

  • 攻击经常来源于一些相对固定的IP或IP段,每个IP都有远大于真实用户的连接数和请求数。

    备注:这并不表明这种请求都是代表着DDOS攻击。在很多使用NAT的网络架构中,很多的客户端使用网关的IP地址访问公网资源。但是,即便如此,这样的请求数和连接数也会远少于DDOS攻击。

  • 因为攻击是由木马发出且目的是使服务器超负荷,请求的频率会远远超过正常人的请求。

  • User-Agent通常是一个非标准的值

  • Referer有时是一个容易联想到攻击的值

使用Nginx、Nginx Plus抵抗DDOS攻击

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。

结合上面提到的DDOS攻击的特征,Nginx、Nginx Plus有很多的特性可以用来有效的防御DDOS攻击,可以从调整入口访问流量和控制反向代理到后端服务器的流量两个方面来达到抵御DDOS攻击的目的。

限制请求速度

设置Nginx、Nginx Plus的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置Nginx每两秒钟接收一个客户端IP的请求(大约等同于每分钟30个请求)。

limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;

server {

...

location /login.html {

limit_req zone=one;

...

}

}

`limit_req_zone`命令设置了一个叫one的共享内存区来存储请求状态的特定键值,在上面的例子中是客户端IP($binary_remote_addr)。location块中的`limit_req`通过引用one共享内存区来实现限制访问/login.html的目的。

限制连接数量

设置Nginx、Nginx Plus的连接数在一个真实用户请求的合理范围内。比如,你可以设置每个客户端IP连接/store不可以超过10个。

转载于:https://my.oschina.net/u/3611008/blog/1620186

相关文章:

  • 前嗅ForeSpider中数据浏览界面介绍
  • NPOI 笔记
  • webpy简单入门---1
  • 印刷名片用什么格式的文件好?
  • spring boot + vue + element-ui全栈开发入门——主页面开发
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何查找Fiori UI上某个字段对应的后台存储表的名称
  • 日志切割
  • Visual Studio 代码折叠快捷键(摘要)
  • 中小型研发团队架构实践九:任务调度Job
  • 数组
  • golang 发送GET和POST示例
  • 监听器
  • 用Hexo搭建属于自己的Blog
  • ipcs命令详解
  • @angular/forms 源码解析之双向绑定
  • [译] 怎样写一个基础的编译器
  • [译]前端离线指南(上)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【5+】跨webview多页面 触发事件(二)
  • Android 控件背景颜色处理
  • git 常用命令
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java知识点总结(JavaIO-打印流)
  • js对象的深浅拷贝
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • LeetCode算法系列_0891_子序列宽度之和
  • sessionStorage和localStorage
  • unity如何实现一个固定宽度的orthagraphic相机
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 思否第一天
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 积累各种好的链接
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Spring Boot 分片上传文件
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (5)STL算法之复制
  • (Python第六天)文件处理
  • (solr系列:一)使用tomcat部署solr服务
  • (WSI分类)WSI分类文献小综述 2024
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转载)Linux 多线程条件变量同步
  • *1 计算机基础和操作系统基础及几大协议
  • .net 7 上传文件踩坑
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net2005怎么读string形的xml,不是xml文件。
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证