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

这种攻击如何防御?

  •  
  •   balabalaguguji · 337 天前 · 7434 次点击
    这是一个创建于 337 天前的主题,其中的信息可能已经有所发展或是发生改变。

    老是被人攻击,如下图,都是用的几个固定 IP 疯狂访问同个地址,我已经 nginx deny 这个访问地址了,但是量太多了,影响到正常服务,请问各位大佬有什么办法呢?

    第 1 条附言  ·  337 天前
    有个奇怪点的是,腾讯云已经把我公网 IP 屏蔽了(因为前面的一次攻击),这次还没解封流量怎么可以进到我服务器的?不会是腾讯云内部的机器攻击我吧,通过内网 IP ?

    这个人追着我攻击了 4 ,5 天了,也不知道是哪个这么无聊呀
    30 条回复    2024-01-03 19:13:52 +08:00
    leaflxh
        1
    leaflxh  
       337 天前
    交给更上层的防火墙
    比如
    iptables -I INPUT -p tcp -s x.x.x.x --dport=443 -j DROP
    balabalaguguji
        2
    balabalaguguji  
    OP
       337 天前
    @leaflxh #1 多谢回复,发现 IP 特别多,有办法自动封锁 IP 吗?
    google2020
        3
    google2020  
       337 天前
    一秒不到 30 个,不多。只是你拒绝方式有问题,403 的话还会响应,也就会占用带宽。你改成 444 就好,这个是 nginx 断开连接的状态码。
    balabalaguguji
        4
    balabalaguguji  
    OP
       337 天前
    @google2020 #2 多谢,由 deny all 改为了 return 444
    traffic
        5
    traffic  
       337 天前
    fail2ban 自动使用防火墙封锁,可以读 nginx 日志
    balabalaguguji
        6
    balabalaguguji  
    OP
       337 天前
    @traffic #5 感谢,我研究下。不知道是谁那么无聊,天天攻击我
    jaylee4869
        7
    jaylee4869  
       337 天前
    立刻换 IP ,然后套 CDN ,服务器在国外就无脑 Cloudflare 套五秒盾。
    balabalaguguji
        8
    balabalaguguji  
    OP
       337 天前
    @jaylee4869 #7 很神奇的是,我换了 IP 攻击还是一直没断过,感觉就没换过一样
    onice
        9
    onice  
       337 天前
    这种攻击叫 CC 攻击,上 waf 就行了。

    https://www.safedog.cn/website_safedog.html
    flyqie
        10
    flyqie  
       337 天前 via Android
    你这种情况可以直接交给 waf ,不用在业务服务器上配。
    yumusb
        11
    yumusb  
       337 天前
    不愿意透漏姓名的 y 文档 运维 你好。
    dufldylan1
        12
    dufldylan1  
       337 天前
    @balabalaguguji fail2ban 自己写个规则被,不会就问 gpt 。记得把 ban-action 改为 drop
    strp
        13
    strp  
       337 天前
    套 CDN 上 WAF 设置 Rate limit 就可以了,你甚至可以自定义 Response Code 和 Response Body 让对方懵圈。
    balabalaguguji
        14
    balabalaguguji  
    OP
       337 天前
    @onice
    @flyqie
    @dufldylan1
    @strp

    多谢各位指导,学习学习
    Jat001
        15
    Jat001  
       337 天前 via iPhone
    dns 直接解析到源站 ip 了?
    laminux29
        16
    laminux29  
       337 天前
    报网监 X
    来论坛问 √

    国内网络早就实名制了,你不去报案,今天攻击你的人没被惩罚,明天他们还会继续攻击你,毕竟现在攻击成本很低,防御成本很高。
    balabalaguguji
        17
    balabalaguguji  
    OP
       336 天前
    @laminux29 #16 好吧,我还不知道有这个选项可以。
    crazyweeds
        18
    crazyweeds  
       336 天前   ❤️ 1
    不是我放风凉话,这种频度的,自己写一个都能防住。如果能改源码,那么直接加一个类似拦截器的操作。如果不行,那么自己写一个 tail 读取 nginx 日志,然后对 ip 进行时间窗口计数,超过频度,可以直接执行 shell 。但是得提前备份 iptables|firewalld 配置,避免后续记录太多。
    balabalaguguji
        19
    balabalaguguji  
    OP
       336 天前
    @crazyweeds #18 接受批评,这方面确实没经验,跟你们学习,多谢指教
    jason56
        20
    jason56  
       336 天前
    iptables + ipset
    -A INPUT -m set --match-set denyIp src -j DROP
    代码中加入攻击特征提取,把提取到的 IP 加入 denyIp 列表中。
    balabalaguguji
        21
    balabalaguguji  
    OP
       336 天前
    @jason56 #20 好的,多谢,学习了
    8355
        22
    8355  
       336 天前
    qps 不到 20 ,什么配置会这么大影响嘛
    OleJienNor
        23
    OleJienNor  
       336 天前
    既然用的是 nginx,可以在 github 上找找针对这类攻击的 nginx waf 模块,有针对 cc 攻击的拦截,传统一点的方式就是 ipset+iptables+crontab ,自己写规则了。当然,如果是重要业务,还是建议购买安全服务,各种防护能开的就开一下。如果是自己建站一直被攻击,那就是有 D 狗在故意攻击,为了推销自己的 DDOS 防护服务,随时会跑路的那种
    cnleon
        24
    cnleon  
       336 天前
    交给云的安全组啊,为啥要自己来呢. 或者直接报警来处理。攻击的东西永远是越前面挡住是最好的,而不是漏到最后来处理。
    balabalaguguji
        25
    balabalaguguji  
    OP
       336 天前
    @8355 #22 这是基本结束时的日志了,前期有 30G 流量峰值的情况
    balabalaguguji
        26
    balabalaguguji  
    OP
       336 天前
    @OleJienNor #23 多谢指点
    balabalaguguji
        27
    balabalaguguji  
    OP
       336 天前
    @cnleon #24 报警这种小事情应该没人理。云安全组也是手动加 IP ,而且有 100 个限制,云防火墙就很贵很贵。
    shapper
        28
    shapper  
       336 天前
    Fail2Ban 触发封停几天
    8355
        29
    8355  
       335 天前
    @balabalaguguji #25 原来我们用的找不到了。
    nginx 的 lua 脚本,读写 redis 自动根据规则封禁 ip
    https://gist.github.com/chrisboulton/6043871
    balabalaguguji
        30
    balabalaguguji  
    OP
       335 天前
    @8355 #29 很棒,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1081 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:35 · PVG 06:35 · LAX 14:35 · JFK 17:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.