記錄一下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集群
重啟使之生效