V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
RqPS6rhmP3Nyn3Tm
V2EX  ›  问与答

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

  •  
  •   RqPS6rhmP3Nyn3Tm · Apr 13, 2016 · 13968 views
    This topic created in 3672 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    上 CloudFlare

    ban ip

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

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

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

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

    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  
       Apr 13, 2016
    我一直在想转发到广告流量上是不是很赚。
    wayslog
        66
    wayslog  
       Apr 13, 2016 via Android
    那么问题来了…楼主…哪家泡面好吃?
    zhicheng
        67
    zhicheng  
       Apr 13, 2016
    C 你的时候开 CF ,不 C 的时候再关掉。
    shiny
        68
    shiny  
    PRO
       Apr 13, 2016
    @bk201 会被封账号,别问我怎么知道的
    lbp0200
        69
    lbp0200  
       Apr 13, 2016   ❤️ 1
    通过 nginx 配置文件抵御攻击
    http://drops.wooyun.org/tips/734
    feather12315
        70
    feather12315  
       Apr 13, 2016 via Android
    @sandideas vps 61%
    mcone
        71
    mcone  
       Apr 13, 2016
    楼主怎么这么惨。。。。话说刚刚我想去看看那个图片是神马也看不到了 o(╯□╰)o

    谁这么吃饱了撑的啊,感觉里面应该有故事才对。。。
    jame
        72
    jame  
       Apr 13, 2016
    限制同 IP 每分钟的连接数呀,正常人类不会一直刷新的。
    imWBB
        73
    imWBB  
       Apr 13, 2016 via Android
    据说上 https 之后 cc 效果会很差
    youxiachai
        74
    youxiachai  
       Apr 13, 2016
    @bk201 没用..这算作弊流量...
    Ryans
        75
    Ryans  
       Apr 13, 2016
    用加速乐,防 CC
    RqPS6rhmP3Nyn3Tm
        76
    RqPS6rhmP3Nyn3Tm  
    OP
       Apr 13, 2016
    @imWBB 我这就是 HTTPS
    qcloud
        77
    qcloud  
       Apr 13, 2016
    上云锁!
    usernametoolong
        78
    usernametoolong  
       Apr 13, 2016
    楼主给个联系方式,有个机油防 CC 屌得不行。
    kn007
        79
    kn007  
       Apr 13, 2016
    是谁这么无聊。。。还好我 VPS 有 2T 流量。。。
    kn007
        80
    kn007  
       Apr 13, 2016
    @BXIA 封掉一个 C 段试试
    kn007
        81
    kn007  
       Apr 13, 2016
    之前被人用过 B 段 CC 。。。的路过
    kn007
        82
    kn007  
       Apr 13, 2016
    还可以用#48L shiny 的方法
    datocp
        83
    datocp  
       Apr 13, 2016
    去研究一下 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  
       Apr 13, 2016
    fail2ban 可以试试
    AlexaZhou
        85
    AlexaZhou  
       Apr 13, 2016
    CURL 并不是完整的浏览器,对通过 CURL 发起的攻击来说,可以通过动态 Cookies 验证的方法进行屏蔽

    原理参考: https://study.congcong.us/t/260392

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

    😰,抱歉没帮上忙...

    看来我需要写一些文档,把一些典型应用下怎么配置都说一下
    AlexaZhou
        89
    AlexaZhou  
       Apr 13, 2016
    @BXIA

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

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

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

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

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

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

    下个版本就会同步做成 Docker 啦
    AlexaZhou
        98
    AlexaZhou  
       Apr 13, 2016
    @BXIA

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

    虽然跟我不是一个部门,但是我感觉我们的东西好像挺牛逼的。。。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2257 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 165ms · UTC 00:24 · PVG 08:24 · LAX 17:24 · JFK 20:24
    ♥ Do have faith in what you're doing.