短信接口被攻击,怎么禁掉境外 ip 访问

2024-07-30 15:25:53 +08:00
 nai1si

请问怎么禁掉境外 ip 访问,阿里云的服务器。已做频率限制,增加图形验证码。又怕图形验证码被识别,现在都不敢往里充值了。

3333 次点击
所在节点    程序员
29 条回复
cJ8SxGOWRH0LSelC
2024-07-30 15:30:09 +08:00
限制频率, 增加验证码, 已经够了, 再增加限制就太影响用户体验了, 如果这样还承受不了, 换其他方式吧。
llcxx
2024-07-30 15:33:12 +08:00
判断 IP 是否中国 IP 段,不是就默认不发短信就好
nai1si
2024-07-30 15:36:25 +08:00
怎么判断 ip 是不是境内 ip
toneewang
2024-07-30 15:37:17 +08:00
@nai1si 根据 ip 库,能大部分匹配,不能最准确
nai1si
2024-07-30 15:38:53 +08:00
@toneewang ip 库在哪里?
37Y37
2024-07-30 15:41:44 +08:00
通过 DNS 解析,境外的不解析或者解析个错误的地址,很多 DNS 都提供这功能,例如阿里云
julyclyde
2024-07-30 15:43:12 +08:00
@nai1si geoip
nginx 可以直接支持
fredcc
2024-07-30 15:43:45 +08:00
云防火墙-防护配置-访问控制-互联网边界-入向策略

waf 也有类似设置
gaobh
2024-07-30 15:45:21 +08:00
dns 侧,线路选境外,解析到 127.0.0.1 即可
zjsxwc
2024-07-30 15:49:11 +08:00
https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt
写个 bash 脚本让 iptables 只允许上面的中国 ip 访问就行

#!/bin/bash

# 清空所有规则
iptables -F

# 允许本地回环接口的通信
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接和相关连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 获取中国的 IP 段列表(这需要您事先准备好)
CHINA_IP_RANGES=(
"1.0.1.0/24"
"2.0.0.0/16"
# ..... 添加更多的中国 IP 段
)

# 对于每个中国的 IP 段,添加允许规则
for ip_range in "${CHINA_IP_RANGES[@]}"
do
iptables -A INPUT -s $ip_range -j ACCEPT
done

# 拒绝其他所有的输入连接
iptables -A INPUT -j DROP
nai1si
2024-07-30 15:51:11 +08:00
@gaobh 攻击方本地可以改 hosts 文件
EdisonEdz
2024-07-30 16:10:09 +08:00
geoip ,加个实现包判断下 ip 就好了
nai1si
2024-07-30 16:18:29 +08:00
@EdisonEdz 目前你公司也在用吗? 效果好不好
SilenceLL
2024-07-30 16:26:31 +08:00
用 nginx + geoip 封掉就可以,你可以看下 nginx access 日志,里面的 country 字段是否跟你的预期一致。
nai1si
2024-07-30 16:29:50 +08:00
研究研究
abccccabc
2024-07-30 17:07:22 +08:00
你的验证码换成汉字,目前能识别汉字图形的系统不多吧?
flytsuki
2024-07-30 17:12:36 +08:00
让运费在防火墙拦截,只开放中国的 ip 段
VagrantZ
2024-07-30 17:33:09 +08:00
eluotao
2024-07-30 18:21:21 +08:00
直接非注册用户不发验证码。
feiyan35488
2024-07-30 19:31:21 +08:00
@nai1si 有免费的 ip 库,如 ipip
加上验证码,尽量用滑动或智能验证码,提升用户体验

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1061210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX