防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈。DDOS的特点是分布式,针对带宽和服务攻击,也就是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量。对于七层的应用攻击,我们还是可以做一些配置来防御的,例如前端是Nginx,主要使用nginx的http_limit_conn和http_limit_req模块来防御。ngx_http_limit_conn_module 可以**单个IP的连接数,ngx_http_limit_req_module 可以**单个IP每秒请求数,通过**连接数和请求数能相对有效的防御CC攻击。下面是配置方法: 一. **每秒请求数ngx_http_limit_req_module模块通过漏桶原理来**单位时间内的请求数,一旦单位时间内请求数超过**,就会返回503错误。配置需要在两个地方设置:
例如:
参数说明:
二.**IP连接数ngx_http_limit_conn_module的配置方法和参数与http_limit_req模块很像,参数少,要简单很多
三.白名单设置http_limit_conn和http_limit_req模块**了单ip单位时间内的并发和请求数,但是如果Nginx前面有lvs或者haproxy之类的负载均衡或者反向代理,nginx获取的都是来自负载均衡的连接或请求,这时不应该**负载均衡的连接和请求,就需要geo和map模块设置白名单:
geo模块定义了一个默认值是1的变量whiteiplist,当在ip在白名单中,变量whiteiplist的值为0,反之为1 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|