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

1 leaflxh 2024-01-01 16:56:54 +08:00 交给更上层的防火墙 比如 iptables -I INPUT -p tcp -s x.x.x.x --dport=443 -j DROP |
2 balabalaguguji OP @leaflxh #1 多谢回复,发现 IP 特别多,有办法自动封锁 IP 吗? |
3 google2020 2024-01-01 17:06:19 +08:00 一秒不到 30 个,不多。只是你拒绝方式有问题,403 的话还会响应,也就会占用带宽。你改成 444 就好,这个是 nginx 断开连接的状态码。 |
4 balabalaguguji OP @google2020 #2 多谢,由 deny all 改为了 return 444 |
5 traffic 2024-01-01 17:18:21 +08:00 fail2ban 自动使用防火墙封锁,可以读 nginx 日志 |
6 balabalaguguji OP @traffic #5 感谢,我研究下。不知道是谁那么无聊,天天攻击我 |
7 lavvrence 2024-01-01 17:35:18 +08:00 立刻换 IP ,然后套 CDN ,服务器在国外就无脑 Cloudflare 套五秒盾。 |
8 balabalaguguji OP @jaylee4869 #7 很神奇的是,我换了 IP 攻击还是一直没断过,感觉就没换过一样 |
9 onice 2024-01-01 17:47:47 +08:00 |
10 flyqie 2024-01-01 17:53:26 +08:00 via Android 你这种情况可以直接交给 waf ,不用在业务服务器上配。 |
11 yumusb 2024-01-01 17:54:10 +08:00 不愿意透漏姓名的 y 文档 运维 你好。 |
12 dufldylan1 2024-01-01 18:23:46 +08:00 @balabalaguguji fail2ban 自己写个规则被,不会就问 gpt 。记得把 ban-action 改为 drop |
13 strp 2024-01-01 18:29:53 +08:00 套 CDN 上 WAF 设置 Rate limit 就可以了,你甚至可以自定义 Response Code 和 Response Body 让对方懵圈。 |
14 balabalaguguji OP |
15 Jat001 2024-01-01 19:44:28 +08:00 via iPhone dns 直接解析到源站 ip 了? |
16 laminux29 2024-01-01 20:08:07 +08:00 报网监 X 来论坛问 √ 国内网络早就实名制了,你不去报案,今天攻击你的人没被惩罚,明天他们还会继续攻击你,毕竟现在攻击成本很低,防御成本很高。 |
17 balabalaguguji OP @laminux29 #16 好吧,我还不知道有这个选项可以。 |
18 crazyweeds 2024-01-02 08:36:56 +08:00 不是我放风凉话,这种频度的,自己写一个都能防住。如果能改源码,那么直接加一个类似拦截器的操作。如果不行,那么自己写一个 tail 读取 nginx 日志,然后对 ip 进行时间窗口计数,超过频度,可以直接执行 shell 。但是得提前备份 iptables|firewalld 配置,避免后续记录太多。 | /tr>
19 balabalaguguji OP @crazyweeds #18 接受批评,这方面确实没经验,跟你们学习,多谢指教 |
20 jason56 2024-01-02 09:47:46 +08:00 iptables + ipset -A INPUT -m set --match-set denyIp src -j DROP 代码中加入攻击特征提取,把提取到的 IP 加入 denyIp 列表中。 |
21 balabalaguguji OP @jason56 #20 好的,多谢,学习了 |
22 8355 2024-01-02 15:47:19 +08:00 qps 不到 20 ,什么配置会这么大影响嘛 |
23 OleJienNor 2024-01-02 17:52:23 +08:00 既然用的是 nginx,可以在 github 上找找针对这类攻击的 nginx waf 模块,有针对 cc 攻击的拦截,传统一点的方式就是 ipset+iptables+crontab ,自己写规则了。当然,如果是重要业务,还是建议购买安全服务,各种防护能开的就开一下。如果是自己建站一直被攻击,那就是有 D 狗在故意攻击,为了推销自己的 DDOS 防护服务,随时会跑路的那种 |
24 cnleon 2024-01-02 18:36:34 +08:00 交给云的安全组啊,为啥要自己来呢. 或者直接报警来处理。攻击的东西永远是越前面挡住是最好的,而不是漏到最后来处理。 |
25 balabalaguguji OP @8355 #22 这是基本结束时的日志了,前期有 30G 流量峰值的情况 |
26 balabalaguguji OP @OleJienNor #23 多谢指点 |
27 balabalaguguji OP @cnleon #24 报警这种小事情应该没人理。云安全组也是手动加 IP ,而且有 100 个限制,云防火墙就很贵很贵。 |
28 shapper 2024-01-02 22:25:51 +08:00 Fail2Ban 触发封停几天 |
29 8355 2024-01-03 10:11:48 +08:00 @balabalaguguji #25 原来我们用的找不到了。 nginx 的 lua 脚本,读写 redis 自动根据规则封禁 ip https://gist.github.com/chrisboulton/6043871 |
30 balabalaguguji OP @8355 #29 很棒,感谢 |