暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

elasticsearch 6.8.4 开启安全认证

大侠之运维 2022-06-30
1717

运维工作中占据时间比较多的一个点就是漏洞修复,最近就有几个之前是研发自己的管的es被安全扫出了漏洞,需要开启安全认证。


因为之前的研发自己玩的,所以安装的很随意,上去看了下,直接就是docker 起了一个es,起了一个kibana,而且是都是单点的。


还好只是一个边缘应用,紧急程度也没有那么高,不过还好版本6.8.4,已经支持了免费的安全认证。


es的9200的无需认证的访问,在几年前爆出了蛮多数据问题,后面有了安全认证的插件,最开始也是付费的,目前的话,包括最新的8版本,这个认证都是免费使用的。


这篇文章的话,就是记录下,一个认证的升级过程,主要涉及的就是es证书的生成,密码的设置,然后kibana配置文件需要同步增加用户及密码。



elastichsearch证书生成

因为是docker起的,进入容器中

    dcoker exec -it 27 /bin/bash
    #执行证书生成命令
    ./bin/elasticsearch-certutil ca --pem --out ca.zip
    #我在执行上一步的时候,遇到内存不足的情况
    unzip ca.zip
    ./bin/elasticsearch-certutil cert --ca-cert ca/ca.crt --ca-key ca/ca.key --pem --name za  --out za.zip
    unzip za.zip

    新建证书目录

      mkdir config/certs
      #然后把刚才的证书文件,都拷贝到下面
      cp ./ca/* ./za/* ./config/certs/
      #如果是集群模式,多节点都新建目录,复制证书文件

      修改配置文件

      我们这边的配置文件是直接外挂在宿主机上的,可以在容器中改,也可以到宿主机中修改

        xpack.security.transport.ssl.enabled: true


        xpack.security.enabled: true


        xpack.security.transport.ssl.verification_mode: certificate


        xpack.security.transport.ssl.key: certs/za.key


        xpack.security.transport.ssl.certificate: certs/za.crt


        xpack.security.transport.ssl.certificate_authorities: certs/ca.crt

        生成账户密码,会生成一系列的账户

        主要用到的话,就是elastic,kibana

          ./bin/elasticsearch-setup-passwords interactive

          密码生成之后,还有一步操作

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

            执行到这步的话,基本配置及密码就生成了

            可以重启下容器然后验证下了,在这里要注意下,如果是业务上有用的话,需要确认好时间窗口,另外研发也是需要调整代码的。

              docker restart 27
              #27是容器号的前两位

              验证下是否正常

                curl --insecure --user elastic -XGET http://127.0.0.1:9200/
                #执行完后 输入elastic的密码 如果正常显示就对了
                #如果返回401的话,确认下密码是否输对了

                es正常之后,就去修改kibana的配置了,只需要增加两行配置就好了

                在目前的8.0版本的kibana中,其实不需要自己去配置了,es会生成token,kibanan启动后,直接输入token就好了。

                kibana新增配置

                  #kibana.yml
                  elasticsearch.username: elastic
                  elasticsearch.password: passwd

                  重启kibana容器

                    docker restart 95


                    登陆页面去访问试下是否可以正常登陆就可以了。


                    有其他问题,可以直接后台回复哈。。


                    文章转载自大侠之运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论