X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会自动安装X-Pack,无需单独再安装。自6.8以及7.1+版本之后,基础级安全永久免费。
从上面启动ES并访问我们可以发现在访问ES过程中我们没有任何安全认证就可以直接访问并操作ES,这在生产环境下如果端口号向外暴露的话对数据安全性无法得到保障。当然还有其它解决方案比如使用nginx作代理防护这里就不作过多介绍。
1、ElasticSearch开启X-Pack
- 修改es配置文件:
cd elasticsearch/config
vi elasticsearch.yml
再最后新增如下配置项:
xpack.security.enabled: true
- 生成节点证书
借助elasticsearch-certutil命令生成证书:
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
- 配置通信证书
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
- 重启elasticsearch服务
- 重新设置密码
执行设置用户名和密码的命令,需要为4个用户分别设置密码:elastic、kibana、logstash_system、beats_system
1、可以自动设置密码
bin/elasticsearch-setup-passwords auto
2、也可以手动设置密码
bin/elasticsearch-setup-passwords interactive
这里我们采用手动设置的方式:
- 验证
访问es
输入用户名、密码:
等于成功:
2、Kibina配置修改
修改kibina的配置文件。添加如下配置:
访问Kibina地址,同样需要输入用户名及密码:
输入用户名、密码,登录: