zoukankan      html  css  js  c++  java
  • 十四、ES开启密码认证

    一、为什么要用安全认证

    每个人都能使用es-head插件跟kibana查看和修改es数据库,这是十分危险的。
    所以需要给es-head和kibana添加密码认证。

    二、环境准备

    主机名 服务 IP
    es01 es+kibana 10.154.0.110
    es02 es 10.154.0.111

    我这使用的环境是两台es服务器,其中es01上安装了kibana,es-head插件使用的是谷歌扩展插件。

    三、给es-head添加密码认证

    1、生成证书和密钥

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

    生成证书和密钥的过程,直接回车即可,使用默认的名字和空密码

    2、更改证书所属主并复制给集群其他节点

    mkdir /etc/elasticsearch/certs/
    cp  /usr/share/elasticsearch/*.p12  /etc/elasticsearch/certs/
    chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/
    scp -rp /etc/elasticsearch/certs/ 10.154.0.111:/etc/elasticsearch/certs/
    

    注意,复制到其他节点后需要检查一下所属主,虽然使用了scp -rp但也不是百分百的保证证书所属主还是原来的,这里我发现复制到es02上所属主重新变为了root,一定要检查所属主!

    3、修改配置文件开启安全功能

    vim /etc/elasticsearch/elasticsearch.yml 
    xpack.security.enabled: true #开启安全功能
    xpack.security.transport.ssl.enabled: true #开启传输的时候通过SSL加密功能
    xpack.security.transport.ssl.verification_mode: certificate #认证模式是证书认证
    xpack.security.transport.ssl.keystore.path: certs/elastic-stack-ca.p12 #证书位置
    xpack.security.transport.ssl.truststore.path: certs/elastic-stack-ca.p12 #证书位置
    

    这里要注意的是使用的都是elastic-stack-ca.p12文件

    4、重启所有节点

    systemctl restart elasticsearch
    

    此时访问es-head插件就需要输入密码了,效果如图

    kibana已经访问不了了,效果如图

    5、给es-head插件设置访问密码

    我在es01上做的,需要在安装了kibana的服务器上做如下配置

    /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
    

    接下来给几个账户设置密码,用户名密码都要记好,尤其是elastic这个用户,是用来登录es-head和kibana的用户。

    6、重启所有节点的es服务

    systemctl restart elasticsearch
    

    此时通过es-head插件连接es01和es02都需要输入用户名密码了,使用elastic用户登录即可。

    四、给kibana设置密码

    1、给kibana配置证书
    因为kibana跟es连接也需要证书加密通讯

    mkdir -p /etc/kibana/certs
    cp /etc/elasticsearch/certs/elastic-* /etc/kibana/certs/
    

    2、赋予kibana属主权限,权限一定要是kibana

    cd /etc/kibana/certs/
    chown kibana:kibana *
    

    3、设置kibana密码认证

    这里给出两种方法,鉴于安全性考虑推荐使用第二种。

    第一种方法:
    修改kibana配置文件,这里写入的用户名密码都是明文的,不推荐该方法,了解即可。

    vim /etc/kibana/kibana.yml 
    #修改46跟47行,设置密码,账户一定要是elastic,密码也一定要是之前设置的密码
    elasticsearch.username: "elastic"
    elasticsearch.password: "111111"
    
    #修改58跟59行,设置证书路径,要写绝对路径
    elasticsearch.ssl.certificate: /etc/kibana/certs/elastic-certificates.p12
    elasticsearch.ssl.key: /etc/kibana/certs/elastic-stack-ca.p12
    

    检查修改后的配置文件

    第二种方法:
    通过keystore配置加密的用户名密码信息

    vim /etc/kibana/kibana.yml 
    #修改58跟59行,设置证书路径,要写绝对路径
    elasticsearch.ssl.certificate: /etc/kibana/certs/elastic-certificates.p12
    elasticsearch.ssl.key: /etc/kibana/certs/elastic-stack-ca.p12
    
    #kibana我是使用root账户运行的,需要加上--allow-root选项
    /usr/share/kibana/bin/kibana-keystore create --allow-root
    
    #用户名一定要是elastic
    /usr/share/kibana/bin/kibana-keystore add elasticsearch.username --allow-root
    
    #密码也是之前设置elastic用户的密码
    /usr/share/kibana/bin/kibana-keystore add elasticsearch.password --allow-root
    

    4、重启kibana

    systemctl restart kibana
    

    最后效果如下

    以后修改密码直接可以在kibana页面修改

    五、写在最后

    最后一点要说的是,重启elasticsearch和kibana时,一定要查看日志,确认无报错,es服务启动成功才行。

    如果有错可以使用XSHELL工具的查找ERROR关键字,查看报错,也可参考es故障排查

    参考资料
    老男孩教育_day106_视频
    官方文档
    ES设置密码访问

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    多网卡ip选择
    微软编程一小时--微软2014实习生招募编程模拟测试感想
    .NET和JAVA的比较- 体系结构
    CentOS下JAVA WEB 环境搭建
    MySQL 8.0.23 安装配置向导
    uniapp map层级太高,样式支持度不高 使用nvue解决
    flex 伸缩盒子
    setInterval在浏览器切换时加速的问题
    软件包查找下载https://pkgs.org/
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/tz90/p/15252120.html
Copyright © 2011-2022 走看看