DDOS是一种经过大流量的请求对目标进行轰炸式访问,致使提供服务的服务器资源耗尽进而没法继续提供服务的攻击手段。html
通常状况下,攻击者经过大量请求与链接使服务器处于饱和状态,以致于没法接受新的请求或变得很慢。后端
应用层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个。