编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Elasticsearch集群启用xpack验证(elasticsearch配置集群的过程)

wxchong 2024-07-23 21:13:30 开源技术 83 ℃ 0 评论

原来用Elasticsearch的时候一直都是在内网使用,没有启用鉴权。这次客户护网行动,扫描漏洞的时候把鉴权问题作为了一个严重漏洞提示出来了,没办法,只能把鉴权给加上。因为Es实际上本身不支持鉴权,所以要采用插件的方式来提供鉴权,这里我们采用xpack插件来做。首先我们需要确认一下自己的Es有没有安装这个插件,输入如下命令:

bin/elasticsearch-plugin install x-pack

如果提示如下错误,那么恭喜你,xpack的插件你已经安装了,因为我用的环境是Es6.8,默认是自带这个插件的,所以安装插件的步骤我们就直接跳过了。

有的时候可能会提示:许可证过期ElasticsearchSecurityException: current license is non-compliant for [security]

这时候我们要降级到基础版本,否则会报license过期

curl -XPOST http://localhost:9200/_license/start_basic?acknowledge=true

以下步骤我们都是以Es6.8的集群为例,如果是单机鉴权的话,直接跳到第三步即可,前面的生成CA证书等步骤可以直接跳过。

第一步:生成CA证书(在集群中的一个节点执行)

我们API是通过用户名和密码进行访问的,但是集群之间的交互是通过证书来进行安全通信的,所以我们先要生成证书,执行以下命令可以生成CA证书

bin/elasticsearch-certutil ca

第二步: 生成证书和私钥(在集群中的一个节点执行)

在生成ca证书的节点上使用elasticsearch内部命令

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

生成elastic-certificates.p12 文件,把elastic-certificates.p12文件分发到集群中的其他节点上,同时需要给这个文件赋予权限:

chown es:es elastic-certificates.p12

注意:elastic-certificates.p12要放到{es_path}/config下面,配置文件默认读取路径是config,当然你也可以用绝对路径来指定证书的位置

第三步:到集群的各个节点上修改elasticsearch.yml配置文件,在文件末尾加上:

xpack.security.enabled: true #ES单机只需要开启安全认证就可以了

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

第四步:给es各个用户配置密码:

1)关闭所有的节点,然后重启一个你作为master的es节点

2)执行设置密码的命令:

bin/elasticsearch-setup-passwords interactive

一堆密码需要设置,这里密码最好是粘贴进去,避免输错了。当然你也可以让es自动帮你创建密码。

创建完成之后,你就可以试试鉴权有没有设置成功。先不输入用户名和密码:

直接报错,提示验证不通过,然后输入密码,能够获取到结果就说明es的鉴权配置成功了,最后我们把其他集群的节点拉起来就可以了。

如果你忘记了密码的话,我们也可以重新设置密码,但是重新设置密码不是重复第4个步骤,那样会报错的。当我们执行设置密码命令的时候,Es会创建一个.security-6索引,这里面保存了密码信息,所以我们需要这个索引删掉,然后重复第4步骤即可。但是我们启用了鉴权,所以直接执行删除索引的命令肯定是失败的,我们可以先把鉴权关掉,也就是修改elasticsearch.yml配置文件

xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false

然后删除.security-6索引

curl -XDELETE http://localhost:9200/.security-6

最后在重复第4步骤就可以重设密码了。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表