在 8.0 中,我們很高興為所有用戶帶來簡化的安全功能。 從 7.1 開始,我們向所有人免費提供了確保 Elastic Stack 安全所需的所有功能。
然而,我們知道設(shè)置安全性并不好玩,你需要專注于你的項目目標。 好消息給你! 從 8.0 開始,自管理集群默認啟用 Elastic Stack 安全性,配置工作幾乎為零。 只需啟動新的 Elasticsearch 和 Kibana 版本并繼續(xù)充分利用 Elastic Stack,我們將為你提供支持! 如果你使用的是 Elastic Cloud,請不要擔心——我們已經(jīng)為你解決了安全問題。
Elastic Stack 8.0 安裝介紹
Elastic Stack 8.0 安裝介紹_嗶哩嗶哩_bilibili
輕松獲得所需的所有安全性
簡化的安全性包括以下功能,這些功能跨越多個層和產(chǎn)品,默認啟用:
- 用戶認證
- 具有基于角色的訪問控制的用戶授權(quán)
- Kibana Spaces 多租戶
- 使用 TLS 的加密節(jié)點到節(jié)點通信
- 使用 HTTPS 與 Elasticsearch API 進行加密通信
![]() |
根據(jù)他們的角色,輕松控制訪問你資源的人員及其訪問級別 |
使用空間(Spaces)輕松保護組織團隊或客戶的功能和資源 | |
通過節(jié)點身份驗證和加密通信,輕松安全地將節(jié)點添加到集群 | |
與 Elasticsearch 的通信是安全的。 通過 UI 一步輕松安全地連接 Kibana |
Stack Security 團隊對我們來說最重要的是,我們的用戶在安裝和運行 Elastic Stack 時可以從盡可能多的安全性中受益 —?同時消除任何摩擦。因此,我們設(shè)定了一個雄心勃勃的目標:以精簡、輕松和透明的方式提供所有之前列出的安全功能。我們認為你不應(yīng)該將時間花在繁瑣的配置上。同時,你不應(yīng)該在安全性上妥協(xié)。
此外,簡化的安全性不使用跨不同實例的通用默認值,當功能在技術(shù)上啟用但基于已知的“秘密”時,這會給人一種錯誤的安全感。相反,在引導(dǎo)過程中,每個新部署都會創(chuàng)建并使用唯一的憑證、證書和加密密鑰。
今天,我們很高興為你帶來這項雄心勃勃的計劃的成果。
如果你使用 Elastic 的托管云服務(wù)或編排產(chǎn)品、Elastic Cloud Enterprise (ECE) 和 Elastic Cloud on Kubernetes (ECK),你不會有任何變化——堆棧安全性已默認配置。
要開始使用,只需啟動 Elasticsearch 和 Kibana,使用新的 Web UI 將它們連接起來,它們就可以安全地協(xié)同工作,開箱即用。當然,你可以自定義任何你需要的內(nèi)容,以滿足你組織的安全要求。
分兩步安全啟動新部署
首次下載并運行 Elasticsearch 時,你將收到一個注冊令牌和 elastic 超級用戶的憑據(jù)。 這實際上是你啟動 Elastic Stack 并使用我們之前描述的安全功能運行所需的所有信息,因此請妥善保管。你可以在官方的地址找到詳細的描述。當我們首次運行 Elasticsearch 時:
bin/elasticsearch
當 Elasticsearch 啟動后,你需要像后滾動你的屏幕,并看到如下所示的內(nèi)容:
如上所示,我們看到超級用戶 elastic 的密碼及 Kibana 的 enrollment token (注冊 token)。我們需要拷貝它們供以后使用。我們可以使用如下的命令來得到證書的 fingerprint:
openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt
如果這個時候,我們在 Chrome 下去訪問 Elasticsearch 的地址 https://localhost:9200,我們會得到如下的信息:
顯然這是因為它是一個自簽名的證書而導(dǎo)致的。我們在這個屏幕上打入 thisisunsafe:
在上面的界面輸入之前生成的密碼:
如果你使用的是 Safari 瀏覽器:
?
最終,我們輸入用戶名及密碼:
如果大家覺得每次這樣很麻煩,我們可以把自簽名的證書加載到系統(tǒng)里去。我們可以這么做:
openssl x509 -in http_ca.crt -out cert.pem
上面的命令將會生成一個 cert.pem 的文件。我們可以直接把它拖進 macOS 中的 keychain access 中:
?最終,我們可以看到:
?這樣,當我們再次使用 https://localhost:9200 來訪問時:
?
我可以直接就進入到登錄頁面了。關(guān)于其它操作系統(tǒng)的證書安裝,我在這里就不再贅述了。你可以參考文章 “Security:如何安裝 Elastic SIEM 和 EDR” 閱讀更多關(guān)于更新證書方面的知識。
我們接下來啟動 Kibana:
bin/kibana
?如上所示,它讓我們?nèi)ド厦娴逆溄尤ヅ渲?Kibana:
我們把之前的 Elasticsearch 運行輸出的 enrollment token 拷貝進來。?點擊上面的 Configure Elastic。Kibana 將設(shè)置所有內(nèi)容,無需進行任何配置,并將通過 TLS 連接到 Elasticsearch。
設(shè)置完成后,你就可以開始了。 使用 Elasticsearch 步驟中提供的憑據(jù)以超級用戶身份登錄,然后開始使用新的安全部署。
我們拷貝之前在 Elasticsearch 中輸出的密碼,并輸入到上市的 Password 輸入框中。點擊 Log in:
這樣我們就進入到 Kibana 的界面中了。 請注意在上面的 Kibana 中,它的訪問地址不是 https 形式的,而是?http 的,所以你可以通過 http://localhost:9200 來進行訪問。
如果你需要向集群添加更多節(jié)點,請通過運行:
bin/elasticsearch-create-enrollment-token -s node
獲取 Elasticsearch 注冊 token。
請記住,自動配置過程僅在第一次啟動新集群時執(zhí)行。 如果已經(jīng)設(shè)置了明確的安全配置,或者集群已經(jīng)從以前的版本升級,則不會進行任何更改。 升級助手將指導(dǎo)用戶完成從 7.17 升級所需的步驟。
我們可以在 config/kibana.yml 中找到這樣的配置(雖然在默認的情況下都已經(jīng)配置好了):
elasticsearch.serviceAccountToken: AAEAAWVsYXN0aWMva2liYW5hL215LXRva2VuOkVVbFBuY3VUUmNpZVBqbXU0S1Y2cGc
對于一些開發(fā)者來說,生成上面的 token 可能不是很清楚。我們可以使用如下的命令來生產(chǎn)上面的 token:
./bin/elasticsearch-service-tokens create elastic/kibana my-token
$ ./bin/elasticsearch-service-tokens create elastic/kibana my-token
SERVICE_TOKEN elastic/kibana/my-token = AAEAAWVsYXN0aWMva2liYW5hL215LXRva2VuOkVVbFBuY3VUUmNpZVBqbXU0S1Y2cGc
運用 Metricbeat 收集指標
如果你對如何使用 Beats 還不是很熟的話,那么請閱讀我之前的教程:
- Beats:Beats 入門教程 (一)
- Beats:Beats 入門教程 (二)
如何把域名訪問添加到 Elasticsearch 的訪問中去
如何把域名訪問添加到 Elasticsearch 的訪問中去_嗶哩嗶哩_bilibili
在上面的配置中,由于 https 的使用,我們在配置 Beats 需要注意一些問題。我們再次打開 Elasticsearch 的安裝目錄:
$ pwd
/Users/liuxg/elastic/elasticsearch-8.0.0
$ ls config/certs/
http.p12 http_ca.crt transport.p12
在 Elasticsearch 的 config 目錄中,我們可以看到一個叫做 http_ca.crt 的文件。我們把這個文件拷貝到一個目錄,或者直接到 Metricbeat 的安裝目錄下:
$ pwd
/Users/liuxg/elastic/metricbeat-8.0.0-darwin-x86_64
$ ls
LICENSE.txt http_ca.crt metricbeat.yml
NOTICE.txt kibana module
README.md logs modules.d
data metricbeat
fields.yml metricbeat.reference.yml
從上面,我們可以看到有一個叫做 http_ca.crt 的文件。接下來我們來配置 metricbeat.yml 文件:
metricbeat.yml
如上所示,我們已經(jīng)對 output.elasticsearch 進行了配置。
如果我們不想使用 ssl 進行安全驗證,我們也可以做如下的配置:
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
# Protocol - either `http` (default) or `https`.
protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "Y4f0Q2dVhbS1X_*b0+7B"
ssl.verification_mode: none
我們接下來運行如下的命令:
./metricbeat test config
$ ./metricbeat test config
Config OK
我們再接下來使用如下的命令來測試輸出:
./metricbeat test output
$ ./metricbeat test output
elasticsearch: https://localhost:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: ::1, 127.0.0.1
dial up... OK
TLS...
security... WARN server's certificate chain verification is disabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 8.0.0
上面標明我們的 output 配置是正確的。我們接下來使用如下的命令來 setup:
./metricbeat setup
$ ./metricbeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
它表明我們的命令的運行是成功的。如果你對 setup 命令有什么疑問的話,請參閱我之前的文章 “Beats:解密 Filebeat 中的 setup 命令”。
我們接下來使用如下的命令來運行 Metricbeat:
./metricbeat -e
我們回到 Kibana 的 Dashboard 中進行查看:
這樣,我們就看到了當前 host 的指標信息。?
關(guān)于其它 Beats 的配置和 Metricbeat 的配置類似。這里就不再贅述了。
使用 API key 來配置 Metricbeat
在上面配置 Metricbeat 的時候,我們嘗試使用用戶名及密碼來配置的。特別指出的是:在實際的使用中,千萬要避免使用 elastic 這個超級用戶來進行配置,因為它的權(quán)限太大了。強烈建議創(chuàng)建一個具有適當權(quán)限的一個用戶來進行配置。如果你還不知道該如何創(chuàng)建一個用戶,請參考文章 “Elasticsearch:用戶安全設(shè)置”。
我們也可以通過 Elasticsearch?控制臺生成 Elasticsearch API 密鑰,并將 Metricbeat?配置為使用新密鑰安全地連接到 Elasticsearch。
我們把上面的 API Key 拷貝出來,并針對 metricbeat.yml 做如下的配置:
$ ./metricbeat test config
Config OK
$ ./metricbeat test output
elasticsearch: https://localhost:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: ::1, 127.0.0.1
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 8.4.3
從上面的檢測結(jié)果中,我們可以看出來,配置及輸出測試是成功的。
$ ./metricbeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
我們接下來運行如下的命令就可以采集數(shù)據(jù)了:
./metricbeat -e
使用 fingerprint 來配置 Beats
我們還可以使用 fingerprint 來進行連接。Fingerprint 的好處是,我們不必把把證書拷貝到 Logstash 運行的服務(wù)器中。請參考 “Beats:使用 fingerprint 來連接 Beats/Logstash 和 Elasticsearch”
運用 Logstash 來采集數(shù)據(jù)
我們可以閱讀文章 “Logstash:如何連接到帶有 HTTPS 訪問的集群”。
快速了解一下是如何工作的
當你第一次下載并運行 Elasticsearch 時,Elasticsearch 將透明地執(zhí)行以下任務(wù):
- 為 TLS 設(shè)置:它將生成證書頒發(fā)機構(gòu)、傳輸和 HTTP 層證書,以及 TLS 舞蹈所需的所有相關(guān)“好東西”——當然包括私鑰、證書指紋等。它還將存儲密碼安全。
- 設(shè)置安全設(shè)置:這還包括用于傳輸和 HTTP 加密的設(shè)置:xpack.security.ssl.http.enabled 和 xpack.security.ssl.transport.enabled
- 準備傳入連接:它將生成一種特殊類型的令牌,即注冊令牌,它封裝了 Kibana 連接到 Elasticsearch 所需的所有信息,并啟用其注冊 API,該 API 會監(jiān)聽新連接。
- 為 elastic 內(nèi)置超級用戶生成密碼。
所有這些任務(wù)對用戶都是透明的。
現(xiàn)在,當用戶第一次運行 Kibana 時,他們只需要在新的 Kibana 啟動 UI 中輸入注冊令牌,Kibana 就會解壓縮所需的所有信息并連接到 Elasticsearch 。通過注冊請求,Elasticsearch 將為 kibana_system 用戶生成并設(shè)置密碼。 Kibana 會將配置和憑據(jù)保存在 kibana.yml 和密鑰庫中。
請注意,Kibana 不會通過瀏覽器啟用 Web HTTP TLS。這是我們建議考慮的附加步驟,以進一步提高系統(tǒng)的安全性。
如何配置 Elasticsearch 不帶安全性
在某些情況下,為了測試的方便,你可能需要我們的 Elasticsearch 集群不帶有安全,這樣更便于我們測試我們的軟件或應(yīng)用。我們在啟動 Elasticsearch 之前,我們必須對 Elasticsearch 的配置做一些修改:
config/elasticsearch.yml
xpack.security.enabled: false
xpack.security.http.ssl.enabled: false
我們把上面的兩行添加到 Elasticsearch 的配置文件中。然后啟動 Elasticsearch。這樣啟動后的 Elasticsearch 就沒有安全配置了。你可以通過 http://localhost:9200 來進行訪問。啟動后的 Kibana 我們也不需要輸入用戶名及密碼了。
如何配置 Elasticsearch 只帶有基本安全
在有些時候,我們并不希望配置 Elasticsearch 具有 HTTPS 的訪問。我們只想配置 Basic authentication。這個時候,我們在啟動 Elasticsearch 之前,針對 Elasticsearch 的配置文件做如下的修改:
config/elasticsearch.yml
xpack.security.enabled: true
xpack.security.http.ssl.enabled: false
然后,我們依據(jù)之前的文章 “Elasticsearch:設(shè)置 Elastic 賬戶安全” 來配置 Elasticsearch 及 Kibana 即可。
另外一中配置的方法是:完全按照本文章剛開始的步驟選擇默認的方式先安裝,這樣集群具有 HTTPS 的訪問。讓后我們需要做如下的修改:
- config/elasticsearch.yml
我們需要修改上面的配置?xpack.security.http.ssl.enabled 為 false。然后重新啟動 Elasticsearch。經(jīng)過這樣的修改 Kibana 將不能正常訪問 Elasticsearch,這是因為 Elasticsearch 的訪問地址現(xiàn)在是 HTTP 而不是之前的 HTTPS。為此,我們需要重新修改 Kibana 的配置。
- config/kibana.yml?
在上面,我們需要針對?elasticsearch.hosts 進行修改。之前的?https://192.168.0.3:9200 修改為?http://192.168.0.3:9200 的訪問。重新啟動 Kibana 即可。
對 Elastic Stack、Elastic 解決方案和其他產(chǎn)品的影響
我們希望你確信安全性按預(yù)期工作。我們現(xiàn)在只允許加載我們的 Elasticsearch 安全模塊——不再可以用可以攔截和管理傳入 REST 請求的第三方插件替換它。
至于解決方案,Elastic Observability、Security 和 Enterprise Search 已經(jīng)假設(shè) Stack Security 已啟用。這里沒有任何變化,只是設(shè)置這些組件會更容易(因為默認情況下已經(jīng)啟用了堆棧安全性)。其他產(chǎn)品(如 Elastic Agent)會自動設(shè)置為安全連接 Elasticsearch。
立即開始使用 Elastic Stack 8.0
下載 Elasticsearch 和 Kibana 以創(chuàng)建安全的 Elastic Stack 部署。如果你想了解有關(guān)簡化安全性的更多信息,請參閱我們的指南。否則,你可以在 Elasticsearch 服務(wù)上啟動安全且免費的云試用部署,開始你的搜索、觀察和保護之旅。文章來源:http://www.zghlxwxcb.cn/news/detail-404217.html
我們歡迎你的反饋,并且一如既往,你可以在 Twitter (@elastic) 和 Elastic 論壇上找到我們。文章來源地址http://www.zghlxwxcb.cn/news/detail-404217.html
到了這里,關(guān)于Elastic Stack 8.0 安裝 - 保護你的 Elastic Stack 現(xiàn)在比以往任何時候都簡單的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!