首页 > 其他分享 >Elasticsearch XPACK安全认证(设置密码)

Elasticsearch XPACK安全认证(设置密码)

时间:2022-10-26 13:24:45浏览次数:48  
标签:keystore XPACK elastic 认证 Elasticsearch xpack elasticsearch security certs

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的,以及对应的设置,整体配置项如下:

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

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

 

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文件
提示输入密码:可以直接回车,也可以输入密码进行设置

 

./bin/elasticsearch-certutil ca

 

 

 

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

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

 

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

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

 

makdir config/certs 

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

 

mv elastic-certificates.p12 config/certs/

 

 

 

3.2、给keystore和truststore设置密码

 

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

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

 

 

 

 

./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

这样就会在config目录下keystore文件了

 

 

 

 

3.3、修改配置文件并重启

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

 

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、自动创建密码

./bin/elasticsearch-setup-passwords auto

b、手动输入密码

./bin/elasticsearch-setup-passwords interactive

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

./bin/elasticsearch-reset-password -u elastic

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

./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认证

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

 

 我windows下,照着命令敲就行,找对执行目录即可。


原文链接:https://blog.csdn.net/github_30641423/article/details/123746349

标签:keystore,XPACK,elastic,认证,Elasticsearch,xpack,elasticsearch,security,certs
From: https://www.cnblogs.com/djd66/p/16828001.html

相关文章

  • ElasticSearch简介与简单入门
    第1章Elasticsearch概述1.1ElasticSearch是什么ELK:ElasticSearch、Logstash、Kibana等组件组成的技术栈叫做ELK技术栈;ES是一个开源的高扩展的分布式全文搜索引擎,是整......
  • docker 私人仓库 用户认证
    1、删除原启动的dockerregistry容器#dockerstopregistry#dockerrmregistry2、创建存储用户密码的文件mkdir/opt/application/registry/auth//可自定义yum......
  • rest_framework认证源码分析
    认证源码分析位置:APIVIew----》dispatch方法---》self.initial(request,*args,**kwargs)---->有认证,权限,频率三个版块分析:只读认证源码:self.perform_authenticatio......
  • ElasticSearch SQL学习笔记
    ElasticSearchSQL学习笔记基础信息ElasticSearchSQL是一个X-Pack组件,允许ElasticSearch实时执行类似SQL的查询,由ElasticSearch原生支持,无需安装其他插件。基本语法El......
  • Elasticsearch rest-high-level-client 基本操作
    Elasticsearchrest-high-level-client基本操作本篇主要讲解一下rest-high-level-client去操作Elasticsearch,虽然这个客户端在后续版本中会慢慢淘汰,但是目前大部......
  • JeecgBoot低代码开发平台与达梦数据完成兼容性互认证
    近日,JeecgBoot与达梦数据库管理系统V8完成兼容性认证测试;通过双方共同测试表明,Jeecgboot低代码开发平台与达梦数据库管理系统V8,相互兼容,系统功能运行稳定,能够满足用户更多......
  • elasticsearch-head-master可视化工具安装
    前言上一篇文章我们介绍了ElasticSearch-8.2.0-windows安装与配置,这篇文章我们就介绍一下ElasticSearch可视化工具HD的安装与配置。一、elasticsearch-head下载与安装elas......
  • #打卡不停更# 如何使用ElasticSearch可视化工具TalendAPITester
    如何使用ElasticSearch可视化工具TalendAPITester1、TalendAPITester介绍与安装TalendAPITester-FreeEdition25.4.0是个Chrome浏览器扩展,是类似postman的接口测试......
  • springboot整合elasticsearch实现MySQL模糊查询
    es关联mysql实现模糊查询的数据流:   1、使用logstash同步mysql数据到eslogstash简介及基本操作:https://blog.csdn.net/yurun_house/article/details/109025588win......
  • 从头开始学ElasticSearch
    第一章ElasticSearch概述1.1ElasticSearch概述之基本概念1.2ElasticSearch概述之安装1.3ElasticSearch概述之Kibana安装1.4ElasticSearch概述之增删改查第二章Elastic......