概述
部分工程为提升安全性,希望限制 IP 访问工程或禁止通过部分高危接口访问工程。
本文列举三种场景下的解决方案。建议优先考虑禁用/限制使用channel接口,再考虑限制IP访问工程。
方案一:限制任何用户均无法通过相关接口连接工程(支持禁用远程设计channel接口、单点登录/login/cross/domain接口、老引擎/view/ReportServer接口)
方案二:限制黑名单内/白名单外的IP无法通过远程设计(channel接口)连接工程
方案三:限制黑名单内/白名单外的IP无法通过任何方式访问工程,包括但不限于:远程设计连接工程、登录平台查看模板、单点登录查看模板等。
方案一:禁用接口(远程设计接口、单点登录接口、老引擎接口)
场景说明
使用场景 | 操作步骤 |
---|---|
安全系数 | ★★★★☆ |
场景说明 | 直接禁用远程设计channel接口、单点登录/login/cross/domain接口、老引擎/view/ReportServer接口 方案生效后,任何用户均无法通过远程设计/单点登录/老引擎连接工程,但不影响用户登录平台查看模板等操作 支持自定义选择需要禁用的接口(不一定要全部禁用) |
版本限制 | 如需使用本节方案,请确保工程版本满足:
如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持 |
解决方案
1)安装插件
点击下载「web防火墙」插件,服务器安装插件方法参照 服务器插件管理
产品版本 | JAR包限制 | 下载插件 |
---|---|---|
FineReport11.0 FineBI6.0 FineBI5.1.19及以上版本 | 请确保工程JAR包在 2023-02-21 及以上 | fine-plugin-com.fr.plugin.web.application.firewall.v11-1.2.1.zip |
FineReport10.0 FineBI5.1.18.x系列 FineBI5.1.17及以下版本 | 请确保工程JAR包在 2021-04-11 及以上 |
2)安装配置文件
点击下载并解压,获取配置文件 url.properties:url.zip
文件中包含三种接口,如只需禁用部分接口,可删除其他规则(建议全部禁用)
将配置文件 url.properties 上传到工程 /webapps/webroot/WEB-INF/config/security 目录下。
注:对于容器化部署的工程,需要上传配置文件到工程外挂目录/config/security 目录下,可参考:运维平台部署的项目如何上传web防火墙配置文件。
3)生效配置
FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本:配置好文件后,无需重启工程。但管理员需要登录数据决策系统,在「管理系统>插件管理」中先禁用「web防火墙」插件,再启用插件,配置方可生效。
FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本:配置完成后,请参考「关闭或重启FineReport工程」文档,重启工程,配置方可生效。
插件生效,关闭远程设计channel接口、单点登录/login/cross/domain接口、老引擎/view/ReportServer接口
方案生效后,任何用户均无法通过远程设计/单点登录/老引擎连接工程,但不影响用户登录平台查看模板等操作。
验证生效
请使用浏览器访问接口地址,三种接口验证地址分别为(请自行更换为你自己工程的ip和端口号):
http://ip:ports/webroot/decision/remote/design/channel
http://ip:ports/webroot/decision/login/cross/domain
http://ip:ports/webroot/decision/view/ReportServer
如报错403,提示「访问xxx的请求遭到拒绝,您未获授权,无法查看此网页」(如下图),说明配置生效。
如提示「非常抱歉,您无法查看该页面,Request method GET' not supported」,说明配置未生效,请检查操作步骤。
方案二:限制远程设计(channel接口)的IP
场景说明
使用场景 | 操作步骤 |
---|---|
安全系数 | ★★★★☆ |
场景说明 | 配置远程设计白名单。仅白名单中的IP/IP段,支持远程设计连接工程 白名单外的IP,无法远程设计(channel接口)连接工程,但不影响用户登录平台查看模板等操作 |
版本限制 | 如需使用本节方案,请确保工程版本满足:
如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持 |
配置步骤
不同版本的配置步骤不相同,请根据自身情况选择。
FR11.0/BI6.0/BI5.1.19+
需通过修改finedb配置库中fine_conf_entity表字段的方式进行设置。操作方法请参考:填报修改fine_conf_entity 。
查询并修改 fine_conf_entity 表中的以下配置项,如不存在以下配置项,新增记录,输入参数和相应参数值即可。
修改成功后,参考「关闭或重启FineReport工程」文档,重启工程。重启成功后,白名单外的IP无法通过远程设计(channel接口)连接工程。
参数名 | 参数作用 | 建议参数值 |
---|---|---|
RemoteConnectionConfig.enableWhitelistVerify | 作用:针对 channel 接口反序列化漏洞对远程设计可能的影响,可通过配置限制访问 IP 来防止恶意输入行为 true:对远程设计连接接口进行 IP 白名单校验。 注意:开启后,白名单以外的 IP 无法进行远程设计连接。 | true |
RemoteConnectionConfig.ipWhiteList | 前提:开启上一个白名单校验。 作用:用于配置白名单内容,白名单内的 IP 和 IP 段连接成功,相应功能不受影响。 | 值为 IP 段,且为数组形式 格式: ["item1","item2"] 示例: ["119.0.0.1", "192.168.1.1-192.168.1.255", "119.0.0.1/16"] |
FR10.0/BI5.1.18.x/BI5.1.17-
支持通过代理服务器或防火墙,限制channel接口的访问,限制后只允许受信任的IP进行报表远程设计,查看不受影响。
例如 nginx 设置参考如下,其中 allow 填写允许进行访问的 IP 或 IP段:
server {
listen 443;
server_name your_domain; #IP或者域名
location ~ .*\/channel {
allow XX.XX.XX.XX;
deny all;
}
}
验证生效
使用白名单以外的IP地址的设备打开设计器,远程设计连接该工程。弹窗提示「远程设计连接发生未知错误」,堆栈显示「com.fr.workspace.engine.exception.RemoteDesigenUnknownException:java.lang.reflect.UndeclaredThrowableException」,即代表配置成功。
注:若成功访问了工程,说明配置未生效,请检查操作步骤。
方案三:限制访问帆软系统的IP/IP段
场景说明
使用场景 | 操作步骤 |
---|---|
安全系数 | ★★★★★ |
场景说明 | 支持设置访问工程的IP白名单和黑名单 不被放行的IP,无法通过任何方式访问工程,包括但不限于:远程设计连接工程、登录平台查看模板、单点登录查看模板等
|
版本限制 | 如需使用本节方案,请确保工程版本满足:
如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持 |
配置步骤
1)安装插件
点击下载「web防火墙」插件,服务器安装插件方法参照 服务器插件管理
产品版本 | JAR包限制 | 下载插件 |
---|---|---|
FineReport11.0 FineBI6.0 FineBI5.1.19及以上版本 | 请确保工程JAR包在 2023-02-21 及以上 | fine-plugin-com.fr.plugin.web.application.firewall.v11-1.2.1.zip |
FineReport10.0 FineBI5.1.18.x系列 FineBI5.1.17及以下版本 | 请确保工程JAR包在 2021-04-11 及以上 |
2)上传配置文件
点击下载并解压,获取配置文件 ip.properties :ip.zip 。使用文本编辑器打开文件,设置 IP 白名单和黑名单。
将修改后的配置文件 ip.properties 上传到工程 /webapps/webroot/WEB-INF/config/security 目录下。
注:对于容器化部署的工程,需要上传配置文件到工程外挂目录/config/security 目录下,可参考:运维平台部署的项目如何上传web防火墙配置文件。
说明 | |
---|---|
配置说明 | 支持配置白名单和黑名单,使用~代表黑名单
支持 IP 和 IP 段,包括以下多种写法:
|
拦截逻辑 |
|
3)生效配置
FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本:配置好文件后,无需重启工程。但管理员需要登录数据决策系统,在「管理系统>插件管理」中先禁用「web防火墙」插件,再启用插件,配置方可生效。
FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本:配置完成后,请参考「关闭或重启FineReport工程」文档,重启工程,配置方可生效。
验证生效
使用禁止放行的 IP 的设备访问工程,提示「访问xxx的请求遭到拒绝,您未获授权,无法查看此网页」。如下图所示:
注:若成功访问了工程,说明配置未生效,请检查操作步骤。