1

试图在我的 Ubuntu 14.04 服务器上保护 Apache Solr 5.1 。

主要是我试图找出使用用户和密码保护 Web 管理界面访问端口 8983(以及我配置 Solr 的任何其他端口)的最佳方法。但是我很可能会遗漏一些其他重要的安全措施,因为我对 Solr 的总体了解仍然很低,更不用说 Solr 5.1。

我可以使用 iptables 轻松保护端口,但我仍然希望能够在需要时对 Web 管理部分进行安全密码访问(就像以前使用 Tomcat 或 Jetty 运行的 solr 版本所做的那样)。也许我只需要配置 web.xml 文件什么的?...

早期的 Solr 版本有很多示例 - 这些示例将不起作用,因为此版本的 Solr 5.1 不依赖于 Jetty 或 Tomcat。还有很多建议和问题似乎对这个版本没有太大帮助,所以在发布参考资料时请注意这一点,并确保您在发布之前至少对 Solr 5 有所了解。

谢谢您的帮助!(我相信它会帮助别人很好)

4

3 回答 3

4

在 Solr 5.2.1 中,只需将以下行添加到“/var/solr/solr.in.sh”:

SOLR_OPTS="$SOLR_OPTS -Djetty.host=127.0.0.1"

阻止从本地主机外部对 Solr 的所有访问。当我在 PHP 代码中使用 Solr 时,这正是我想要的行为。

如前所述,您始终可以通过 SSH 隧道安全地访问管理页面!

于 2015-06-22T23:52:18.760 回答
1

在防火墙中阻止 Solr 端口是一种很好的做法。

从远程机器访问 Web 管理界面的一种安全方法是在机器之间创建 SSH 隧道。然后,您只需将浏览器指向工作机器上的隧道端口即可访问管理 ui。在我看来,这是在防火墙中将 IP 地址列入白名单的更可取的方法。

第二种方法是配置一个充当身份验证器的 Web 服务器代理,然后在提供正确的访问凭据后中继到 Solr 服务器上的管理端口。Basic auth 是一项强大的技术,然后还可以将身份验证器配置为使用其他后端,例如 LDAP 等。

于 2015-05-30T18:54:39.427 回答
0

看来我毕竟可以用 iptables 做到这一点,而现在只是跳过密码。

这就是我所做的……(当然,您可以对 Solr 使用的任何端口执行此操作,而不仅仅是 8983)

sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 8983 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8983 -j DROP

(顺序在 iptables 中很重要——如果你把它翻转过来,8983 就不会通过了)

请不要▲这个答案,除非您在 Solr/Solr5 方面受过良好教育并且可以确认这是 Web 界面的安全选项。虽然我可以确认这有效并且让我暂时停止拔头发,但我还不能确认它是否足够安全。

如果您有一个好的网络界面密码选项,请发布它。

于 2015-05-30T01:16:26.107 回答