一:叢集身份認證與使用者鑒權
elasticsearch預設是沒有開啟任何安全防範措施的,任何人隻要知道了IP和端口就可以通路資料。為此,可以通過x-pack插件開啟使用者身份認證與鑒權功能。
1.安裝x-pack
下載下傳安裝包x-pack-6.2.3.zip
elasticsearch上安裝x-pack
在每個es節點上執行 bin/elasticsearch-plugin install file:x-pack-6.2.3.zip
kibana上安裝x-pack
在安裝kibana的機器上執行 bin/kibana-plugin install file:x-pack-6.2.3.zip
2.更改 elasticsearch 的密碼
在 elasticsearch/bin/x-pack下,執行./setup-passwords interactive然後回車設定密碼。
隻需在一台機器上執行,其他節點隻要安裝了x-pack插件就可以直接加入,無需再設定密碼。
3.kibana上設定es密碼
打開 kibana.yml 設定:
elasticsearch.username: "*****" elasticsearch.password: "*****"
二:叢集内部安全通信
es從6.8開始提供了多項安全功能。通過TLS可以加密通信,防止被抓包洩露敏感資訊。
TLS:TLS協定要求Trusted Certificate Authority(CA)簽發的X.509的證書
證書認證的不同級别
- Certificate:節點加入叢集需要使用想用CA簽發的證書
- Full Verfication:節點加入叢集需要使用想用CA簽發的證書,還需要驗證Hostname或IP位址
- No Verfication:任何節點都可以加入,開發環境用于診斷目的
1. 生成CA憑證 bin/elasticsearch-certutil ca (CA憑證:elastic-stack-ca.p12)
2. 生成節點證書 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 (節點證書:elastic-certificates.p12)
在config目錄下建立certs檔案夾,将elastic-stack-ca.p12和elastic-certificates.p12拷貝到certs下
3. 編輯配置檔案,開啟證書通路 編輯配置檔案/etc/elasticsearch/elasticsearch.yml,添加如下配置 ```yml xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate # 證書認證級别 xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
将上面步驟生成的elastic-certificates.p12證書複制到另外兩個es節點上對應的/etc/elasticsearch/檔案夾中,同時将上面
xpack.security.*配置選項也都複制到對應節點的elasticsearch.yml檔案裡
4.重新啟動節點
三:叢集與外部間的安全通信
1. 編輯配置檔案,開啟elasticsearch https服務 編輯配置檔案/etc/elasticsearch/elasticsearch.yml,添加如下配置 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate # 證書認證級别 xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
重新開機服務
2.配置kibana連接配接https
1)使用openssl将證書轉化為.pem格式
在es安裝目錄下運作
openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -out elastic-ca.pem
将其拷貝到certs目錄下
2)在kibana目錄下編輯kibana配置檔案,添加如下配置
elasticsearch.hosts:["https://localhost:9200"]
elasticsearch.ssl.certificateAuthorities:["elastic-ca.pem路徑"]
elasticsearch.ssl.vertificationMode: certificate\
3)重新開機kibana服務
這樣,kibana就可以連接配接開啟https後的es叢集了~