V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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 · 2020-11-11 16:51:24 +08:00 · 3175 次点击
    这是一个创建于 1506 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有约百来个用户的 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 里面,对于这种情况应该怎么处理好一点?

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

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

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

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