[转帖]龙叔学ES:Elasticsearch XPACK安全认证

es,elasticsearch,xpack,安全,认证 · 浏览次数 : 0

小编点评

**Xpack 安全认证简介** Xpack 是一个提供安全性、警报、监视和报告等功能的 Elasticsearch扩展功能。 **相关安全配置** * `xpack.security.enabled`:开启 Xpack 安全功能,默认值为 `true`。 * `xpack.security.http.ssl`:设置 SSL 认证,默认值为 `false`。 * `xpack.security.transport.ssl`:设置传输层 SSL 认证,默认值为 `true`。 * `xpack.security.transport.ssl.keystore.secure_password`:设置 SSL 证书文件安全密码。 * `xpack.security.transport.ssl.truststore.secure_password`:设置 SSL 信任库安全密码。 **ES 集群认证配置命令操作** 1. 创建证书和私钥文件。 2. 创建下证书目录。 3. 将证书和私钥文件复制到 `config/certs` 目录下。 4. 修改配置文件并重启配置文件。 5. 创建用户密码。 **用户密码设置** 使用以下命令设置账号密码: ```bash ./bin/elasticsearch-setup-passwords autob ``` **其他设置** * `xpack.security.enabled` 设置 `true` 启用 Xpack 安全功能。 * `xpack.security.transport.ssl.enabled` 设置 `true` 启用传输层 SSL 认证。 * `xpack.security.transport.ssl.keystore.secure_password` 和 `xpack.security.transport.ssl.truststore.secure_password` 设置 SSL 证书和信任库安全密码。 * `xpack.security.http.ssl` 设置 `false` 关闭 HTTPS 认证。

正文

https://juejin.cn/post/7081994919237287950

 

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


Elasticsearch往往存有公司大量的数据,如果安全不过关,那么就会有严重的数据安全隐患。

Elasticsearch 的安全认证方式有不少,如http-basic,search guard,shield等,本文讲的是使用Xpack进行安全认证。

1、什么是Xpack

X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。

自6.8以及7.1+版本之后,基础级安全永久免费。

基础版本安全功能列表如下: 在这里插入图片描述

2、相关安全配置介绍

这里挑一些比较重要常见的配置项介绍,完整的配置介绍可以查看官方文档

2.1、xpack.security.enabled

默认为true,启用节点上ES的XPACK安全功能,相当于总开关

2.2、xpack.security.http.ssl

这个是用来开启https的,以及对应的设置,整体配置项如下:

 
yaml
复制代码
xpack.security.http.ssl:
  enabled: false 【开启还是关闭】
  verification_mode: certificate【如下】
   【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
   【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
   【none:它不执行服务器证书的验证。】
  truststore.path: certs/elastic-certificates.p12 【信任存储库文件的存放位置】
  keystore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】

2.3、xpack.security.transport.ssl

这个是传输层的认证设置,整体配置项如下:

 
yaml
复制代码
xpack.security.transport.ssl:
  enabled: true【开启还是关闭】
  verification_mode: certificate【如下】
   【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
   【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
   【none:它不执行服务器证书的验证。】
  keystore.path: certs/elastic-certificates.p12【信任存储库文件的存放位置】
  truststore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】

3、ES集群认证配置

命令操作都是在ES安装根目录下执行的 在这里插入图片描述

3.1、创建证书

a、创建一个证书颁发机构

提示命名文件:直接回车,默认文件名elastic-stack-ca.p12文件 提示输入密码:可以直接回车,也可以输入密码进行设置

 
bash
复制代码
./bin/elasticsearch-certutil ca

在这里插入图片描述

b、为节点生成证书和私钥

提示命名文件,直接回车,默认文件名elastic-certificates.p12文件 提示输入密码:可以直接回车,也可以输入密码进行设置

 
arduino
复制代码
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

c、config目录下创建下certs目录

 
arduino
复制代码
makdir config/certs 

d、将文件可拷贝到certs目录下

 
bash
复制代码
mv elastic-certificates.p12 config/certs/

在这里插入图片描述

3.2、给keystore和truststore设置密码

注解: keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息。 truststore是放信任的证书的一个store truststore和keystore的性质是一样的,都是存放key的一个仓库,区别在于,truststore里存放的是只包含公钥的数字证书,代表了可以信任的证书,而keystore是包含私钥的。

如果在创建证书的过程中加了密码,需要输入这个密码。每个节点都需要 在这里插入图片描述

 
bash
复制代码
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
 
bash
复制代码
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
 
bash
复制代码
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
 
bash
复制代码
./bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

这样就会在config目录下keystore文件了 在这里插入图片描述

3.3、修改配置文件并重启

配置文件中加入以下配置,然后重启

 
yaml
复制代码
xpack.security.enabled: true


xpack.security.http.ssl:
  enabled: false
  verification_mode: certificate
  truststore.path: certs/elastic-certificates.p12
  keystore.path: certs/elastic-certificates.p12

xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12

3.4、创建用户密码

集群中的节点都按照上面的方式完成配置并启动后,就可以设置账号密码了

a、自动创建密码

 
arduino
复制代码
./bin/elasticsearch-setup-passwords auto

b、手动输入密码

 
arduino
复制代码
./bin/elasticsearch-setup-passwords interactive

c、重置用户密码(随机密码)

 
bash
复制代码
./bin/elasticsearch-reset-password -u elastic

d、重置用户密码(指定密码)

 
bash
复制代码
./bin/elasticsearch-reset-password -u elastic -i <password>

4、认证验证场景

4.1、浏览器访问验证

这里说明一下: xpack.security.http.ssl的enable为true 就会是https,为false就是http,我这里是关掉了

在这里插入图片描述

4.2、curl 认证

当你执行curl去访问es api的时候也会提示需要进行认证 在这里插入图片描述

但是带上账号密码就可以了 在这里插入图片描述

4.3、kibana 认证

kibana中配置ES中配置的kibana账号密码即可连接ES认证

 
vbscript
复制代码
elasticsearch.username: "kibana"
elasticsearch.password: "XXX"
elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"]
server.port: 5601

在这里插入图片描述

在这里插入图片描述

与[转帖]龙叔学ES:Elasticsearch XPACK安全认证相似的内容:

[转帖]龙叔学ES:Elasticsearch XPACK安全认证

https://juejin.cn/post/7081994919237287950 本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Elasticsearch往往存有公司大量的数据,如果安全不过关,那么就会有严重的数据安全隐患。 Elasticsearch 的安全认证方式有不少,如http-

[转帖]龙蜥社区成立智能调优 SIG,物理机、虚拟机、容器的多个典型应用调优效果平均在 10% 以上

https://baijiahao.baidu.com/s?id=1715482603122115961&wfr=spider&for=pc 关注 KeenTune SIG 是一款 AI 算法与专家知识库双轮驱动的操作系统全栈式智能优化产品,为主流的操作系统提供轻量化、跨平台的一键式性能调优,让应用

[转帖]浪潮信息龙蜥联合实验室:打造下一代操作系统,筑牢基础软件创新根基

https://aijishu.com/a/1060000000379951 毫无疑问,在当今世界日益复杂的竞争环境下,随着中国企业数字化转型的加速和自主创新进程的加快,再加上开源和云计算已成为行业发展的大趋势之下,如何在“变局中开新局”?如何解决中国在核心基础软件领域面临的各种挑战和难题,可以说已

[转帖]AnolisOS 入门八:使用keentune(轻豚) 调优系统性能

Anolis 龙蜥社区https://openanolis.cn/轻豚主站http://keentune.io/home 注意:使用keentune 前您应当对服务器硬件、Linux核心参数、网络通讯等知识领域有所了解 警告: 错误的使用调试工具,可能会使服务中断,请谨慎使用! 简介: 性能调优,是

[转帖]AMD第四代宵龙 9174F 亮眼

https://www.amd.com/zh-hans/processors/epyc-9004-series#%E8%A7%84%E6%A0%BC 型号规格 型号CPU 核心数量线程数量最大加速时钟频率全核心加速频率基准时钟频率三级缓存默认热设计功耗/TDP AMD EPYC™ 9654P 96

[转帖]AMD Zen4 霄龙 9004 转战嵌入式:192 框框无敌!秒杀对手 80%

http://www.myzaker.com/article/64104f50b15ec02eb10eb659 其实,它就是把此前用于服务器、数据中心的霄龙 9004 系列的部分型号拿了过来,命名、规格一点都没改,只是在重点技术、服务上有所区别。 嵌入式霄龙 9004 系列当然还是 Zen4 架构,

[转帖]CPU的IPC性能是什么意思?通俗易懂科普处理器IPC性能含义

http://www.lotpc.com/yjzs/8463.html 锐龙三代处理器发布之后,AMD称基于全新的Zen2架构相比上一代Zen+,实现了高达15%的IPC性能提升,不过对于IPC性能,相信不少用户还不知道什么意思,那么CPU的IPC性能是什么意思?下面装机之家来通俗易懂科普处理器IP

[转帖]双通道内存是什么意思?怎么安装?组建内存双通道正确插法教程

2020-04-04 00:28 装机之家晓龙 59850 关注公众号"装机之家科技" 0 我们在装机或者是升级内存的时候,发现主板上有四个内存插槽的情况下,不知道插哪根内存插槽上才可以,其实理论上任意插到哪一根内存插槽上都是可以正常使用的,但是任意插的情况下,不一定能够组建双通道,而组建双通道也是

[转帖]工信部电子标准院授予阿里巴巴9个开源项目“优秀”评级

http://blog.itpub.net/31545803/viewspace-2932061/ 1月13日消息,工信部电子标准院近日公布第二批通过开源项目成熟度评估的开源项目名单,阿里巴巴主导的Flink、Dubbo、龙蜥操作系统、Seata、Nacos等多个开源项目获得“优秀”评级。 电子标准

[转帖]Arm发布CortexX4,功耗可降低40%

https://www.eet-china.com/mp/a224124.html ARM 发布了新一代的移动处理器内核,包括 Cortex-X4、Cortex-A720、Cortex-A520,预计将很快用于骁龙 8 Gen 3 以及天玑 9300 等处理器。值得一提的是,新的核心基于 Arm v