设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

使用请求限制保护Nginx不被Flood攻击

2013-11-18 10:42| 发布者: joejoe0332| 查看: 3237| 评论: 0|原作者: 围观|来自: 开源中国社区

摘要: 我会简单的告诉你如何配置Nginx的限制请求模块并且它是如何保护你的网站,防止你被攻击与DDOS或是其他基于HTTP的拒绝服务攻击。这个测试中,我将样本页在保存在Blitz.io(现在是免费服务)命名为about.html,用于测试 ...


PHP 应用请求限制


如果你想限制所有的PHP应用限制,你可以这样做:

location ~ \.php {	limit_req   zone=flood;	include php_params.conf;	fastcgi_pass unix:/tmp/php5-fpm.sock;}


  它可以帮你玩意些设置项像加速或减速,以应对突发或无延时需求. 配置项详情,猛击这里: HttpLimitReqModule.


  注:


  你可能注意到上面的图表测试了1075个用户请求,这里有个误导,因为所有的访问请求都来自与位于加州的同一个IP(50.18.0.223).


  我很难实现一个真实的高流量网络或者DDOS (分布式拒绝服务攻击).这也就是为什么我们访问成功的用户的数量跟IP不是很大. 服务器负载也会影响测试用户的访问数或者地区. 使用免费版本你可以最多并发访问到的用户数是50个. 当然你可以花每天$49美刀让1000个用户访问你的网站.


  如果你有足够的内存跟带宽,用单一IP地址测试是很容易的. 用这个工具就可以实现: 高并发量, ab, openload等等. 只不过是在终端界面,没有UI而已.


  当然你要自己测试, 记住要使用status flag,因为Blitz会在5秒左右后响应访问请求.


  更好的替换方案


  这里不会深入讲解更多细节, 如果你认真的想阻止攻击你服务器的DDOS或multi-service attack,还有其他很棒的软件工具像 iptables (linux), pf (packet filter for BSD) , 或者你的服务器提供硬件的话,你可以使用你的硬件防火墙 . 上述的限制模块只会阻止通过HTTP请求过来的洪水攻击,它不会阻止ping包洪水攻击或者其他的漏洞,对于这些情况你可以关闭不需要的服务和不需要的端口,以防止别人的突破.


  举个例子,我的服务器对外网公开的端口只有HTTP/HTTPS和SSH. 像MySQL这些服务之绑定本地连接. 也可以将一些通用服务设置成不常用的端口上,这样就不会被嗅探器(iptables/pf会对这种情况有帮助).

英文原文:Nginx Flood Protection with Limit_req


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部