xpack简介
-
在配置好es集群之后,可以选择开启安全认证功能。X-Pack 提供以下几个级别保护elastic集群
- 用户验证;
- 授权和基于角色的访问控制;
- 节点/客户端认证和信道加密;
- 审计。
部署过程
- 实验目的:为es集群开启 xpack安全认证,并在logstash和Kibana开启相应的用户认证。
- 实验环境:
主机 | 角色 |
---|---|
server2 | es的master 节点 |
server9 | es主机 |
server10 | es主机 |
server3 | logstash+kibana |
-
步骤一:ES集群的设置
- Elastic Stack安全功能使你可以加密来自Elasticsearch集群的流量。
- 使用传输层安全性(TLS)来保护连接,传统层安全性通常称为“SSL”。
1.为每个Elasticsearch节点生成私钥和X.509证书
集群模式需要先创建证书:
(1)生成CA证书 bin/elasticsearch-certutil ca,将产生新文件 elastic-stack-ca.p12。该 elasticsearch-certutil 命令还会提示你输入密码以保护文件和密钥,请保留该文件的副本并记住其密码。
(2)为集群中的每个节点生成证书和私钥 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12,将产生新文件 elastic-certificates.p12。系统还会提示你输入密码,你可以输入证书和密钥的密码,也可以按Enter键将密码留空。默认情况下 elasticsearch-certutil 生成没有主机名信息的证书,这意味着你可以将证书用于集群中的每个节点,另外要关闭主机名验证。
(3)将 elastic-certificates.p12 文件复制到每个节点上Elasticsearch配置目录中。
(4)修改elastic-certificates.p12 和 elastic-stack-ca.p12 和 elasticsearch-keystore文件的所有人为elasticsearch
2.配置集群中的每个节点以使用其签名证书标识自身并在传输层上启用TLS
vim /etc/elasticsearch/elasticsearch.yml
3.重启Elasticsearch
配置为使用TLS的节点无法与使用未加密网络的节点通信(反之亦然)。启用TLS后,必须重新启动所有节点才能保持群集之间的通信。
systemctl restart elasticsearch.service
systemctl status elasticsearch.service
4.为系统默认用户创建密码
- Elastic Stack安全功能提供内置的用户凭据可帮助你启动运行ES,这些用户具有一组固定的权限,在设置密码之前无法进行身份验证,其中elastic用户可以用来设置所有内置的用户密码。
- 上面的内置用户存储在一个特殊 .security 索引中,该索引由Elasticsearch管理。如果禁用内置用户或其密码更改,则更改将自动反映在集群中的每个节点上。但是,如果从快照中删除或恢复索引,则已应用的任何更改都将丢失。
- 步骤二:在Kibana端设置
启用Elasticsearch安全功能后,用户必须使用有效的用户ID和密码登录Kibana
vim /etc/kibana/kibana.yml
systemctl restart kibana.service
- 步骤三:在Logstash端设置
设置Logstash连接ES用户密码
- head访问:
http://192.168.0.102:9100/?auth_user=elastic&auth_password=redhat #需要添加用户名和密码