如何禁用或隐藏浏览器访问Elasticsearch默认端点返回的集群信息
Elasticsearch根路径集群信息隐藏方案
针对你使用的6.1.1版本以及通用场景,有三种可行方案:
方案1:反向代理拦截根路径(全版本兼容,生产优先推荐)
这是适配所有ES版本的通用方案,生产环境一般都会给ES加反向代理做入口,你只需要在Nginx/Apache等代理配置中添加根路径拦截规则即可,Nginx示例配置如下:
server { listen 9200; server_name 你的ES服务域名/IP; # 精准匹配根路径请求,直接返回403/404 location = / { return 403; } # 其他ES业务接口正常转发 location / { proxy_pass http://真实ES节点地址:9200; proxy_set_header Host $host; } }
方案2:使用安全插件做访问控制
你使用的6.1.1版本可以安装X-Pack或者Search Guard等安全插件,配置身份认证或者IP访问白名单:
- 只有通过身份验证、或者在白名单内的请求才能访问ES接口
- 未授权的请求会直接被拦截,无法获取集群信息,同时还能避免ES未授权访问的高危风险。
方案3:原生配置关闭(仅适用于ES 7.10及以上版本)
如果后续你升级到7.10以上的ES版本,可以直接修改config/elasticsearch.yml配置文件,添加如下参数:
http.root_response_enabled: false
保存配置后重启ES服务,根路径就会返回404响应,不再暴露集群信息,这个参数不适用于你当前使用的6.1.1版本。
注意:生产环境不建议直接将ES端口暴露到公网,优先搭配反向代理+身份认证的组合方案,安全性更高。
内容的提问来源于stack exchange,提问作者Sumudu Ekanayake
相关产品推荐
相关产品推荐

