关于ES9200端口漏洞添加授权验证方法实践

发布网友 发布时间:2025-01-11 02:31

我来回答

1个回答

热心网友 时间:2025-01-15 00:59

Elasticsearch安全认证方式的实践,本文以X-Pack进行安全认证为例。在使用Elasticsearch过程中,需确保其安全性,防止数据安全隐患。Elasticsearch支持多种认证方式,包括http-basic、search guard、shield等,本文重点介绍使用X-Pack进行安全认证的实践。


针对http-basic认证方式的实验发现,虽然该方式提供IP白名单、密码权限和信任代理功能,但在GitHub上已发布较旧版本,仅支持到ES6.x,因此排除使用http-basic插件包。


对于本项目使用的ES版本(7.8及8.2),部署上线后需考虑Elasticsearch安全漏洞(CVE-2020-7019)。因此,选择使用X-Pack进行安全认证。


X-Pack是Elastic Stack扩展功能,提供安全性、警报、监视、报告、机器学习等其他功能,ES7.0+版本默认安装,无需单独安装。自6.8及7.1+版本,基础级安全永久免费。


以下是对相关安全配置的介绍:




xpack.security.enabled 默认为true,启用节点上的ES X-Pack安全功能,相当于总开关。




xpack.security.http.ssl 用于开启HTTPS及对应设置,整体配置如下。




xpack.security.transport.ssl 传输层认证设置,整体配置如下。




ES集群认证配置步骤包括:




创建证书:创建证书颁发机构、为节点生成证书和私钥、在config目录下创建certs目录并将文件拷贝至该目录。




给keystore和truststore设置密码:keystore用于存放公钥、私钥、数字签名等信息,而truststore存放只包含公钥的数字证书,代表了可信任的证书。根据创建证书过程中的密码输入设置相应密码,每个节点都需要。




修改配置文件并重启:在config/elasticsearch.yml文件中设置安全配置并重启服务。




创建用户密码:设置集群账号密码,有自动创建、手动输入、重置用户密码(随机或指定)四种方式。




认证验证场景包括:




浏览器访问验证:通过web页面访问ES,需要HTTPS模式。




curl认证:执行curl命令访问ES API时,需要添加账户密码进行认证。




kibana认证:在kibana中配置ES认证,修改配置文件config/kibana.yml,添加相关认证信息,重启kibana。




在启动ES时,如遇错误“max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]”,解决办法是调整配置文件中的相关设置,确保文件句柄数量足够。


对于Elasticsearch8中bulk操作报错问题(The bulk request must be terminated by a newline [\n]),解决方法是确保bulk请求体以换行符(\n)结束,遵循NDJSON结构格式。在进行批量操作时,将每条数据转换为字符串并添加换行符,或在使用json文件时,文件名前添加@符号(如@xxx.json)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com