保护 Solr
包括 Admin UI 在内的任何 Solr API 都不适合向非可信方公开。调整防火墙,以便仅允许受信任的计算机和人员访问。因此,该项目不会将例如 Admin UI XSS 问题视为安全漏洞。但是,我们仍然要求您在 JIRA 中报告此类问题。 |
在规划如何保护 Solr 时,您应该考虑哪些可用功能或方法适合您
使用 TLS (SSL) 证书加密
加密到/从 Solr 以及 Solr 节点之间的流量可以防止敏感数据在网络上泄露。在使用身份验证时,TLS 通常也是防止凭据嗅探的必要条件。
有关详细信息,请参阅部分 启用 SSL。
身份验证和授权
使用 Admin UI 中的 Security UI 屏幕管理用户、角色和权限。
请参阅部分 配置身份验证和授权 以了解如何使用 security.json
文件。
审计日志记录
审计日志记录将记录传入群集的请求的审计跟踪,例如拒绝用户访问管理 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”)。大多数部署都需要将此值更改为限制较少的某个值,以便可以从其他计算机访问。这可以通过在环境的“include 脚本”(solr.in.sh
或 solr.in.cmd
)中设置 SOLR_JETTY_HOST
值来完成
----
SOLR_JETTY_HOST="0.0.0.0"
----
相同的设置也可用作 -Dsolr.jetty.host
系统属性。
如果与 Solr 一起运行,嵌入式 Zookeeper 也是如此。默认情况下,嵌入式 Zookeeper 仅侦听环回接口(“127.0.0.1”)。绑定主机通过环境的“include 脚本”(solr.in.sh
或 solr.in.cmd
)中的 SOLR_ZK_EMBEDDED_HOST
值进行控制
----
SOLR_ZK_EMBEDDED_HOST="0.0.0.0"
----
相同的设置也可用作 -Dsolr.zk.embedded.host
系统属性。