ElasticSearch:只允许本地请求

如何只允许本地请求弹性search? 所以命令如:

curl -XGET 'http://localhost:9200/twitter/_settings' 

只能在本地主机上运行,​​请求如下:

 curl -XGET 'http://mydomain.com:9200/twitter/_settings' 

会被拒绝?

因为从我所看到的,elasticsearch默认是允许的。

编辑:

根据http://www.elasticsearch.org/guide/reference/modules/network.html你可以pipe理bind_host参数来允许主机。 默认情况下,它被设置为anyLocalAddress

对于v2.0.0之前的elasticsearch,如果您希望http传输和内部elasticsearch传输仅在本地主机上侦听,只需elasticsearch.yml下行添加到elasticsearch.yml文件。

 network.host: "127.0.0.1" 

如果您只希望http传输在本地主机上侦听,请改为添加以下行。

 http.host: "127.0.0.1" 

从v2.0开始,elasticsearch默认只在本地主机上侦听。 所以,不需要额外的configuration。

如果最终目标是拒绝来自主机之外的任何请求,最可靠的方法是修改主机的iptables,以便拒绝对ElasticSearch(9200-9300)使用的服务端口的任何传入请求。

如果最终目标是确保每个人都使用独占DNS来引用服务,那么最好使用能够代理HTTPd或nginx请求的HTTP服务器来实现这一目标。

我使用这个参数:

http.host:“127.0.0.1”

这个参数不接受外部请求的http请求。