NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
saytesnake
V2EX  ›  NGINX

求助,一个 SaaS 服务被来自福建的疑似僵尸网络 DDOS...Nginx 怎么挡?

  •  
  •   saytesnake · Nov 11, 2020 · 3793 views
    This topic created in 2085 days ago, the information mentioned may be changed or developed.

    有约百来个用户的 SaaS 服务,给到用户使用的时候都会分配一个二级域名,如

    client-a.v3ex.comclient-b.v3ex.comclient-c.v3ex.com

    这样,

    今天 Nginx 流量都爆了,一看有来自福建不同地区的好几十个 IP 不断刷一个 uri,导致整个服务都拖慢了。

    http://client-a.v3ex.com/dept/schedule.htm?date=2020-11-12&deptId=42756

    Nginx 里面可能当时为了图方便,直接就配置了泛域名

    server_name *.v3ex.com;
    

    没区分出来。

    目前暂时

    if ($http_host = 'client-a.v3ex.com') { return 403; } 
    

    抵挡了一下。

    limit_req_zone 跟 limit_conn_zone 都无法使用在 if 里面,对于这种情况应该怎么处理好一点?

    Supplement 1  ·  Nov 11, 2020
    Nginx 装上 geoip2 模块,屏蔽福建省临时解决...
    23 replies    2020-11-12 11:43:03 +08:00
    dzdh
        1
    dzdh  
       Nov 11, 2020
    为啥要区分 zone 不应该是全局针对 ip 限流吗
    dzdh
        2
    dzdh  
       Nov 11, 2020
    而且为啥不上 cdn 哇
    saytesnake
        3
    saytesnake  
    OP
       Nov 11, 2020
    @dzdh 历史问题,这个系统是相对比较古老的,Nginx 也是,因为没经过测试,不知道开了全局限流会导致什么情况。
    lvzhiqiang
        4
    lvzhiqiang  
       Nov 11, 2020
    sysctl -w net.ipv4.tcp_syncookies=1
    2kCS5c0b0ITXE5k2
        5
    2kCS5c0b0ITXE5k2  
       Nov 11, 2020
    黑名单 ip
    lvzhiqiang
        6
    lvzhiqiang  
       Nov 11, 2020
    ddos 只能缓解,不能解决。 还有 如果对方 IP 都是随机变化,基本没辙。(注意: 大公司大体量业务的会有专业的设备做浏览清洗和拦截防护)
    xx6412223
        7
    xx6412223  
       Nov 11, 2020
    试试 Iptables limits Connections by per IP
    lvzhiqiang
        8
    lvzhiqiang  
       Nov 11, 2020
    @lvzhiqiang 针对 syn flood 攻击, 你先抓包看看,属不属于这类型的。
    winzkh
        9
    winzkh  
       Nov 11, 2020   ❤️ 1
    shutdown -h now
    saytesnake
        10
    saytesnake  
    OP
       Nov 11, 2020
    @lvzhiqiang 已经配置了。

    @emeab 目测是僵尸网络,ip 一大堆...好像每次都不同,随机查了十来个,都是福建省的。

    @lvzhiqiang 呃,还真是没办法了看起来。
    GM
        11
    GM  
       Nov 11, 2020
    加一条 A 记录 client-a.xxx.com 127.0.0.1
    有 A 记录的情况下会优先起作用,这样也许会有用。
    privil
        12
    privil  
       Nov 11, 2020
    前面加个 wtf 过滤 高流量 ip
    xieqiqiang00
        13
    xieqiqiang00  
       Nov 11, 2020
    11 楼的方案可以
    但要是我的话,我可能去 cloudflare 注册一下这个网站,然后单独这个子域名指向 cloudflare,然后开页面缓存,这样对方还是能一直 GET 通,就算是 POST 的话,两次过墙也够呛的,而且 cloudflare 本身就有反功能的能力。
    DoctorCat
        14
    DoctorCat  
       Nov 11, 2020
    @xieqiqiang00 cloudflare 最大的问题是国内不友好容易被 gfw 认证。
    RangerWolf
        15
    RangerWolf  
       Nov 11, 2020
    心疼楼主 3 秒钟。。。
    想问下 client-a.v3ex.com 是一个合法用户的域名吗? 你设置 403 之后是不是这个客户就完全歇菜了?
    xuanbg
        16
    xuanbg  
       Nov 11, 2020
    受到攻击不管三七二十一有用没用先报警。
    saytesnake
        17
    saytesnake  
    OP
       Nov 11, 2020
    @xieqiqiang00 实际上是给自己加上墙了的感觉了...
    @DoctorCat 是的。
    @RangerWolf 那个只是举例,实际是正确合法的域名,一级域名是在阿里云上买的,403 之后就是这个客户完全无法使用了,现在临时解决了。
    DoctorCat
        18
    DoctorCat  
       Nov 11, 2020
    @saytesnake 问一个细节,这些攻击 ip 访问到 nginx,都是 200 状态?
    RangerWolf
        19
    RangerWolf  
       Nov 11, 2020
    @saytesnake 我感觉我没表达清楚,让你误解了。。。
    其实我想问的就是,被攻击的域名是真实客户的域名吗?是某个客户的域名还是很多客户的域名?
    另外, 感觉域名后面的这一段有没有权限逻辑校验?

    不好意思问了这么多问题,因为我们也正好要开放一个 SaaS 服务给客户,就怕见光死。。。
    RangerWolf
        20
    RangerWolf  
       Nov 11, 2020
    另外,我们目前隐藏了真实 IP 在类似 AWS LB 后面~ 不知道这个会不会有效?
    不知道你们是直接 IP 暴露出去还是隐藏了真实 IP ?
    IDAEngine
        21
    IDAEngine  
       Nov 11, 2020 via iPhone
    上高防 IP,高防就行,自动流量黑洞
    opengps
        22
    opengps  
       Nov 12, 2020 via Android
    ddos 不是靠主机内部服务去承载,而是用网络层的清洗设备,高防 ip 这种,。
    楼主遇到的不能叫做 ddos,这类可以归类给 cc,但是只有福建省不大正常。
    排查下是不是有人在福建的网络下对你运行了爬虫,做好防御爬虫
    stanchenxxx2015
        23
    stanchenxxx2015  
       Nov 12, 2020
    楼主,高防服务要不要考虑下?扛 DDos/CC 攻击+CDN 。我们这边是大厂的代理,可以给到您满意的价格。感兴趣的话,可以联系我微信:MTczNDYyNjUwNzA=( Base64 )
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5242 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 05:55 · PVG 13:55 · LAX 22:55 · JFK 01:55
    ♥ Do have faith in what you're doing.