Php ElasticSearch端口9200向所有人开放。错了吗?
我有一个运行Elasticsearch的PHP Symfony应用程序和一个mysql数据库。 一切正常,但我只关心一个问题,不确定这是否重要。希望社区能有所帮助 如果我试图访问端口9200上的服务器IP,如下所示: 我有一个JSON/对象输出:Php ElasticSearch端口9200向所有人开放。错了吗?,php,mysql,linux,symfony,
elasticsearch,Php,Mysql,Linux,Symfony,
elasticsearch,我有一个运行Elasticsearch的PHP Symfony应用程序和一个mysql数据库。 一切正常,但我只关心一个问题,不确定这是否重要。希望社区能有所帮助 如果我试图访问端口9200上的服务器IP,如下所示: 我有一个JSON/对象输出: { "status" : 200, "name" : "Cutthroat", "cluster_name" : "elasticsearch", "version" : { "number" : "1.7.3", "
{
"status" : 200,
"name" : "Cutthroat",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.3",
"build_hash" : "NA",
"build_timestamp" : "NA",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
因此,我的问题是:每个人都可以访问这个URL,这是一个问题吗?这是安全漏洞吗?如果可能的话,请提供资源来说明你的观点
如果是,如何解决?我试图阻止对端口9200上所有人的访问,并仅使用iptables
授权本地主机
,但Elasticsearch随后停止工作。响应如下:
检查@imotov答案
多亏@DivijSehgal指出了解决方案将任何数据库暴露在公共互联网上的做法都可能重复,这是自找麻烦。这些服务的设计并不像HTTP服务器那样能够抵抗暴力攻击。大多数HTTP服务器可以调整以阻止恶意连接,而且与数据库相比,它们也很少是漏洞的来源。谢谢您的评论。有没有办法解决这个问题?你可以使用Shield Configure Elasticsearch只允许来自特定IP地址的连接。见伊莫托夫的回答: