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