Elasticsearch 未授权访问漏洞修复

漏洞描述

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、访问页面已经需要密码验证

猜你喜欢

转载自blog.csdn.net/LIARRR/article/details/128952684