-
Notifications
You must be signed in to change notification settings - Fork 618
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
希望能增加屏蔽国外IP访问功能 / 根据地理位置拦截或人机验证 #88
Comments
这个功能,可以给nginx增加 geoip 的模块实现,看产品会不会给添加了 |
还是倾向于在检测引擎实现,转发侧只负责转发就好了,这样解耦一些。当然也有一些统计和服务降级机制相关的考虑。如果是基于 nginx 就可以实现的话,师傅甚至可以尝试自己 DIY 一个 nginx,https://zhuanlan.zhihu.com/p/641116243 ,在 nginx 继承 geoip + lua-t1k,自己搞定转发引擎的部分。美滋滋 |
很多国内站点根本不需要国外访问,我希望能够在黑名单添加中源IP组可以选择:国外IP组,禁止访问。这个组可以自动调取咱内置的IP库国外ip段。。 这样可以有效避免国外ip的攻击,毕竟站点不需要国外访问的应用较多,如有国内特定地区允许访问的,可以自己自定义添加ip组即可。 希望先把这个单独禁止国外ip段的功能先上上,感谢。。 |
希望先把这个单独禁止国外ip段的功能先上上,感谢。。 |
自己 DIY 一个 nginx 不利于升级吧,如果 nginx 支持 geoip 模块,我们直接在 custom_params 做处理就可以了。 |
支持 |
这边找到一个国家/地区IP段的数据库,仅供参考:https://www.ipdeny.com/ipblocks/ ,希望对大家或者开发者有所帮助。 |
这边找到一个国家/地区IP段的数据库,仅供参考: |
可以参考 : |
请问目前有师傅 实现国外IP触发人机验证吗? |
希望粒度能精确到省份,有些业务真不需要外省访问 |
雷池社区版计划在即将推出的专业版(预计 4.4)上支持 ”根据地理位置库进行拦截“。主要原因是目前的地理位置库是商业化的,不容易直接下放到社区版。 社区版的师傅有需要的话,可以通过 黑白名单 -> 添加黑名单 -> 匹配条件选 “源 IP”“不属于 IP 组” 来实现(IP 组内填中国大陆的 IP 段,上面师傅们分享的列表都可以尝试)。因为中国大陆的 IP 段变化小,所以这个方法的准确性还不错,未来我们也会继续探索能否优化社区版上的相关能力。 |
4.4.0 版本已支持,考虑到雷池采购外部 IP 库有成本,目前该功能仅对专业版用户开放 |
可以尝试用脚本+定时任务来实现, 这里为了方便,我封装了一个雷池的Python API: python-safeline (有兴趣的同学可以一块完善一下), 可以参考如下代码: from safeline import SafeLine
import requests
def get_ips() -> list:
response = requests.get('https://ispip.clang.cn/all_cn_cidr.txt')
return response.text.split('\n')
def get_ipv6_ips() -> list:
response = requests.get('https://ispip.clang.cn/all_cn_ipv6.txt')
return response.text.split('\n')
def get_ustc_deny_ips() -> list:
response = requests.get('https://blackip.ustc.edu.cn/list.php?txt')
return response.text.split('\n')
if __name__ == '__main__':
BASE_URL = "https://waf.xxx.com"
USERNAME = "admin"
PASSWORD = "xxxx"
OTP_SECRET = "IXXXXXX4C"
waf = SafeLine(BASE_URL,
USERNAME,
PASSWORD,
OTP_SECRET
)
waf.ip_group.update(3, "ustc恶意IP列表", ips_list=get_ustc_deny_ips())
waf.ip_group.update(4, "国内IP列表", ips_list=get_ips() + get_ipv6_ips()) 需要注意的是,当前社区版本5.2.0雷池的ip组的接口没有做分页,有一定的性能问题。 IP组规则尽量不要太多。 |
目前来看,中国区的IP组数量大约是5k多点,请问能不能放行IP组订阅手动更新记录为5000条呢? |
虽然现在也可以切分5个IP组 来作为黑名单来使用,但是就不太好使用订阅更新的功能了。 |
使用接口是可以突破这个限制的。 参照:#88 (comment) |
嗯 多谢老哥提醒 我去搭配1panel来调试下这个python脚本试试 |
最近的进度再来更新下: 目前手动复制这8k多个IP粘贴到输入框即可!!! |
https://mailfud.org/geoip-legacy/ 这边可以下载免费的geo库,如果tengine支持加载这个库的话可以让社区用户自己上传也可以 |
希望能增加屏蔽国外IP访问功能
点个赞,给师傅看看呼声会有多大。
The text was updated successfully, but these errors were encountered: