漏洞描述
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
通常情况下Elasticsearch 未对敏感信息进行过滤,导致任意用户可读取敏感信息。
修复方案
1.限制IP访问
禁止未授权IP访问ElasticSearch端口(默认9200)。
2.通过ES插件形式来增加访问验证
例如:
①shield
②X-Pack
③search-guard
④elasticsearch-http-basic
⑤ReadOnly REST
3.架设nginx反向代理服务器
设置Nginx认证来实现elasticsearch的登录认证。
修复过程
我采用的是设置X-Pack校验的方式。
我的es版本为 elasticsearch:7.16.1
1、配置 es配置文件 elasticsearch/config/elasticsearch.yml
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: false
这里我为单节点,且没设置ssl证书,所以这里设置xpack.security.transport.ssl.enabled: false
2、重启es并生成密码
#重启es
docker restart elasticsearch
#进入容器
dockee exec -it elasticsearch /bin/bash
#到bin目录初始化密码 两种方式选择其一就行
./bin/elasticsearch-setup-passwords interactive #手动设置密码
./bin/elasticsearch-setup-passwords auto #自动生成密码
3、kibana配置密码
#进入容器
docker exec -it kibana1 /bin/bash
进入配置目录
cd config/
#编辑配置文件并配置账号密码,server.publicBaseUrl 为kibana访问地址
vim kibana.yml
#重启kibana
docker restart kibana1
4、访问页面已经需要密码验证
版权归原作者 LIARRR 所有, 如有侵权,请联系我们删除。