概述
護網行動中,部分工程為提升安全性,希望限制 IP 存取工程或禁止透過部分高危API存取工程。
本文列舉三種場景下的解決方案。建議優先考慮禁用/限制使用channelAPI,再考慮限制IP存取工程。
方案一:限制任何使用者均無法透過遠端設計(channelAPI)連結工程
方案二:限制黑名單內/白名單外的IP無法透過遠端設計(channelAPI)連結工程
方案三:限制黑名單內/白名單外的IP無法透過任何方式存取工程,包括但不限於:遠端設計連結工程、登入平台查看範本、單點登入查看範本等。
方案一:禁用遠端設計(channelAPI)
場景說明
使用場景 | 操作步驟 |
---|---|
安全係數 | ★★★★☆ |
場景說明 | 直接禁用遠端設計工程 方案生效後,任何使用者均無法透過遠端設計(channelAPI)連結工程,但不影響使用者登入平台查看範本等操作 |
版本限制 | 如需使用本節方案,請確定工程版本滿足:
如不滿足版本要求,請交握帆軟技術支援協助。技術支援聯絡方式:帆軟官方服務渠道使用説明 |
解決方案
1)安裝插件
點選下載「web防火牆」插件,伺服器安裝插件方法參照 伺服器插件管理
產品版本 | JAR包限制 | 下載插件 |
---|---|---|
FineReport11.0 FineBI6.0 FineBI5.1.19及以上版本 | 請確定工程JAR包在 2022-03-10 及以上 | fine-plugin-com.fr.plugin.web.application.firewall.v11-1.2.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 目錄下。
将配置文件 url.properties 上传到工程 /webapps/webroot/WEB-INF/config/security 目录下。
注:对于容器化部署的工程,需要上传配置文件到工程外挂目录/config/security 目录下,可参考:运维平台部署的项目如何上传web防火墙配置文件。
3)生效配置
FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本:配置好檔案後,無需重啟工程。但管理者需要登入數據決策系統,在「管理系統>插件管理」中先禁用插件,再啟動插件,配置方可生效。
FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本:配置完成後,請參考「關閉或重啟FineReport工程」文檔,重啟工程,配置方可生效。
插件生效,關閉遠端設計 channel API,任何使用者均無法遠端設計連結工程。
驗證生效
请使用浏览器访问接口地址,三种接口验证地址分别为(请自行更换为你自己工程的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」,说明配置未生效,请检查操作步骤。
方案二:限制遠端設計(channelAPI)的IP
場景說明
使用場景 | 操作步驟 |
---|---|
安全係數 | ★★★★☆ |
場景說明 | 配置遠端設計白名單。僅白名單中的IP/IP段,支援遠端設計連結工程 白名單外的IP,無法遠端設計(channelAPI)連結工程,但不影響使用者登入平台查看範本等操作 |
版本限制 | 如需使用本節方案,請確定工程版本滿足:
如不滿足版本要求,請交握帆軟技術支援協助。技術支援聯絡方式:帆軟官方服務渠道使用説明 |
配置步驟
不同版本的配置步驟不相同,請根據自身情況選擇。
FR11.0/BI6.0/BI5.1.19+
需透過修改finedb配置庫中fine_conf_entity表欄位的方式進行設定。操作方法請參考:填報修改fine_conf_entity 。
查詢並修改 fine_conf_entity 表中的以下配置項,如不存在以下配置項,新增記錄,輸入參數和相應參數值即可。
修改成功後,參考「關閉或重啟FineReport工程」文檔,重啟工程。重啟成功後,白名單外的IP無法透過遠端設計(channelAPI)連結工程。
參數名 | 參數作用 | 建議參數值 |
---|---|---|
RemoteConnectionConfig.enableWhitelistVerify | 作用:針對 channel API反序列化漏洞對遠端設計可能的影響,可透過配置限制存取 IP 來防止惡意輸入行為 true:對遠端設計連結API進行 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-
支援透過代理伺服器或防火牆,限制channelAPI的存取,限制後只允許受信任的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包在 2022-05-10 及以上 | fine-plugin-com.fr.plugin.web.application.firewall.v11-1.2.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 目錄下。
說明 | |
---|---|
配置說明 | 支援配置白名單和黑名單,使用~代表黑名單
支援 IP 和 IP 段,包括以下多種寫法:
|
攔截邏輯 |
|
3)生效配置
FineReport11.0/FineBI6.0/FineBI5.1.19及以上版本:配置好檔案後,無需重啟工程。但管理者需要登入數據決策系統,在「管理系統>插件管理」中先禁用插件,再啟動插件,配置方可生效。
FineReport10.0/FineBI5.1.18.x系列/FineBI5.1.17及以下版本:配置完成後,請參考「關閉或重啟FineReport工程」文檔,重啟工程,配置方可生效。
驗證生效
使用禁止放行的 IP 的裝置存取工程,提示「存取xxx的請求遭到拒絕,您未獲授權,無法查看此網頁」。如下圖所示:
注:若成功存取了工程,說明配置未生效,請檢查操作步驟。