Nginx防御CC攻击

Nginx防御CC攻击

黑客安全hacker2018-06-11 9:50:039701A+A-

    文中关键介紹了相关应用Nginx防守CC进攻的某些配备。CC进攻对于的是虚拟主机上边的运存和CPU資源,因而一般会寻找某些较为高耗费的插口,比如search.php之类的必须很多sql查询的插口。因而,懂了这一些,人们就非常好防守了,主要是针对单独ip地址的连接数和恳求php文件的硬度来操纵的。

人们关键采用的是Nginx中出示的2个limit模快:

 Nginx防御CC攻击 第1张

ngx_http_limit_conn_module  

ngx_http_limit_req_module 

一、白名单

 

最先这2个模快是适用白名单的,也是将会有一些IP地址,我们都是不用开展限定的,例如将会会是引擎搜索啦哪些的或是自身的IP,因而必须设定1个白名单,不用的可绕过本步。具体做法:

 

在HTTP段中插进给出文件类型內容,申明白名单IP

 

http{    

.......    

geo $limited{    

      default 1;    

      #企业    

     119.123.5.0/24 0;   

  }    

.........    

}   

geo命令界定了1个白名单$limited函数,默认值为1,假如服务端IP在上边的范围内,$limited的数值0。

 

随后紧随在上边內容后应用map命令投射引擎搜索服务端的ip为空串,要不是白名单IP就显视自身真實的IP,那样引擎搜索iIP就不可以存进limit模快的运存session中,因此不容易限定白名单的IP浏览。

 

map $limited $limit {    

                  1 $binary_remote_addr;   

                  0 "";    

        }  

二、浏览頻率限定

 

浏览頻率限定应用到的是ngx_http_limit_req_module,必须在2个地区配备,最先在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,无延时,假如不设定无延时,浏览会卡死。

 

三、浏览联接限定

 

浏览联接限定应用到的是ngx_http_limit_conn_module,都是必须在2个地区配备,最先在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一下哦


点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 1条评论
  • 世味怯慌2022-05-30 10:00:21
  • ,后边的15m,意味着为这一zone分派10m的运存,1m能够储存16000的$binary_remote_addr。第一个是頻率,假如要按秒计算出来能够设定20r/s那样。 最终是配备到Nginx的php的分析段 location ~ \.p

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理