Elasticsearch7.10 開發中配置偽叢集的TLS和身份驗證(基礎)
一、開發中配置偽叢集的TLS和身份驗證(基礎)
很詳細的配置,支援部落格主【https://knner.wang/】 連結
我這裡用到的是基礎板(免費的),自動申請Basic License,X-pack 的免費Auth和Node間的SSL。
1.建立三個Elasticsearch7.10的節點
在一個伺服器上,建立三個節點。解壓檔案,複製一個es-slave01和es-slave02,其中一個命名為master節點,好區分。
2.配置TLS和身份驗證檔案
在安全的叢集中,Elastic節點在與其他節點通訊時使用證照來標識自己。這個叢集必須驗證這些證照的真實性。推薦的方法
是信任指定的CA身份認證檔案,因此,當節點加入到叢集中時,它只需都擁有相同的CA簽署的證照,
這裡第一步是生成證照,然後把證照分發到子節點(好區分),其中一個命名為master節點。
在這個過程中,我們需要證照讓節點安全的通訊,會用到elasticsearch-certutil
的命令,此命令可以很快的生成證照。
流程:
ca證照–》更具ca證照,獲取node證照–》複製node證照到其他節點–》生成使用者密碼
1.master主節點生成node證照
- 在config目錄下
[~choleen config]mkdir certs
- 在linux系統中,
cd
進入elastic的bin目錄下,這個可以不啟動執行,執行此命令
[~choleen bin]./elasticsearch-certutil cert -out elastic-certificates.p12 -pass ""
對於這個命令elasticsearch-certutil
,可以輸入--help
來檢視幫助,我們來看它給解釋:
命令 | 含義 |
---|---|
elasticsearch-certutil | –help |
cert | 生成X.509的證照和密碼 |
ca | 生成一個新本地認證檔案,裡面包含了證照和金鑰 |
csr | 生成證照籤名 |
http | 對於這個Elastcsearch的http介面生成一個新的認證 |
cert | –help |
ca | 指向已經生成的ca金鑰檔案 |
ca-cert | 指向存在的ca認證檔案(節點之間認證) |
dns | 指定DNS域名 |
ip | 指定ip |
pass | 生成的私鑰密碼 |
out | 指定生成檔案路徑 |
name | 證照名字 |
執行之後,在根目錄生成了elastic-certificates.p12 檔案。
$ cd config
$ mkdir certs
$ mv ../elastic-certificates.p12 certs/
- 注意:
我這裡沒有使用$ /bin/elasticsearch-certutil ca -v
,只是為了快速的設定SSL
正常我們應該先生成ca證照,然後根據ca證照去生成node證照。
https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html
- 配置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
這裡的verification_mode配置方式:
full
,認證證照是否通過信任的CA證照籤發,同時認證server的hostname 或者 IP 地址是否匹配證照中配置的cretificate
,只認證證照是否通過信任的CA證照籤發的none
,什麼也不認證,相當於關閉了SSL/TLS認證,僅用於你非常相信的安全的環境
- 啟動master節點,生成叢集密碼
$ bin/ elasticsearch-setup-passwords interactive
手動設定密碼,elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user,都有這些使用者。
登入時會用到。
- Elastic節點配置TLS
由於不是後臺執行,開啟一個新的終端,拷貝node證照(cert檔案)到位元組的的config/certs目錄下。
節點中node.master: false,不能為true。
在其他節點中增加,就是xpck.security.*鍵設定為master一樣。
$ echo "xpack.security.enabled: true" >> elasticsearch.yml
$ echo ''xpack.security.transport.ssl.enabled: true" >> elasticsearch.yml
$ echo ''xpack.security.transport.ssl.verification_mode: certificate" >> elasticsearch.yml
$ echo ''xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12" >> elasticsearch.yml
$ echo ''xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12" >> elasticsearch.yml
- 執行其他兩個節點,
$ bin/elasticsearch
最後看其他兩個節點加入進去沒有。
- Kibana中設定安全
elasticsearch.username: "kibana"
elasticsearch.password: "admin123"
執行命令 bin/kibana --allow-root
開啟瀏覽器,輸入 http://localhost:5601
這裡的密碼,我們可以使用elastic超級使用者進行登入,就是來自setup-password
命令。
- Kibana中可以設定Role和User
-
role
-
user
先生成證照
- 執行命令
$ bin/elasticsearch-certutil ca -v
- 其中
Please enter the desired output file [elastic-stack-ca.p12]: # 輸入儲存的ca檔名稱
Enter password for elastic-stack-ca.p12 : # 輸入證照密碼,我們這裡留空
- 在生成node證照時,使用
$ bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 其中
Enter password for CA (elastic-stack-ca.p12) : # 輸入CA證照的密碼,我們這裡沒有設定,直接回車
Please enter the desired output file [elastic-certificates.p12]: # 輸入證照儲存名稱,保值預設直接回車
Enter password for elastic-certificates.p12 : # 輸入證照的密碼,留空,直接回車
這種根據CA證照籤署生成的node證照elastic-certificates.p12,包含有node證照、CA證照、私鑰
3. 檢視節點命令
- 檢視節點資訊
$ curl localhost:9200/_cat/nodes?v
- 檢視節點狀態
$ curl localhost:9200/_cat/health
- 檢視每臺機器的屬性
$ curl localhost:9200/_cat/nodeattrs
相關文章
- redis偽叢集配置Cluster叢集模式Redis模式
- JavaScript身份證真偽查驗介面廠家有哪些?身份證查詢真偽JavaScript
- C++批次核驗身份證真偽、實名認證介面、身份證識別C++
- 搭建zookeeper叢集(偽叢集)
- 身份證如何查驗真偽?C#身份證二要素、三要素介面整合C#
- 管理 ES 叢集:管叢集身份認證與使用者鑑權
- 中國身份證號驗證庫
- HTTPS加密過程和TLS證書驗證HTTP加密TLS
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- node實現基於token的身份驗證
- 企業微信開發——身份驗證模組
- 手動驗證 TLS 證書TLS
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- Rust中實現JWT身份驗證RustJWT
- 身份證驗證工具類
- 基於區塊鏈的身份認證系統開發區塊鏈
- 別再上當受騙,使用身份證真偽線上核驗工具!
- Docker開啟TLS和CA認證DockerTLS
- 零知識證明在隱私保護和身份驗證中的應用
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- hadoop叢集配置和啟動Hadoop
- Kerberos 身份驗證在 ChunJun 中的落地實踐ROS
- ActiveMQ+ZooKeeper 偽叢集整合MQ
- 【PTA】查驗身份證
- PHP 驗證身份證號碼PHP
- C++身份證號驗證C++
- 分散式技術的基礎應用:數字貨幣和身份認證分散式
- 驗證碼安全基礎
- webpack(11)配置檔案分離為開發配置、生成配置和基礎配置Web
- Welcome to YARP - 5.身份驗證和授權
- Spring Boot中的Firebase身份驗證+Firestore整合原始碼Spring BootREST原始碼
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- Apple MDM 工具中存在身份驗證漏洞APP
- js正則驗證身份證號JS
- python - 驗證身份證合法性Python
- 客戶端身份驗證客戶端
- 舊香港身份證校驗
- kafka SASL/PLAIN 身份驗證KafkaAI