设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย french

搜索
热搜: 活动 交友 discuz

求一款linux下的防火墙 [复制链接]
查看:90 | 回复:7

19

主题

227

回帖

539

积分

高级会员

积分
539
发表于 2013-8-20 07:39:02 | 显示全部楼层 |阅读模式
可以防御在短时间内某个IP对主机的大量请求,并且屏蔽该IP数分钟

112

主题

2189

回帖

4760

积分

论坛元老

积分
4760
发表于 2013-8-20 07:39:54 | 显示全部楼层


6

主题

47

回帖

116

积分

注册会员

积分
116
发表于 2013-8-20 07:40:55 | 显示全部楼层
求一款linux下的防火墙,可以在遭受攻击时主动反击制胜

58

主题

328

回帖

860

积分

高级会员

积分
860
发表于 2013-8-20 07:58:41 | 显示全部楼层
用Nginx做前端,写个PHPDDOS文件,写个rewrite规则,判断单IP单位时间内请求数到达一个数目后,就使rewrite规则生效,自动rewrite到phpddos文件,并且把remote_addr给PHPDDOS文件。

58

主题

328

回帖

860

积分

高级会员

积分
860
发表于 2013-8-20 08:04:21 | 显示全部楼层
本帖最后由 ★Extreme★ 于 2013-8-20 08:07 编辑

来,给你写法,如果Nginx就编译LUA+LIMIT_REQ2模块,tengine就把下面的limite_req2改成limit_req:

写到nginx.conf的HTTP层:[ol]
  • limit_req2_zone $binary_remote_addr $request_uri zone=one:2m rate=100r/s;  [/ol]复制代码这是写到server层的:[ol]
  • location @settime {
  •             default_type text/html;
  •             set $ip $binary_remote_addr;
  •             set $val a;
  •             set $exptime 3600;
  •             set $ipa $remote_addr;
  •             access_by_lua '
  •                 local ips = ngx.shared.ips
  •                 local vala = ips:get(ngx.var.ip)
  •                 if vala == nil then
  •                     local setip = ips:set(ngx.var.ip, ngx.var.val, ngx.var.exptime)
  •                     ngx.say("IP: ", ngx.var.ipa, " 让你妹的刷新那么快,DDOS你 ", ngx.var.exptime, " 秒。")
  •                 else
  •                     ngx.exec(403)
  •                 end
  •              ';
  •         }
  •         location = /ddos {
  •             rewrite ^ /ddos.php?ip=$remote_addr break;  #第一个动作显示的页面
  •         }
  •         
  • location /{
  • #这里写上你原来的/的代码,例如tryfile那些。
  • set $ip $binary_remote_addr;
  •             rewrite_by_lua '
  •                 local ips = ngx.shared.ips
  •                 local vala = ips:get(ngx.var.ip)
  •                 if vala == nil then
  •                     return
  •                 end
  •                 if vala == "a" then
  •                     ngx.exec("/ddos")
  •                 else
  •                     ngx.exec(403)
  •                 end
  •              ';
  •             limit_req2 zone=one forbid_action=@settime nodelay;
  •             
  •             }[/ol]复制代码DDOS怎么写我就不给了,把访问的ip=xxxx的值赋值给变量IP就行了:$ip = $_GET['ip'];
  • 19

    主题

    227

    回帖

    539

    积分

    高级会员

    积分
    539
     楼主| 发表于 2013-8-20 08:51:24 | 显示全部楼层

    ★Extreme★ 发表于 2013-8-20 07:58

    用Nginx做前端,写个PHPDDOS文件,写个rewrite规则,判断单IP单位时间内请求数到达一个数目后,就使rewrite ...

    这么说需要两台主机,一台母鸡,一台nginx

    19

    主题

    227

    回帖

    539

    积分

    高级会员

    积分
    539
     楼主| 发表于 2013-8-20 07:58:00 | 显示全部楼层

    ★Extreme★ 发表于 2013-8-20 08:04

    来,给你写法,如果Nginx就编译LUA+LIMIT_REQ2模块,tengine就把下面的limite_req2改成limit_req:

    写到ng ...

    多谢

    58

    主题

    328

    回帖

    860

    积分

    高级会员

    积分
    860
    发表于 2013-8-20 08:52:50 | 显示全部楼层

    luyu 发表于 2013-8-20 08:51

    这么说需要两台主机,一台母鸡,一台nginx

    我只用Linux架设网站……
    您需要登录后才可以回帖 登录 | 立即注册

    论坛客服/商务合作/投诉举报:2171544 (QQ)
    落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
    拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
    落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
    © 2001-2014

    浙公网安备 33060302000191号

    浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

      落伍法律顾问: ITlaw-庄毅雄

    Archiver|手机版|Discuz! X

    GMT+8, 2026-3-27 18:47 , Processed in 0.016383 second(s), 3 queries , Gzip On, Redis On.

    返回顶部