运维工作中占据时间比较多的一个点就是漏洞修复,最近就有几个之前是研发自己的管的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.zipunzip za.zip
新建证书目录
mkdir config/certs#然后把刚才的证书文件,都拷贝到下面cp ./ca/* ./za/* ./config/certs/#如果是集群模式,多节点都新建目录,复制证书文件
修改配置文件
我们这边的配置文件是直接外挂在宿主机上的,可以在容器中改,也可以到宿主机中修改
xpack.security.transport.ssl.enabled: truexpack.security.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.key: certs/za.keyxpack.security.transport.ssl.certificate: certs/za.crtxpack.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_passwordbin/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.ymlelasticsearch.username: elasticelasticsearch.password: passwd
重启kibana容器
docker restart 95
登陆页面去访问试下是否可以正常登陆就可以了。
有其他问题,可以直接后台回复哈。。
文章转载自大侠之运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




