1.需求背景
随着安全问题越来越重视与关注,对于客户环境需要提供外网环境给用户使用的场景,出于安全考虑,本着“最小够用原则”,产品需要只开放暴露给移动端外网访问相关的URL请求,没有开放外网给移动端访问的URL请求要一律拦截。
2.功能说明
该扩展包通过自定义请求头或外网访问IP区分内外网,通过配置其中的规则拦截用户想对外开放的相应功能或API。
3.使用说明
3.1. 扩展包部署
部署 ,详细说明请参考Wiki链接:扩展包部署
注意:
该扩展包支持V8-V11,jdk 要1.8及以上,所有发包版本的war包需要在2023年9月22号以后的才生效、V87在2023年11月9号以后
其中2023年9月27号之后的 V11版本以及内置了相关功能,不需要再重新添加。
3.2. 访问配置文件地址
(1)访问配置界面
访问 【协议://IP:PORT/smartbi/vision/defender.jsp】,如示例:http://10.10.11.254:18010/smartbi/vision/defender.jsp ,导入模板defenderConfig.json(假如已有配置,建议先导出备份)
注意:相关配置信息的说明,可以查看功能下方的帮助。
(2)标识外网
标识外网的方式有两种:【按请求头名称标识外网】或【按请求端IP标识外网】
按请求头名称标识外网,前置代理机需要自定义一个请求头,key建议全英文,大小写不敏感,如示例:nginx设置了自定义请求头【customizeName】,值同样建议全英文。
(3)选中defender.jsp的【按请求头名称标识外网】,并且填上你的自定义名称,如示例【customizeName】
验证:怎么验证你的自定义请求头是否生效呢?
(3-1)、勾选【启动跟踪日志】的【是】并【保存】(非排查问题或验证外,不建议开启,会影响性能),然后进入smartbi->系统监控->日志→开始监控日志
访问代理地址,如以上nginx配置示例: http://10.10.11.254:8642/smartbi/vision/index.jsp ,此时日志里面搜素示例配置的自定义请求头【customizeName】的值【test】,若能读出来,说明配置没问题。
【按请求端IP标识外网】,该场景适合smartbi服务器及前置代理机不在同一台机器也就是不同的IP地址,这里填入外网访问的代理IP。
(4)验证配置是否生效
用代理地址访问【系统监控】、【用户日志】、【计划任务】等相关功能,假如返回403,则配置正常,按场景需要进行配置。
(5)支持按照功能分类和安全风险等级进行配置
注意:此项功能仅在2025年1月7号之后的V11及以上版本开放。
支持按 功能分类 和 安全风险等级 配置接口白名单和黑名单,直接勾选,自动关联相关接口,减少配置步骤,降低使用门槛。
- 功能分类说明:
功能分类 | 说明 |
管理类别 | 主要指后台管理、系统管理类的接口,如系统监控、系统运维等接口。 |
编辑类别 | 主要指新建/编辑系统各种资源,如数据模型、ETL 资源、报表等的接口,或者说非系统管理类功能的编辑接口。 |
浏览类别 | 主要指报表浏览相关接口。 |
无 | 全部接口都不放行,拦截所有接口。 |
- 安全风险等级说明:
产品中提供代码编写和修改业务数据功能的高级模块,如定制任务、ETL 中的python节点、javascript查询等,由于操作灵活性较高,其相关接口均被归类为 高危类别。
具体使用说明如下:
(5-1)不受限制的 IP
允许配置受信任的 IP 地址范围,来自这些地址的请求将跳过安全卫士的检查,直接放行。多个 IP 地址使用英文逗号分隔。
(5-2)白名单配置,可以按 功能分类 批量勾选接口,根据实际使用场景实现一键配置。例如,限制外网只能做浏览报表操作,只需勾选【浏览类别】即可,编辑和管理类的接口都会被拦截。
设置效果:
各类别属于包含关系,如下图所示。例如勾选了编辑类别,代表编辑类别和浏览类别的接口都在白名单内。
(5-3)黑名单配置,提供 高危类别 复选框,勾选后将自动拦截高风险接口
(6)其他功能说明:如defender.jsp 下的【帮助】
注意事项:
1.为提高安全性,请配置限制访问defender页面的IP地址,配置步骤参考此文档:https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=111885305
2.安全卫士配置也属于高危类别功能,如果【请求拦截类型】配置的是“所有网络请求”的话,则无法访问defender.jsp页面了。如果需要访问,只能通过服务器本地访问,或者在【不受限制的 IP】中配置信任的 IP。
3.配置 IP 防伪造。配置步骤参考此文档:常见安全问题加固方案汇总