V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hzlzh
V2EX  ›  程序员

大家怎么对抗这样的 DDoS 攻击?

  •  1
     
  •   hzlzh ·
    hzlzh · 2017-07-08 17:48:30 +08:00 · 7382 次点击
    这是一个创建于 2455 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如图,持续不断的请求不存在的图,造成内存负载超额,大家遇到这种事情会怎么解决?

    目前已经加了 403 和 iptables ban IP,但是依然屡禁不止。

    39 条回复    2017-08-03 11:50:51 +08:00
    jellybool
        1
    jellybool  
       2017-07-08 17:59:18 +08:00 via iPhone   ❤️ 1
    无他,找一个吃下这个流量的服务器就 OK。专门做抗 D 用....
    qcloud
        2
    qcloud  
       2017-07-08 17:59:58 +08:00   ❤️ 1
    @jellybool #1 我记得老哥就这样做过
    vus520
        3
    vus520  
       2017-07-08 18:00:14 +08:00   ❤️ 1
    上 CDN

    我感觉是不是 nginx 会比 apache 性能来得好啊,纯粹一个 URL,单机响应每秒几万是没问题的。
    jellybool
        4
    jellybool  
       2017-07-08 18:03:59 +08:00 via iPhone   ❤️ 1
    @qcloud 啊哈..认识的一个大佬有机器专门抗 d。
    hzlzh
        5
    hzlzh  
    OP
       2017-07-08 18:08:35 +08:00
    @vus520 现在流量到是小事,因为每个访问都是 404 或者 4xx,日志文件都好多 G 了
    @jellybool 上 CDN 如果消耗了流量要交钱的。对方目标地址应该是我的主机独立 IP,我考虑关掉 ip 访问方式
    just1
        6
    just1  
       2017-07-08 18:10:29 +08:00   ❤️ 1
    @hzlzh 日志分析把量大的 ip 全加到 iptables 里,应该不会交给 apache 处理啊,是不是 ip 没封全
    hzlzh
        7
    hzlzh  
    OP
       2017-07-08 18:11:31 +08:00
    @just1 已经用脚本筛选添加了,会变啊,简直是要 cron
    jellybool
        8
    jellybool  
       2017-07-08 18:13:27 +08:00 via iPhone   ❤️ 1
    @hzlzh 关啊...

    这种事情,本来就是应该做好负载均衡的。别人怎么怼坏一个 ip,至少保证瞬间切换到另外的机器上
    lyhiving
        9
    lyhiving  
       2017-07-08 18:14:00 +08:00 via Android
    识别 header 然后封
    usernametoolong
        10
    usernametoolong  
       2017-07-08 18:18:21 +08:00   ❤️ 1
    cc 而已 还以为是 UDP 攻击, 识别出攻击者然后给丢一个 301 或者 400 的状态码就能解决了。
    apache 可能会忙不过来吐血,能加个 nginx 做前端话效果好些。

    下一题
    vus520
        11
    vus520  
       2017-07-08 18:25:09 +08:00
    我们用 OVH 的机器也遇到这个神坑,每秒有个几千的请求,连接数 10~20 万左右,OVH 会当成攻击给黑洞了。傻了吧唧了。
    just1
        12
    just1  
       2017-07-08 18:33:50 +08:00
    @vus520 ovh 不是 480Gbps 的抗攻击吗。
    kmahyyg
        13
    kmahyyg  
       2017-07-08 18:35:46 +08:00 via Android   ❤️ 1
    东北大学有个 hosts.deny 列表,那个可以用来预防。这个吗,可以的话搞个 CF 五秒盾
    aksoft
        14
    aksoft  
       2017-07-08 18:44:50 +08:00
    @kmahyyg 东北大学那个是 ssh
    Admstor
        15
    Admstor  
       2017-07-08 18:53:37 +08:00   ❤️ 1
    你这个不能算是 DDOS
    前面加 nginx 这种请求数毛毛雨..
    至于日志文件...你没事记录这么多 40x 干嘛
    ericFork
        16
    ericFork  
       2017-07-08 18:55:13 +08:00   ❤️ 1
    @just1 #12 ovh 真的没有 480G
    Betacoefficient
        17
    Betacoefficient  
       2017-07-08 19:34:56 +08:00
    @ericFork 大佬们都用 ovh 么,vultr 没人用么
    hzlzh
        18
    hzlzh  
    OP
       2017-07-08 19:37:08 +08:00
    42.59.180.209
    122.142.211.149
    111.26.36.96
    123.185.22.227
    111.26.36.96
    122.137.245.65
    123.185.22.227
    奇怪,这几个 ip 都是辽宁、吉林的
    Antidictator
        19
    Antidictator  
       2017-07-08 19:49:04 +08:00 via Android
    @hzlzh 请教一下关掉 ip 访问方式还怎么访问呢
    vebuqi
        20
    vebuqi  
       2017-07-08 21:12:12 +08:00
    高防 IP?
    ovear
        21
    ovear  
       2017-07-08 21:39:05 +08:00
    前面挂一个 nginx 就好了
    hzlzh
        22
    hzlzh  
    OP
       2017-07-08 23:43:41 +08:00
    @Antidictator 用 IP shared 模式就好了。
    @ovear 刚才已经挂了 nginx
    Hardrain
        23
    Hardrain  
       2017-07-09 00:01:51 +08:00
    这算 CC 吧……看起来全是请求正常的内容

    除了抗 D 的主机外,如果 IP 随机性很高没法封(无论 Server Config 还是 iptables)
    那还可以考虑用 mod_security2 这类 WAF
    限制被攻击文件的访问频率 过高的 IP 暂时 Block 掉
    gstqc
        24
    gstqc  
       2017-07-09 00:07:18 +08:00
    12.4 reqs/s, 毛毛雨都算不上……
    gouchaoer
        25
    gouchaoer  
       2017-07-09 00:07:46 +08:00 via Android
    ip 在几万以下直接 iptables 封杀
    ryd994
        26
    ryd994  
       2017-07-09 00:26:47 +08:00 via Android
    Apache 啊……当然咯
    你用 Nginx 嘛,都不用限制频率
    不要用 Nginx 反代,反代没有任何意义
    Showfom
        27
    Showfom  
       2017-07-09 00:45:21 +08:00 via iPhone   ❤️ 1
    你这是 cc 不是 DDoS

    DDoS 发包不会访问你 web 的 直接暴力干掉你服务器的带宽和 cpu
    evil4ngl3
        28
    evil4ngl3  
       2017-07-09 02:16:09 +08:00   ❤️ 1
    如果只是这样的攻击,一般称"CC"攻击。你可以使用 ossec,根据日志的访问频率,或者自己写规则,把访问量大的 IP,拉到系统防火墙里。这样 apache 的压力就没了。但是如果还有网络层的攻击,如 SYN flood、udp flood、tcp 分片等等。那就看你的主机带宽和性能了。一般来说几台肉鸡多开 syn flood,就可以搞死一台性能不错的服务器。
    ossec 有个坑,就是 iptables 的拉黑 IP 不能太多,不让 iptables 可能假死。所以你还要设置被拉黑 IP 的释放时间,根据实际情况自己调整。
    evil4ngl3
        29
    evil4ngl3  
       2017-07-09 02:19:24 +08:00
    被 D,最害怕的是什么?是不知道会攻击多长时间,不知道下一波流量有多大,不知道是谁,什么目的,而且警察不立案。买高防,钱就是无底洞。
    亲身经历峰值 30G 的 DDOS,放在腾讯云上,但是 IP 被运营商拉黑了。因为影响整个机房带宽了。。。。
    liuminghao233
        30
    liuminghao233  
       2017-07-09 10:07:01 +08:00 via iPhone
    拔网线换 ip
    shansing
        31
    shansing  
       2017-07-09 10:42:21 +08:00
    我好奇 return 444 会不会比 404/403 好些?
    blackboar
        32
    blackboar  
       2017-07-09 12:02:11 +08:00
    你这不是 ddos,只是 cc
    hzlzh
        33
    hzlzh  
    OP
       2017-07-09 13:48:53 +08:00
    @evil4ngl3 我已经加了 iptables,而且是定时去加的。
    dai269619118
        34
    dai269619118  
       2017-07-09 16:34:37 +08:00
    加百度加速云 免费版的抗 d 效果挺不错的
    ryd994
        35
    ryd994  
       2017-07-09 18:00:17 +08:00
    @hzlzh 直接加 iptables,而不是用 ipset 的话,可能效果很差
    vus520
        36
    vus520  
       2017-07-09 21:59:00 +08:00
    @just1 感觉 OVH 是误杀了,根本就是正常请求,给我拦掉了
    lybtongji
        37
    lybtongji  
       2017-07-09 22:23:34 +08:00
    看了楼上说 CC 不算 DDoS,就特地看了下 Wiki,里面说 CC 是 DDoS 的一种
    evil4ngl3
        38
    evil4ngl3  
       2017-07-10 10:59:40 +08:00
    @hzlzh 多提供一些 IP 地址,扫描一下开放端口,反黑回去,在肉鸡上找到 DDos 的工具,分析一下。
    spartda
        39
    spartda  
       2017-08-03 11:50:51 +08:00
    直接使用第三方抗 D 服务啊。用了 1 年多的知道创宇抗 D 保,效果不错,然再在抗 D 保的控制面板中根据实际情况添加规则来防御,效果还不错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1182 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.