介绍
介绍
前面福哥带着大家学会了elastic官方的用于管理Elasticsearch搜索引擎的工具Kibana的安装使用,大家可以看到Kibana可以针对Elasticsearch进行完全的索引、数据的操作,但是Kibana缺又不需要登录就可以使用,这有点太不安全了!
其实Kibana不用登录不是Kibana自己的问题,是我们的Elasticsearch搜索引擎没有开启安全认证的原因,如果ES开启了认证那么Kibana就会需要登录才能使用了!
今天福哥就带着大家学习如果开启Elasticsearch的HTTP安全认证~
环境
镜像版本 | elasticsearch:6.8.18、kibana:6.8.18 |
操作系统 | CentOS 7 x86_64 2009 |
服务器 | TFCentOS7x64 |
IP | 192.168.168.68 |
端口 | 9200、5601 |
使用
启动Elasticsearch
首先把Elasticsearch启动起来。
docker start tfelasticsearch
生成TLS证书
进入到tfelasticsearch的容器里面,进入到Elasticsearch的bin目录下面,使用证书工具elasticsearch-certutil生成TLS证书,最后设置证书文件所有者为elasticsearch。
docker exec -ti tfelasticsearch bash cd /usr/share/elasticsearch/bin/ ./elasticsearch-certutil cert -out ../config/elasticsearch_certificate.p12 -pass "" chown elasticsearch ../config/elasticsearch_certificate.p12
开启ES认证
编辑/usr/share/elasticsearch/config/elasticsearch.yml配置文件,增加如下配置信息。
# security xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: elasticsearch_certificate.p12 xpack.security.transport.ssl.truststore.path: elasticsearch_certificate.p12
重启ES
按照Elasticsearch的设计,必须先重新启动,使安全模式生效了才能设置密码。
也就是说一定会有一个开启了安全模式,又无法正常认证的“故障”状态,直到密码设置完成!真是恶心啊~
docker restart tfelasticsearch
设置密码
现在可以设置密码了,进入到Elasticsearch的容器里面,进入到Elasticsearch的bin目录下面,使用elasticsearch-setup-passwords工具设置密码。
docker exec -ti tfelasticsearch bash cd /usr/share/elasticsearch/bin/ ./elasticsearch-setup-passwords interactive
这个命令会设置很多用户,包括elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user,基本上我们用于配合ES使用的软件工具都包括了!
启动Kibana
现在我们把Kibana启动起来!
docker start tfkibana
Kibana配置ES用户名和密码
现在进入到tfkibana的容器里面,把Elasticsearch开启安全认证时候设置的kibana的用户名和密码配置到/usr/share/kibana/config/kibana.yml里面。
elasticsearch.username: "kibana" elasticsearch.password: "********"
重启Kibana
重新启动Kibana,使Kibana可以正常连接Elasticsearch。
docker restart tfkibana
登录Kibana
再次访问Kibana会发现需要登录了!可以使用任何Elasticsearch里配置的用户名和密码登录!
登录后可以在左下角看到登录用户以及退出按钮!
修改密码
点击登录用户elastic链接,可以看到有修改密码的功能。
原来在Kibana里可以修改ES的密码啊,真不错!
总结
今天福哥带着大家学习了开启Elasticsearch搜索引擎的安全认证的方法,设置了用户名和密码之后再使用ES就安全多了!使用Kibana操作ES也安全多了!