保護 Solr
包括管理 UI 在內的任何 Solr API,都不適合暴露給不受信任的對象。請調整您的防火牆,只允許受信任的電腦和人員存取。因此,專案不會將例如管理 UI XSS 問題視為安全性漏洞。不過,我們仍然請您在 JIRA 中回報這類問題。 |
在規劃如何保護 Solr 時,您應該考慮哪些可用的功能或方法適合您
使用 TLS (SSL) 憑證加密
加密往返 Solr 以及 Solr 節點之間的流量,可防止敏感資料在網路上洩漏。TLS 通常也是使用身分驗證時防止憑證嗅探的要求。
詳細資訊請參閱啟用 SSL一節。
身份驗證和授權
稽核記錄
稽核日誌會記錄傳入您叢集的請求稽核追蹤,例如使用者被拒絕存取管理 API。如需深入了解稽核日誌以及如何實作稽核日誌外掛程式,請參閱稽核日誌章節。
IP 存取控制
透過環境變數或在 solr.in.sh
/solr.in.cmd
中設定 SOLR_IP_ALLOWLIST
/SOLR_IP_DENYLIST
,來限制特定主機的網路存取。
# Allow IPv4/IPv6 localhost, the 192.168.0.x IPv4 network, and 2000:123:4:5:: IPv6 network.
SOLR_IP_ALLOWLIST="127.0.0.1, [::1], 192.168.0.0/24, [2000:123:4:5::]/64"
# Explicitly deny access to two problematic hosts.
SOLR_IP_DENYLIST="192.168.0.3, 192.168.0.4"
保護 ZooKeeper 流量
ZooKeeper 是 SolrCloud 叢集中重要且核心的部分,了解如何保護其內容,請參閱ZooKeeper 存取控制章節。
網路設定
管理員應仔細考慮其安全性設定,作為轉移至正式環境的重要步驟。Solr 提供許多開箱即用的功能,以滿足使用者的安全性需求:可以使用各種安全性外掛程式設定身分驗證和授權,可以透過啟用 SSL/TLS 來加強隱私,並且(在 SolrCloud 中)可以使用 ACL 規則保護 ZooKeeper 資料,以防止未經授權的讀取和寫入。
即使採取了這些或其他措施,強烈建議始終使用防火牆保護 Solr。Solr 並非設計為暴露在開放網路上。
也強烈建議 Solr 僅監聽嚴格要求的網路介面。為了防止管理員無意中更廣泛地暴露 Solr,Solr 預設僅監聽迴路介面 ("127.0.0.1")。大多數部署需要將此值更改為限制較少的值,以便可以從其他伺服器存取。可以透過在環境的「包含腳本」(solr.in.sh
或 solr.in.cmd
) 中設定 SOLR_JETTY_HOST
值來完成此操作。
----
SOLR_JETTY_HOST="0.0.0.0"
----
相同的設定也可用作 -Dsolr.jetty.host
系統屬性。
如果嵌入式 Zookeeper 與 Solr 一起執行,情況也是如此。預設情況下,嵌入式 Zookeeper 僅監聽迴路介面 ("127.0.0.1")。繫結主機是透過環境的「包含腳本」(solr.in.sh
或 solr.in.cmd
) 中的 SOLR_ZK_EMBEDDED_HOST
值控制的。
----
SOLR_ZK_EMBEDDED_HOST="0.0.0.0"
----
相同的設定也可用作 -Dsolr.zk.embedded.host
系統屬性。