Apache Solr 的 Dovecot FTS:如何保护 Solr?

Apache Solr 的 Dovecot FTS:如何保护 Solr?

我在 Debian 10 VPS 上设置了一个 Solr 服务器,以便使用电子邮件客户端在我的电子邮件存档中进行全文搜索。我在同一主机上使用 Dovecot 作为 IMAP 服务器。

到目前为止一切顺利。

但我不明白的是:如何保护 Solr 的安全?

默认情况下,每个人都可以通过以下方式访问我的管理面板(可能还有 API)http://example.com:8983

为了关闭这个门,我根据 Solr 参考指南创建了 security.json 文件,启用了基本身份验证https://solr.apache.org/guide/8_8/basic-authentication-plugin.html

{
    "authentication":{ 
    "blockUnknown": true, 
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}, 
    "realm":"My Solr users", 
    "forwardCredentials": false 
    },
    "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"security-edit",
        "role":"admin"}], 
    "user-role":{"solr":"admin"} 
    }
}

优点:效果很好,现在人们必须进行身份验证,缺点:

  1. Dovecot 无法再登录 Solr,无法在我的电子邮件存档中进行搜索
  2. 世界其他地方可以使用标准凭证用户“solr”和密码“SolrRocks”登录。

这太愚蠢了吧?这算是保障安全吗?

那么,谁可以帮助我配置我的 Solr 和 Dovecot 服务器,以便只有我能够登录管理面板并且 Dovecot 能够继续与 Solr 一起工作。

我知道我可以关闭身份验证,然后简单地用防火墙封锁 8983 端口,但这不是解决问题的方法。此外,我也无法登录管理面板。

谢谢任何提示。

我的 Dovecot“90-plugins.conf”:

plugin {
  fts = solr
  fts_autoindex = yes
  fts_solr = break-imap-search url=http://127.0.0.1:8983/solr/dovecot/ 
}

答案1

Dovecot 很好地支持 TLS 和 HTTP Basic 身份验证。

这不一定是与 solr 集成的 HBA 实现,您也可以将其应用于全部http 访问 solr 实例。如果您运行 solr 的方法(以前是 Java Web 应用程序,现在是独立应用程序)没有提供所需的选项,请通过 nginx 代理它并在那里配置 HBA。

将凭证放入 Dovecot conf 中的 URL 中:

url=https://user:[email protected]:8983/solr/dovecot/ 

将其托管在只有 Dovecot 才能访问的防火墙 IP 地址上仍然有意义。

对于本地部署,您不需要(通常也不应该)在可路由接口上托管 solr。相反,将您的服务器绑定到::1/127.0.0.1

相关内容