記錄一下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和端口后就可以對整個集群進行各種操作,刪索引,改數(shù)據(jù)等。在重要的項目應(yīng)用中,需要防范這一點。
目前常見的安全防范方式有,
- 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賦權(quán) - 運行
install_demo_configuration.sh,此時該腳本會將秘鑰文件生成,并cp到/config下,同時append sg配置內(nèi)容到/config/elasticsearch.yml

sg自動append的esyml
啟動es,正常。
通過瀏覽器訪問es集群,不正常,報錯如下,

SSLException
應(yīng)該是瀏覽器沒有建立ssl鏈接,沒有深究這方面,換了一種方式,即在esyml里把SSL關(guān)閉。
- 關(guān)閉SSL

esyml

es login succeeded

sg demo config
sg自定義1
基于demo生成的證書,直接修改原有賬戶名及其密碼,
- 生成hash新密碼

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

image.png
- 分發(fā)新配置到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
- 分發(fā)新配置到es集群

重啟使之生效