移动安全安全管理 应用案例 网络威胁 系统安全 应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 安全管理 >

利用Nginx防御 CC报复打击论述

时间:2013-06-27 11:05来源:TuZhiJiaMi企业信息安全专家 点击:
本文首要介绍了有关利用Nginx防御CC报复打击的一些建设。CC报复打击针对的是办事器上面的内存和CPU资本,是以凡是会找到一些比较高耗损的接口,例如search.php之类的需要大年夜量sql查询的接
Tags安全管理(325)Nginx(6)CC攻击(3)  

  本文首要介绍了有关利用Nginx防御CC报复打击的一些建设。CC报复打击针对的是办事器上面的内存和CPU资本,是以凡是会找到一些比较高耗损的接口,例如search.php之类的需要大年夜量sql查询的接口。是以,大白了这一点,我们就很好防御了,主如果针对单个ip地址的连接数和要求php文件的密度来节制的。

  我们首要用到的是Nginx中供给的两个limit模块:

  ngx_http_limit_conn_module ngx_http_limit_req_module

  1、白名单

  起首这两个模块是撑持白名单的,就是可能有某些IP地址,我们是不需要进行限制的,好比可能会是搜刮引擎啦甚么的或本身的IP,是以需要设置一个白名单,不需要的可跳过本步。具体编制:

  在HTTP段中插进以下格局内容,声大白名单IP

  http{ ....... geo $limited{ default 1; #公司 119.123.5.0/24 0; } ......... }

  geo指令定义了一个白名单$limited变量,默许值为1,假定客户端IP在上面的范围内,$limited的值为0。

  然后紧跟在上面内容后利用map指令映照搜刮引擎客户端的ip为空串,假定不是白名单IP就显示本身真实的IP,如许搜刮引擎iIP就不克不及存到limit模块的内存session中,所以不会限制白名单的IP拜候。

  map $limited $limit { 1 $binary_remote_addr; 0 ""; }

  2、拜候频率限制

  拜候频率限制利用到的是ngx_http_limit_req_module,需要在两个处所建设,起首在HTTP段中,声明好这个模块一些参数,假定有设置白名单,设置以下

  http{ ... limit_req_zone $limit zone=one:10m rate=20r/m; ##平均20r/m 每分钟20个要求 ... }

  假定没有建设白名单,所有来访IP城市限制,建设以下

  http{ ... limit_req_zone $binary_remote_addr zone=one:10m rate=20r/m; ##平均20r/m 每分钟20个要求 ... }

  诠释一下上面的参数,第一个代表的是需要限制的ip群,这个很好理解,第二个zone=one暗示这个limit_zone的名字叫做one,后面的利用中可以用这个one来进行指代,后面的15m,代表为这个zone分派10m的内存,1m可以保留16000的$binary_remote_addr。最后一个是频率,假定要按秒来算可以设置20r/s如许。

  最后是建设到Nginx的php的解析段

  location ~ \.php$ { ... limit_req zone=one burst=5 nodelay; ... }

  指定了利用名字为one的zone,然后缓冲队列为5,无延迟,假定不设置无延迟,拜候会卡住。

  3、拜候连接限制

  拜候连接限制利用到的是ngx_http_limit_conn_module,也是需要在两个处所建设,起首在HTTP段中,声明好这个模块一些参数,假定有设置白名单,设置以下

  http{ ... limit_conn_zone $limit zone=addr:10m; ... }

  假定没有建设白名单,所有来访IP城市限制,建设以下

  view sourceprint?http{ ... limit_conn_zone $binary_remote_addr zone=addr:10m; ... }

  参数的意思跟上面的差不多也就不多诠释了。

  后面的就是在server段中进行设置了,可以具体到某个目次甚么的了

  server { location /download/ { limit_conn addr 5; }

  大年夜功成功,打完收工,记得要nginx -s reload一下哦~

------分隔线----------------------------

推荐内容