ElasticSearch7.10配置Search-Guard

ElasticSearch7.10配置Search-Guard

1.下载elasticsearch7.10

2. 修改系统属性

$ vim  /etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft nproc 65536
* hard nproc 65536

$ vim /etc/sysctl.conf

vm.max_map_count=262144

3. 增加es组和es用户

3.1 创建

$ groupadd es

$ useradd es -g es

$ passwd  es

3.2 修改es的属组

$ chown -R es:es /home/software/es_ssl/

4. 服务安全配置

选择一个你想去生成如下证书的类型:

  • 1.每个节点的证书

  • 2.一个admin证书

在每个节点上使用相同的证书它是可以的。但是不安全的,你不能使用主机名验证和搜索守卫的DNS查询功能去检查TLS证书的有效性。

4.1 网址

插件:

https://docs.search-guard.com/latest/search-guard-versions

选择 example PKI script 脚本生成器:

https://docs.search-guard.com/latest/search-guard-installation

4.2 配置 example

4.2.1 前提条件
  • 1.openssl version

确保版本1.0.1k 或者更高

  • 2.keytool

输入在服务器上,会出现一个list的命令。如果没有,确保JDK已安装且环境配置OK。

4.2.2 生成证书

https://git.floragunn.com/search-guard/legacy/search-guard-ssl/-/tree/master

这个是ssl 的代码仓库

4.3 第一次安装:所有的集群重启

第一次安装搜索守卫在集群上总是需要全部重启。TLS加密在Elastsearch的传输层是强制性的。并且所有的节点都已经安装守卫能够互相通话。如果搜索守卫已经安装,现在想去更新,使用如下链接:

https://docs.search-guard.com/latest/upgrading

4.3.1 通常
  • 1.禁用分片分配

  • 2.停止所有节点

  • 3.在所有节点安装搜索守卫插件

  • 4.在elasticsearch.yml中配置TLS

  • 5.重启elasticsearch且检查节点状态

  • 6.重新启动分片分配功能通过使用sgadmin
    https://docs.search-guard.com/latest/sgadmin

  • 7.配置认证/授权,用户、角色和权限,通过使用搜索守卫的sgadmin

4.4 安装Search Guard

4.4.1可以使用Elasticsearch的bin/elasticsearch-plugin安装命令
$ bin/elasticsearch-plugin install -b file:///path/to/search-guard-7-<version>.zip

可能会出现额外的权限窗口,在安装过程中,确定“y“

4.4.2可以下载匹配Elasticsearch版本的Search Guard

https://docs.search-guard.com/latest/search-guard-versions

4.5 增加TLS配置

对于各类证书的路径都要指定Elasticsearch的config目录。

4.5.1 传输配置
searchguard.ssl.transport.pemcert_filepath: <path_to_node_certificate>
searchguard.ssl.transport.pemkey_filepath: <path_to_node_certificate_key>
searchguard.ssl.transport.pemkey_password: <key_password (optional)>
searchguard.ssl.transport.pemtrustedcas_filepath: <path_to_root_ca>
searchguard.ssl.transport.enforce_hostname_verification: <true | false>
searchguard.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=test, C=de

这个“searchguard.authcz.admin_dn“配置admin证书,你可以使用”sgadmin“或者REST 管理API。你需要去声明证书的完整DN,并且可以配置多个管理证书。

4.5.2 TLS—HTTPS
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: <path_to_http_certificate>
searchguard.ssl.http.pemkey_filepath: <path_to_http_certificate_key>
searchguard.ssl.http.pemkey_password: <key_password (optional)>
searchguard.ssl.http.pemtrustedcas_filepath: <path_to_http_root_ca>
4.5.3 elasticsearch.yml配置Demo

Search Guard官网

searchguard.ssl.transport.pemcert_filepath: esnode.pem
searchguard.ssl.transport.pemkey_filepath: esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: esnode.pem
searchguard.ssl.http.pemkey_filepath: esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: root-ca.pem
searchguard.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=test,C=de
4.5.4 REST管理API

在elasticsearch.yml中加入

searchguard.restapi.roles_enabled: ["SGS_ALL_ACCESS"]

4.6 重新启用分片分配功能

在集群重新启动之后
Example using sgadmin

./sgadmin.sh --enable-shard-allocation
 -cert ./kirk.pem -key ./kirk-key.pem -cacert ./root-ca.pem 

4.7 初始化Search Guard

https://docs.search-guard.com/latest/sgadmin

4.7.1 sgadmin初始化

https://docs.search-guard.com/latest/sgadmin-examples

./sgadmin.sh \
   -cd ../sgconfig/ \
   -cacert /path/to/root-ca.pem \
   -cert /path/to/kirk.crt.pem \
   -key /path/to/kirk.key.pem  \
   -keypass changeit
   -nhnv
   -icl

在这里插入图片描述

4.7.2 出现ERROR

在上一步骤成功之后,在elasticsearch上出现了ERROR,我们来看下是哪些。
在这里插入图片描述

No data for internalusers while retrieving configuration for [INTERNALUSERS, ACTIONGROUPS, CONFIG, ROLES, ROLESMAPPING, TENANTS, BLOCKS] (index=searchguard and type=null)

这个的意思是在sgconfig目录下的配置文件中的内置用户配置文件sg_internal_users.yml等,没有对应的数据。

4.7.3 网页上访问

在这里插入图片描述
admin:admin登录即可

4.7.3 集群6.x 到 集群7.x

在Search Guard插件tools目录中,当你在集群6.x中执行完“configuration backup“,可以使用sgadmin离线迁移存在的文件。
https://docs.search-guard.com/latest/sgadmin-configuration-changes
当你已经迁移后,你可以更新它们对于集群7.x

./sgadmin.sh 
    --migrate-offline /path/to/configdirectory/  
    -cacert /path/to/root-ca.pem 
    -cert /path/to/admin-certificate.pem 
    -key /path/to/admin-certificate-key.pem  

Example:

./sgadmin.sh 
    -mo ../sgconfig/  
    -cacert ../../../root-ca.pem 
    -cert ../../../kirk.pem 
    -key ../../../kirk.key.pem    
4.7.2 配置认证和授权

Search Guard带有可插拔的身份验证和授权模块。根据你的用例和基础设施,你可以使用一个或多个身份验证和授权模块,如:

  • 1.Search Guard 内置用户
  • 2.LDAP 和 Active目录
  • 3.Kerberos
  • 4.JSON Web Token
  • 5.Proxy Authentication

5.Search Guard Health Check

接着上面讲,Search Guard安装最后呢,需要查看一下健康状态。
如果Search Guard已经安装,并且跑了起来,可以通过如下命令,查看健康状态。

https://<hostname>:9200/_searchguard/health

它的返回是一个JSON串。

{
  message: null,
  mode: "strict",
  status: "UP"
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值