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


    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

  • 相关阅读:
    输出1-100 , 奇数偶数分别添加标识(for循环语句嵌套if-else语句)
    输出 1-100 内的奇数和偶数,并对其分别求和(while嵌套if-else循环)
    1至100累加求和问题
    淡旺季机票的价格问题(switch语句与if-else语句嵌套)
    (折扣计算)需求说明:普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折(判断语句if-else和switch语句的嵌套结
    随机产生1-12的整数 , 根据产生整数输出一下该月份的季节信息(Math.random()和if语句的应用)
    在Hibernate单向一对多关联关系中的org.hibernate.StaleStateException 异常。
    关于Hibernate的报错org.hibernate.MappingException: Unknown entity
    Hibernate多对一关联关系
    关于映射异常org.hibernate.MappingException: An association from the table DUTY_INFO refers to an unmapped class: com.pms.entities.other.Department的原因。
  • 原文地址:https://www.cnblogs.com/djd66/p/16828001.html
Copyright © 2020-2023  润新知