V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
markocen
V2EX  ›  NGINX

nginx 防范 ddos 最佳实践有哪些?

  •  
  •   markocen · 2017-08-15 10:29:59 +08:00 · 7609 次点击
    这是一个创建于 2650 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前能想到的有 rate limit 和 limit conn,还有哪些值得推荐?
    31 条回复    2017-08-16 11:16:29 +08:00
    UnisandK
        1
    UnisandK  
       2017-08-15 10:31:59 +08:00
    Nginx 能防得住 DDoS ?
    markocen
        2
    markocen  
    OP
       2017-08-15 10:36:20 +08:00 via Android
    @UnisandK 如果防不住还有其他推荐吗?目前我是用 nginx 放在前面做反向代理
    UnisandK
        3
    UnisandK  
       2017-08-15 10:41:29 +08:00
    @markocen 软件对 DDoS 基本都没啥效果吧,防的话要么藏好,要么加钱。。
    lsido
        4
    lsido  
       2017-08-15 10:41:44 +08:00 via Android
    最佳解决办法不应该是加硬防吗
    wekw
        5
    wekw  
       2017-08-15 10:43:14 +08:00 via Android
    DDOS 理论上讲无法防止,解决办法只有一个:让自己能够承担超大流量
    chinafeng
        6
    chinafeng  
       2017-08-15 10:44:09 +08:00
    你想表达的是 CC 吧 ?
    liuminghao233
        7
    liuminghao233  
       2017-08-15 10:47:58 +08:00 via iPhone
    你 100m 的网络改改 nginx 参数就能变成 1g 了?
    markocen
        8
    markocen  
    OP
       2017-08-15 10:58:16 +08:00 via Android
    @UnisandK @Isido @wekw @chinafeng

    我在参考这篇文章设置 nginx

    https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/

    即使不能完全防住,也有些相对有效的防范措施吧?我就想问问在应用层除了文中提到的还有哪些?
    est
        9
    est  
       2017-08-15 11:00:57 +08:00   ❤️ 1
    很多人认为 DDoS 是进门的人太多。其实不是

    DDoS 是敲门铃的人多。nginx 只能控制进门人数,并不能控制敲门的人。
    Zzzzzzzzz
        10
    Zzzzzzzzz  
       2017-08-15 11:01:06 +08:00
    真 DDOS 关机都防不住
    loveCoding
        11
    loveCoding  
       2017-08-15 11:13:43 +08:00
    ddos 是真实流量 , 普通人遇到真没啥办法..
    rogerchen
        12
    rogerchen  
       2017-08-15 11:22:20 +08:00 via Android
    DDOS 无法防御难度不是常识。攻击者的带宽是分布式的,你的带宽是专有的,从技术层面怎么玩都是死。
    u5f20u98de
        13
    u5f20u98de  
       2017-08-15 11:35:20 +08:00
    上 CDN,然后藏好真实的机器。
    kn007
        14
    kn007  
       2017-08-15 11:41:56 +08:00 via Android
    CC 还有可能软防,但也不是 nginx 来防,最多拿来限制连接数。DDOS 的话,必须硬防
    kmdgeek
        15
    kmdgeek  
       2017-08-15 12:31:09 +08:00 via Android
    再怎么限制,DDOS 把带宽打满了也没办法啊。就像一堆人把家门口堵着,你 nginx 虽然可以检查身份不让他们进来,但是他们在门外会彻底把门口堵死了呀
    skylancer
        16
    skylancer  
       2017-08-15 12:39:45 +08:00
    DDoS 是堵死进你家门(NginX)的路(带宽),你有门(NginX)有什么用呢,客人又进不来
    gamexg
        17
    gamexg  
       2017-08-15 13:03:52 +08:00   ❤️ 2
    @est #9 也可以理解为 DDOS 是车太多直接把你厂门口的公路给堵死了,给工厂增加更多接待员工,增加停车场、增加保安等等都没用,DDOS 堵塞的是公路,你没有权限去管理公路。

    除非联系公路局加宽到厂子的公路(交钱升级宽带)或者联系交警全国骨干道设卡(电信云堤),在车辆进入你厂公路前就拦截,不然没用。
    noahzh
        18
    noahzh  
       2017-08-15 13:13:45 +08:00
    花钱买平安
    est
        19
    est  
       2017-08-15 13:31:53 +08:00
    @gamexg 对。
    ixiaohei
        20
    ixiaohei  
       2017-08-15 13:41:55 +08:00
    nginx 要是能防 ddos,估计 web 服务器第一份额了妥妥的。
    rhwood
        21
    rhwood  
       2017-08-15 13:44:11 +08:00
    nginx 能防 ddos 就见鬼了,建议不要浪费时间
    qfdk
        22
    qfdk  
       2017-08-15 13:49:12 +08:00 via iPhone
    租 ovh 的机器
    jason19659
        23
    jason19659  
       2017-08-15 14:43:47 +08:00
    换域名换 ip 就能防住了
    Showfom
        24
    Showfom  
       2017-08-15 17:52:44 +08:00
    DDoS 和服务器用啥软件没鸟关系,需要在硬件层面做防火墙
    Admstor
        25
    Admstor  
       2017-08-15 18:20:52 +08:00
    @Showfom 硬件防火墙也只是"门"而已...

    有钱就购买电信的近端清洗,效果非常好
    没钱就上 CDN,但是一般 CDN 也是有上限的
    而且根据网站的设计,被人抓到你真实地址其实并不算特别困难
    Showfom
        26
    Showfom  
       2017-08-15 18:27:44 +08:00
    @Admstor 做好措施以后,还真抓不到真实 IP 主要是屏蔽好发送邮件的模块,别暴露
    visonnn
        27
    visonnn  
       2017-08-15 20:52:34 +08:00
    nginx 面对 DDoS 时能做的不是很多,只能对七层攻击做些处理。除了频率控制,就是就行粗略判断,抛弃非人类的流量( UA、JS 控制跳转之类),但是误伤还是会有。
    四层的攻击只能通过前置清洗机器比如上 CDN 或硬件防火墙的方式,如果被机房拔网线就还是洗洗睡吧。

    借楼吐槽阿里云的黑洞策略,让 DDoS 的成本变得更低。
    azuis
        28
    azuis  
       2017-08-15 21:29:46 +08:00
    @visonnn 这也怪不得阿里云。不多出钱的话人家也不能给你白抗 D。
    xiz
        29
    xiz  
       2017-08-16 05:45:13 +08:00
    nginx 支持防 DDOS ?!你村断网了吧
    owenk
        30
    owenk  
       2017-08-16 11:07:32 +08:00
    同志,直接用第三方防护吧,DDOS 攻击是流量型攻击,在 nginx 上面做配置防 CC 还是可以的。
    第三方防护推荐:
    1、知道创宇抗 D 保。一个面板,既能防 DDOS 攻击、也能防 CC 攻击(目前正在用)
    2、阿里云。一般的小攻击能抗,大攻击也能抗,但是得看你付费能力怎么样;
    sofs
        31
    sofs  
       2017-08-16 11:16:29 +08:00
    cc 还可以说说
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 13:26 · PVG 21:26 · LAX 05:26 · JFK 08:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.