记录一下searchguard-6的安装和配置过程,目录如下,
0. Overview
1. 版本
2. 安装search guard
- sg plugin installation
- sg demo quick installer
- sg自定义1
- sg自定义2
3. Reference
Overview
elasticsearch在暴露了一个node的ip和端口后就可以对整个集群进行各种操作,删索引,改数据等。在重要的项目应用中,需要防范这一点。
目前常见的安全防范方式有,
- X-Pack Elasticsearch Security,收费License
- Search Guard,免费开源
下面就Search Guard,将其最小化安装到es集群。
版本
- elasticsearch-6.4.2.tar.gz
- search-guard-6-6.4.2-23.1.zip
安装search guard
sg plugin installation
- tar -zxvf elasticsearch-6.4.2.tar.gz
- cd elasticsearch-6.4.2
- bin/elasticsearch-plugin install -b file:///path/to/search-guard-6-6.4.2-23.1.zip

sg plugin install success
sg demo quick installer

run demo installer, failed

run demo installer2, succeeded
- 对
install_demo_configuration.sh赋权 - 运行
install_demo_configuration.sh,此时该脚本会将秘钥文件生成,并cp到/config下,同时append sg配置内容到/config/elasticsearch.yml

sg自动append的esyml
启动es,正常。
通过浏览器访问es集群,不正常,报错如下,

SSLException
应该是浏览器没有建立ssl链接,没有深究这方面,换了一种方式,即在esyml里把SSL关闭。
- 关闭SSL

esyml

es login succeeded

sg demo config
sg自定义1
基于demo生成的证书,直接修改原有账户名及其密码,
- 生成hash新密码

hash new password
- 修改
/sgconfig/sg_internal_users.yml

image.png
- 分发新配置到es集群
cd ./plugins/search-guard-6/tools
./sgadmin.sh -cd ../sgconfig/ -icl -nhnv \
-cacert ../../../config/root-ca.pem \
-cert ../../../config/kirk.pem \
-key ../../../config/kirk-key.pem

snapshot of new account and password
sg自定义2
sg可以自定义密码和加密方式。首先下载ssl生成工具,然后进行自定义配置,
- git clone --depth=1 https://github.com/floragunncom/search-guard-ssl.git
- 配置ca

root-ca

signing-ca
- 配置生成脚本
example.sh

root,node,client的ca生成配置
- cp生成的node证书到es/config
- 首先在es/config删除demo生成的(
*.pem) - cp search-guard-ssl的
node-*-keystore.jks和truststore.jks到es/config
- 配置esyml

esyml
cp生成的client证书到/plugins/search-guard-6/sgconfig/
修改
/sgconfig/sg_internal_users.yml

生成hash password

配置sg_internal_users.yml
- 分发新配置到es集群

重启使之生效