最新历史版本 :限制IP访问工程 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

概述编辑

部分工程为提升安全性,希望限制 IP 访问工程或禁止通过部分高危接口访问工程。

本文列举三种场景下的解决方案。建议优先考虑禁用/限制使用channel接口,再考虑限制IP访问工程。

  • 方案一:限制任何用户均无法通过相关接口连接工程(支持禁用远程设计channel接口、单点登录/login/cross/domain接口、老引擎/view/ReportServer接口

  • 方案二:限制黑名单内/名单外的IP无法通过远程设计(channel接口)连接工程

  • 方案三:限制黑名单内/名单外的IP无法通过任何方式访问工程,包括但不限于:远程设计连接工程、登录平台查看模板、单点登录查看模板等。

方案一:禁用接口(远程设计接口、单点登录接口、老引擎接口)编辑

场景说明

使用场景
操作步骤
安全系数★★★★☆
场景说明

直接禁用远程设计channel接口、单点登录/login/cross/domain接口、老引擎/view/ReportServer接口

方案生效后,任何用户均无法通过远程设计/单点登录/老引擎连接工程,但不影响用户登录平台查看模板等操作

支持自定义选择需要禁用的接口(不一定要全部禁用)

版本限制

如需使用本节方案,请确保工程版本满足:

  • FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本,请确保工程 JAR 包在 2022-05-10 及以上

  • FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本,请确保工程 JAR 包在 2021-04-11 及以上

如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持

解决方案

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 及以上

fr-plugin-web-application-firewall-1.2.1.zip

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接口)连接工程,但不影响用户登录平台查看模板等操作

版本限制

如需使用本节方案,请确保工程版本满足:

  • FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本,请确保工程 JAR 包在 2022-05-10 及以上

  • FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本,请确保工程 JAR 包在 2021-04-11 及以上

如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持

配置步骤

不同版本的配置步骤不相同,请根据自身情况选择。

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,无法通过任何方式访问工程,包括但不限于:远程设计连接工程、登录平台查看模板、单点登录查看模板等

  • 只有黑名单时,拦截黑名单上的IP,放行其他IP

  • 只有白名单时,放行白名单上的IP,拦截其他IP

  • 黑白名单同时存在时,放行在白名单且不在黑名单上的IP,拦截其他所有IP

  • 无配置放行所有IP

版本限制

如需使用本节方案,请确保工程版本满足:

  • FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本,请确保工程 JAR 包在 2022-05-10 及以上

  • FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本,请确保工程 JAR 包在 2021-04-11 及以上

如不满足版本要求,请联系帆软技术支持协助。技术支持联系方式:服务平台>在线支持

配置步骤

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 及以上

fr-plugin-web-application-firewall-1.2.1.zip

2)上传配置文件

  • 点击下载并解压,获取配置文件 ip.properties :ip.zip 。使用文本编辑器打开文件,设置 IP 白名单和黑名单。

  • 将修改后的配置文件 ip.properties 上传到工程 /webapps/webroot/WEB-INF/config/security 目录下。

注:对于容器化部署的工程,需要上传配置文件到工程外挂目录/config/security 目录下,可参考:运维平台部署的项目如何上传web防火墙配置文件

说明

配置说明

支持配置白名单和黑名单,使用~代表黑名单

  • 白名单规则:rulex=允许放行的IP/IP段

  • 黑名单规则:rulex=~禁止放行的IP/IP段

支持 IP 和 IP 段,包括以下多种写法:

  • -号代表范围,例如:111.1.1.1-111.1.1.120

  • /号代表子网掩码位数,例如:111.1.1.1/16(代表 111.1.0.0 到 111.1.255.255 )

拦截逻辑
  • 只有黑名单时,拦截黑名单上的IP,放行其他IP

  • 只有白名单时,放行白名单上的IP,拦截其他IP

  • 黑白名单同时存在时,放行在白名单且不在黑名单上的IP,拦截其他所有IP

  • 无配置放行所有IP

3)生效配置

  • FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本:配置好文件后,无需重启工程。但管理员需要登录数据决策系统,在「管理系统>插件管理」中先禁用「web防火墙」插件,再启用插件,配置方可生效。

  • FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本:配置完成后,请参考「关闭或重启FineReport工程」文档,重启工程,配置方可生效。

验证生效

使用禁止放行的 IP 的设备访问工程,提示「访问xxx的请求遭到拒绝,您未获授权,无法查看此网页」。如下图所示:

注:若成功访问了工程,说明配置未生效,请检查操作步骤。