V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RqPS6rhmP3Nyn3Tm
V2EX  ›  问与答

又被 CC 了,有啥切实有效的预防方法?

  •  
  •   RqPS6rhmP3Nyn3Tm · 2016-04-13 12:17:37 +08:00 · 12780 次点击
    这是一个创建于 3148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    屏幕快照 2016-04-13 下午 12.15.57.png 屏幕快照 2016-04-13 下午 12.13.32.png 上次七牛被 CC 后就把图片迁回 VPS 本机了,今天发现又被 CC 。随意看了一下 log ,发现还是老手法,还是熟悉的 curl。不同之处是这次加上了百度的 referer。估计还用了代理池,直接封 IP 有一定难度。

    很不开心。一个随意的个人博客都能这么搞。世界上还是小人多啊。

    直接把 curl 的 UA 封了就怕改了个 UA 卷土重来,求解决方法?

    第 1 条附言  ·  2016-04-13 23:05:36 +08:00
    感谢各位回复。顺便求一方法可以在服务器流量暴涨的时候发邮件警报, OneAPM 和 Datadog 太贵了……
    104 条回复    2016-04-14 14:42:40 +08:00
    1  2  
    yov123456
        1
    yov123456  
       2016-04-13 12:23:06 +08:00 via iPhone
    用用 verynginx 的那个模块?
    jsonline
        2
    jsonline  
       2016-04-13 12:23:21 +08:00 via Android
    ip 限制呗 一个 IP 一天 100 次
    RqPS6rhmP3Nyn3Tm
        3
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:24:36 +08:00
    @yov123456 求详细?

    @jsonline IP 限制估计有难度,估计是用了代理池的,换个代理卷土重来
    liyvhg
        4
    liyvhg  
       2016-04-13 12:26:13 +08:00 via Android
    也去 cc 竞争对手的
    RqPS6rhmP3Nyn3Tm
        5
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:27:22 +08:00
    @liyvhg 个人博客哪来的竞争对手
    yexm0
        6
    yexm0  
       2016-04-13 12:29:58 +08:00 via Android
    别 c 别人了,万一人家 d 回来你那只有几 M 带宽的机子一定 boom 。
    ThreeBody
        7
    ThreeBody  
       2016-04-13 12:30:22 +08:00
    @BXIA 估计你得罪人了吧,然后那个人找到你博客,然后攻击
    giuem
        8
    giuem  
       2016-04-13 12:32:03 +08:00 via Android
    封 ua 试试
    RqPS6rhmP3Nyn3Tm
        9
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:32:15 +08:00
    @ThreeBody 说实话,我真的不记得我得罪过谁
    VmuTargh
        10
    VmuTargh  
       2016-04-13 12:32:33 +08:00
    Cloudflare 走起
    acrisliu
        11
    acrisliu  
       2016-04-13 12:32:46 +08:00 via Android
    找三胖 360.com.sb
    ccc008
        12
    ccc008  
       2016-04-13 12:32:51 +08:00
    暂时换一个大带宽的,他打不动就不打了
    Zohar
        13
    Zohar  
       2016-04-13 12:33:01 +08:00 via Android
    上 CloudFlare
    UnisandK
        14
    UnisandK  
       2016-04-13 12:33:05 +08:00
    楼主也是多灾多难,摸摸。。
    guoer
        15
    guoer  
       2016-04-13 12:33:16 +08:00
    提升技术的好机会啊
    RqPS6rhmP3Nyn3Tm
        16
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:33:24 +08:00
    @giuem 封 UA 最容易,但是对方改一个也很方便。上次在七牛被搞,这次迁回本机不就又来搞我了吗
    ThreeBody
        17
    ThreeBody  
       2016-04-13 12:34:08 +08:00
    Havee
        18
    Havee  
       2016-04-13 12:34:47 +08:00
    记录一个时间段含有这些特征的 ip ,去重排序,然后直接 drop
    写个脚本去跑,可以放计划任务里
    RqPS6rhmP3Nyn3Tm
        19
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:35:25 +08:00
    @VmuTargh
    @Zohar 放到沙田就是为了 CN2 访问快,上 cloudflare 不就又慢下来了吗
    ioriwong
        20
    ioriwong  
       2016-04-13 12:35:27 +08:00 via Android
    当你不能反抗的时候,要学会享受(手动滑稽)
    Havee
        21
    Havee  
       2016-04-13 12:35:32 +08:00
    封 ip 怎么能不现实呢,这是一劳永逸的办法,对方换 ip 地址池是需要成本的
    VmuTargh
        22
    VmuTargh  
       2016-04-13 12:37:07 +08:00
    @BXIA 这是没办法的事情…… 目前只能上个顶着
    Zohar
        23
    Zohar  
       2016-04-13 12:37:13 +08:00 via Android
    @BXIA CloudFlare 速度也不算太慢吧…
    sparkle
        24
    sparkle  
       2016-04-13 12:37:57 +08:00
    阿里云 CDN 不是说可以抗攻击吗,不知道效果怎么样
    RqPS6rhmP3Nyn3Tm
        25
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:39:12 +08:00
    @VmuTargh
    @Zohar 之前放在 DigitalOcean ,上了 CL 比直连还慢……
    Strikeactor
        26
    Strikeactor  
       2016-04-13 12:39:48 +08:00
    @Havee 这样会引入更大的漏洞吧,对方拿这种 http://spys.ru/free-proxy-list/CN/ 刷一遍估计楼主的博客跟被 CC 死了也没区别了
    Slienc7
        27
    Slienc7  
       2016-04-13 12:40:04 +08:00 via Android   ❤️ 1
    所有機房和公開代理 IP 全部直接 ban 了。
    用類似 Blocked.net 的東西。
    Zohar
        28
    Zohar  
       2016-04-13 12:44:50 +08:00 via Android
    @BXIA 但是我觉得 CloudFlare 应该是最省心、成本最低的解决办法了吧(・・;
    RqPS6rhmP3Nyn3Tm
        29
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:47:56 +08:00
    @Slienc7 不是很现实,还是有很多人开代理上网的吧
    fyooo
        30
    fyooo  
       2016-04-13 12:49:53 +08:00 via Android
    腾讯云和阿里云不是可以免费防 DDOS 么?
    aivier
        31
    aivier  
       2016-04-13 12:50:29 +08:00
    找个流量大的反代....让他慢慢玩
    RqPS6rhmP3Nyn3Tm
        32
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:51:00 +08:00
    @fyooo 不是阿里和腾讯的机器
    Slienc7
        33
    Slienc7  
       2016-04-13 12:51:14 +08:00
    @BXIA
    那就遇到这类 IP 扔 reCAPTCHA 给他们就好了,一般个人梯子,体验还是不错的。
    RqPS6rhmP3Nyn3Tm
        34
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 12:54:01 +08:00
    @Slienc7 这是个好主意,访问超过一定数量则上 reCAPCHA ,确认后可继续访问
    不知道如何用 nginx 实现?
    kokutou
        35
    kokutou  
       2016-04-13 12:56:11 +08:00
    仍 reCAPTCHA +1
    badcode
        36
    badcode  
       2016-04-13 12:57:41 +08:00 via iPhone
    http://www.360.com.sb/safe/326.html
    ngx_lua
    lujit2.0

    上 CloudFlare

    ban ip

    最好想办法知道为何被 C
    virusdefender
        37
    virusdefender  
       2016-04-13 13:01:11 +08:00
    v1024
        38
    v1024  
       2016-04-13 13:03:31 +08:00
    买服务商的防护方案。
    nlzy
        39
    nlzy  
       2016-04-13 13:04:10 +08:00 via Android
    Havee
        40
    Havee  
       2016-04-13 13:08:11 +08:00
    @Strikeactor 又不妨碍个人访问,难不成楼主博客被墙?
    Strikeactor
        41
    Strikeactor  
       2016-04-13 13:15:05 +08:00   ❤️ 1
    @Havee 很多临时的 HTTP 开放代理其实是有漏洞的个人设备或者肉鸡,自动总结的话会造成大面积正常 IP 段也被划进防护范围,对方有意使用国内的 IP 段集中触发防护规则的话是可以达到被墙一样的效果的
    Felldeadbird
        42
    Felldeadbird  
       2016-04-13 13:15:49 +08:00
    好奇 /content/images/2016/03/internet-query-1459137420744.png 是什么内容。。为什么要 CC 你?
    dapang1221
        43
    dapang1221  
       2016-04-13 13:16:53 +08:00 via Android
    这 cc 攻击的人也是个逗比,好像一直访问的只是那个 png 图片?大不了那个图不要了,把所有访问那个图的流量 302 到百度上去
    Slienc7
        44
    Slienc7  
       2016-04-13 13:18:14 +08:00
    @BXIA 没有试过,不太了解 NGINX ;按照文档来应该不太难?
    RqPS6rhmP3Nyn3Tm
        45
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 13:18:36 +08:00 via Android
    @Felldeadbird 上次 27 条的图片
    cst4you
        46
    cst4you  
       2016-04-13 13:19:57 +08:00
    这界面... Starry 家的?
    GPU
        47
    GPU  
       2016-04-13 13:23:03 +08:00
    http://ip.rtbasia.com/

    检测 IP 真人概率 , get 请求超过 n 次之后对此 IP 进行检测,低于 50% BAN IP.

    貌似要开一个坑才可以
    shiny
        48
    shiny  
       2016-04-13 13:25:57 +08:00   ❤️ 2
    访问页面的时候注入 cookies ,然后打开图片的时候验证 cookies
    sandideas
        49
    sandideas  
       2016-04-13 13:28:03 +08:00 via iPhone
    @GPU 不好使啊。我校园网才百分之四十几。。。
    GPU
        50
    GPU  
       2016-04-13 13:30:35 +08:00
    @sandideas 校园网不懂 ,我自己使用的 vps 测出来挺正常的
    UnisandK
        51
    UnisandK  
       2016-04-13 13:30:52 +08:00
    @GPU 现在很多 ISP 都不给公网 IP 了,使用公共出口的很容易触发这玩意,而且出口 IP 真人概率肯定低
    shiny
        52
    shiny  
       2016-04-13 13:33:12 +08:00
    @GPU 很多代理,实际上是个人宽带里的设备被扫出来的。我以前家庭宽带架个绑 1080 的树莓派,很快就被扫出来了。
    Havee
        53
    Havee  
       2016-04-13 13:40:11 +08:00
    @Strikeactor 但是很多都是透明代理啊, nignx 配置下就行
    高匿代理封了就封了

    个人博客,不是日 ip 上万那种
    xuboying
        54
    xuboying  
       2016-04-13 14:03:28 +08:00
    没有动态的封 ip 的程序么?
    自动计算访问量来限制?
    Earthman
        55
    Earthman  
       2016-04-13 14:15:28 +08:00
    @shiny 自己不用密码验证?
    ytmsdy
        56
    ytmsdy  
       2016-04-13 14:18:05 +08:00
    直接挂一个百度的 cdn 加速。效果杠杠的。。。。。
    msg7086
        57
    msg7086  
       2016-04-13 14:25:00 +08:00
    ngx_http_limit_req_module
    看看能不能把 Hash 池设置成 IP+本地文件,这样可以专门针对单刷单张图片做防护,也不会影响正常访问。
    zynlnow
        58
    zynlnow  
       2016-04-13 14:31:29 +08:00
    可以用 limit_req_zone 限制资源访问
    http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
    youxiachai
        59
    youxiachai  
       2016-04-13 14:33:41 +08:00
    @ytmsdy 那 lz 要准备破产了..
    clino
        60
    clino  
       2016-04-13 14:47:01 +08:00
    fail2ban 封 IP
    lotuslotus
        61
    lotuslotus  
       2016-04-13 14:47:47 +08:00
    @dapang1221 虽然百毒名声差,但你也不能这样祸害他啊,怎么不 302 到 http://120.52.72.19/mirrors.163.com/ubuntu-releases/15.10/ubuntu-15.10-desktop-amd64.iso
    CayenneS
        62
    CayenneS  
       2016-04-13 14:53:39 +08:00
    http://www.360.com.sb/safe/326.html 可以借鉴, verynginx 。不过楼主知道 cc 量多少,量多估计也悬
    williamnet
        63
    williamnet  
       2016-04-13 14:55:46 +08:00
    在页面源代码里注释写上:大哥我错了,饶了我吧。。。
    O21
        64
    O21  
       2016-04-13 14:57:25 +08:00
    我说的点实际的吧

    nginx 配置

    https://gist.github.com/ac7c52d9826a22c77053bdb950951975.git

    http{
    ...
    limit_zone one $binary_remote_addr 10m;
    ...
    server{
    listen 80;
    ....
    location/{
    limit_conn one 5; #限制连接数
    limit_rate 500k; # 限制速度
    }
    }
    bk201
        65
    bk201  
       2016-04-13 14:59:59 +08:00
    我一直在想转发到广告流量上是不是很赚。
    wayslog
        66
    wayslog  
       2016-04-13 15:04:40 +08:00 via Android
    那么问题来了…楼主…哪家泡面好吃?
    zhicheng
        67
    zhicheng  
       2016-04-13 15:11:58 +08:00
    C 你的时候开 CF ,不 C 的时候再关掉。
    shiny
        68
    shiny  
       2016-04-13 15:16:01 +08:00
    @bk201 会被封账号,别问我怎么知道的
    lbp0200
        69
    lbp0200  
       2016-04-13 15:21:39 +08:00   ❤️ 1
    通过 nginx 配置文件抵御攻击
    http://drops.wooyun.org/tips/734
    feather12315
        70
    feather12315  
       2016-04-13 15:22:46 +08:00 via Android
    @sandideas vps 61%
    mcone
        71
    mcone  
       2016-04-13 15:32:08 +08:00
    楼主怎么这么惨。。。。话说刚刚我想去看看那个图片是神马也看不到了 o(╯□╰)o

    谁这么吃饱了撑的啊,感觉里面应该有故事才对。。。
    jame
        72
    jame  
       2016-04-13 15:53:30 +08:00
    限制同 IP 每分钟的连接数呀,正常人类不会一直刷新的。
    imWBB
        73
    imWBB  
       2016-04-13 16:33:41 +08:00 via Android
    据说上 https 之后 cc 效果会很差
    youxiachai
        74
    youxiachai  
       2016-04-13 16:53:09 +08:00
    @bk201 没用..这算作弊流量...
    Ryans
        75
    Ryans  
       2016-04-13 16:53:40 +08:00
    用加速乐,防 CC
    RqPS6rhmP3Nyn3Tm
        76
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 17:52:00 +08:00
    @imWBB 我这就是 HTTPS
    qcloud
        77
    qcloud  
       2016-04-13 18:09:16 +08:00
    上云锁!
    usernametoolong
        78
    usernametoolong  
       2016-04-13 18:32:27 +08:00
    楼主给个联系方式,有个机油防 CC 屌得不行。
    kn007
        79
    kn007  
       2016-04-13 18:50:50 +08:00
    是谁这么无聊。。。还好我 VPS 有 2T 流量。。。
    kn007
        80
    kn007  
       2016-04-13 18:51:43 +08:00
    @BXIA 封掉一个 C 段试试
    kn007
        81
    kn007  
       2016-04-13 18:52:02 +08:00
    之前被人用过 B 段 CC 。。。的路过
    kn007
        82
    kn007  
       2016-04-13 18:58:35 +08:00
    还可以用#48L shiny 的方法
    datocp
        83
    datocp  
       2016-04-13 19:16:10 +08:00
    去研究一下 iptables recent 模块吧。

    iptables 防 syn_flood 之类的
    -A INPUT -i venet+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn_flood

    iptables -S syn_flood
    -N syn_flood
    -A syn_flood -i venet0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m hashlimit --hashlimit-upto 80/sec --hashlimit-burst 450 --hashlimit-mode srcip --hashlimit-name synlimit --hashlimit-htable-expire 300000 -j RETURN
    -A syn_flood -m recent --set --name blacklist --rsource -j DROP

    终极方法就是用 shell 对来源 ip 进行处理,然后 iptables quota 流量,每 IP 每天限制访问流量,甚至可以用 tc 进行每 ip 流量限制
    -A OUTPUT -d 101.65.158.109/32 -o venet0 -m quota --quota 2076996775 -j ACCEPT
    -A OUTPUT -d 101.65.158.109/32 -o venet0 -m recent --set --name bquota --rdest -j REJECT --reject-with icmp-port-unreachable
    ixinshang
        84
    ixinshang  
       2016-04-13 20:43:15 +08:00
    fail2ban 可以试试
    AlexaZhou
        85
    AlexaZhou  
       2016-04-13 21:23:04 +08:00
    CURL 并不是完整的浏览器,对通过 CURL 发起的攻击来说,可以通过动态 Cookies 验证的方法进行屏蔽

    原理参考: https://www.v2ex.com/t/260392

    然后 VeryNginx 中已经实现了一遍,直接拿着用就行了
    RqPS6rhmP3Nyn3Tm
        86
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 21:57:45 +08:00   ❤️ 1
    @AlexaZhou 连 VeryNginx 的原作者都来了啊……您的 VeryNginx 下午折腾了一下装上了,后来由于文档比较少不会用只能滚回原版 Nginx 了……
    RqPS6rhmP3Nyn3Tm
        87
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 22:00:25 +08:00
    @wayslog 出前一丁汤不错,就是没有料包。泡面还是国产的好吃,汤达人各方面都很好,料多汤浓。南朝鲜的泡面不合我口味。日本的也不错。
    AlexaZhou
        88
    AlexaZhou  
       2016-04-13 22:19:00 +08:00
    @BXIA

    😰,抱歉没帮上忙...

    看来我需要写一些文档,把一些典型应用下怎么配置都说一下
    AlexaZhou
        89
    AlexaZhou  
       2016-04-13 22:31:55 +08:00
    @BXIA

    差点忘了,请问你用的时候,是在哪儿卡住了呢?

    我好改进一下
    Yamade
        90
    Yamade  
       2016-04-13 22:35:55 +08:00 via Android   ❤️ 1
    @AlexaZhou 做成 Docker 吧
    RqPS6rhmP3Nyn3Tm
        91
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 22:43:05 +08:00 via Android   ❤️ 1
    @AlexaZhou So sorry ,我把 GitHub 上的文档反复看了几遍,想要实现的是「除搜索引擎 bot 外,禁止非浏览器访问」还有「单位时间内访问过多的 IP 进黑名单禁止访问」,好像没有能配置的地方…
    YUX
        92
    YUX  
       2016-04-13 22:44:16 +08:00
    上 CloudXNS+牛盾
    @CloudXNS
    AlexaZhou
        93
    AlexaZhou  
       2016-04-13 22:55:33 +08:00   ❤️ 1
    @BXIA

    「除搜索引擎 bot 外,禁止非浏览器访问」这个不难,但是需要知道搜索引擎的 UA ,例如这里我们写一个正则表达式 search_engine_ua_re 来匹配所有的搜索引擎 UA ,那大概方法是:

    配置一个 Mather ,包含 UA !≈ search_engine_ua_re, 然后配置一条浏览器校验规则,引用这个 Matcher ,打开 cookies 校验和 JavaScript 校验就可以了

    有点难的地方在于需要写一个正则表达式来匹配所有的搜索引擎 UA

    「单位时间内访问过多的 IP 进黑名单禁止访问」这个功能目前还没有,不过已经在开发计划中了,后续会加上
    kofip
        94
    kofip  
       2016-04-13 22:58:18 +08:00
    数据中心 ,真人概率: 10%
    kofip
        95
    kofip  
       2016-04-13 22:58:36 +08:00
    @GPU 数据中心 ,真人概率: 10%
    RqPS6rhmP3Nyn3Tm
        96
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-13 23:05:54 +08:00   ❤️ 1
    @AlexaZhou 非常感谢!
    AlexaZhou
        97
    AlexaZhou  
       2016-04-13 23:20:39 +08:00
    @Yamade

    下个版本就会同步做成 Docker 啦
    AlexaZhou
        98
    AlexaZhou  
       2016-04-13 23:22:41 +08:00
    @BXIA

    客气啦😊
    RqPS6rhmP3Nyn3Tm
        99
    RqPS6rhmP3Nyn3Tm  
    OP
       2016-04-14 08:52:16 +08:00
    @AlexaZhou 您好,今天尝试在原版 nginx 中使用 verynginx (因为很多要用到的 module 所以不能用 openresty )失败了。 nginx 编译进了 lua-nginx-module 、 http_stub_status_module 然后通过包管理安装 lua-cjson 。还是不行, nginx 可以正常启动没有报错,但是就是无法正常运行。请问如何解决?
    Hodor
        100
    Hodor  
       2016-04-14 10:30:07 +08:00
    买我司的产品呗。。。。

    虽然跟我不是一个部门,但是我感觉我们的东西好像挺牛逼的。。。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.