前言
es之前版本一直無用戶驗證功能,不過官方有提供一x-pack,但是問題是付費。在es的6.3.2版本中,已經集成了x-pack,雖然es團隊已經對x-pack開源,但是在該版本中如果需要使用到安全加密功能,依然還是需要付費購買license,search guard社區版可以免費提供用戶驗證功能
1.安裝環境
| 程序 | 版本 | 安裝方式 |
|---|---|---|
| elasticsearch | 6.6.3 | rpm |
| kibana | 6.6.1 | rpm |
| java | 1.8.0 | tar |
| centos | 6.6 | / |
es安裝環境
| elasticsearch node | hostname |
|---|---|
| 10.124.147.22 | 10-124-147-22 |
| 10.124.147.23 | 10-124-147-23 |
| 10.124.147.32 | 10-124-147-32 |
2.search guard安裝
官方安裝文檔>> 點擊我
安裝有兩種方法,本次選用快速安裝,其中涉及到https的自簽證書,官方不是很推薦,不過可以使用
2.1 在elasticsearch安裝
-找到elasticsearch的bin目錄/usr/share/elasticsearch/bin/
[root@10-124-147-22 bin]# pwd
/usr/share/elasticsearch/bin
[root@10-124-147-22 bin]# ./elasticsearch-plugin install com.floragunn:search-guard-6:6.3.2-22.3
install 后面的鏈接地址,依自己的es版本進行選擇Artifact選項中的值,相關鏈接>>點擊我
進行demo模式的安裝
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# bash install_demo_configuration.sh
依按說明三個Y確認即可
同時在其它node之上進行安裝並重啟es
2.2 測試elasticsearch上的安裝
web訪問 安裝該es節點的9200端口,
如本安裝過程中,訪問https://10.124.147.22:9200/_searchguard/authinfo
需要注意的是,此處是https而非http
默認用戶名與密碼均為admin
如果打印了admin的json信息,則安裝ok
2.3在kibana上安裝
1.停止kibana
2.進入kibana的plugin目錄
[root@10-124-147-22 bin]# pwd
/usr/share/kibana/bin
[root@10-124-147-22 bin]# ./kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.3.1-14-beta-1/search-guard-kibana-plugin-6.3.1-14-beta-1.zip
url地址在官網上查找>>點擊我
需要找對自己的版本,安裝之時,在kibana 6.3.2的時候,search guard暫時還未出現其適配版,所以將kibana降級為6.3.1
3.kibana配置文件更新
kibana配置文件需要加入以下
[root@10-124-147-22 bin]# grep ^[^#] /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "https://localhost:9200"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
elasticsearch.ssl.verificationMode: none
elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
xpack.monitoring.enabled: false
xpack.graph.enabled: false
xpack.ml.enabled: false
xpack.watcher.enabled: false
xpack.security.enabled: false
在es的6.3.2版本中,已經集成了x-pack,雖然es團隊已經對x-pack開源,但是在該版本中如果需要使用到安全加密功能,依然需要付費購買license,對於后面對xpack的控制選項在search guard中並未提供,但是實際測試的時候,需要添加,否則kibana無法正常啟動
需要注意的是es的url由http變成https
2.4 kibana的search guard測試
web訪問5601端口即可
用戶名與密碼名均為admin
進入之后,可以看到左側菜單欄多出search guard選項,即表示安裝ok
3.kibana中search guard默認密碼的更改
1.生成新的密碼
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# ./hash.sh -p letv.bigdata
$2y$12$nwfMezsKdWhPMoj5iqZ/6.H9RpXFvDbd59K1mTxqWmH8IY/bFWSXm
2.修改sg_internal_users.yml配置文件
將其中hash之后的密碼替換成剛才生成的密碼,配置文件路徑為/usr/share/elasticsearch/plugins/search-guard-6/sgconfi/sg_internal_users.yml
#password is: letv.bigdata
admin:
#readonly: false
hash: $2y$12$nwfMezsKdWhPMoj5iqZ/6.H9RpXFvDbd59K1mTxqWmH8IY/bFWSXm
roles:
- admin
attributes:
#no dots allowed in attribute names
attribute1: value1
attribute2: value2
attribute3: value3
3.注釋掉readonly選項
當打開此選項之時,在kibana上面無法修改admin用戶密碼
4.生效search guard配置文件
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# ./sgadmin_demo.sh
如果沒有重載search guard配置文件,即使重啟了es,也無法生效
