Elasticsearch修改密碼詳解

Elasticsearch是一種開源的搜索引擎,被大多數人用來作為數據存儲。如果你是 Elasticsearch 的用戶,你可以使用默認密碼”changeme” 登錄,但是這個密碼是不安全的。在保證數據安全性的基礎上,我們需要修改 Elasticsearch 的默認密碼,使其更加安全。

一、Elasticsearch修改密碼的準備工作

在進行 Elasticsearch 修改密碼之前,需要確認以下三個方面的準備工作:

1.確認Elasticsearch版本

確認 Elasticsearch 的版本,因為每個版本的語法不完全相同,這是區別最大的地方。假設你使用的是 Elasticsearch 2.x,那麼下文中的文本方案將不適用於 Elasticsearch 5.x 以上版本。

2.創建管理員用戶並賦權

在 Elasticsearch 中,我們需要創建一個具有管理員權限的用戶。使用管理員用戶具有以下兩個好處:

  • 提升 Elasticserch 數據庫安全性
  • 管理員用戶擁有更多權限,可以做一些不同於普通用戶的操作

3.安裝Java的訪問工具curl或使用Postman

Curl是一個在 UNIX平台下利用URL語法傳輸文件和數據的工具,可以用來發送 HTTP/HTTPS/FTP 等請求。 在我們的例子中,我們可以使用Curl或Postman來發送修改 Elasticsearch 密碼的請求,所以在你開始前,你需要確保其已安裝。

二、Elasticsearch修改密碼過程

1.啟用X-Pack 安全特性

X-Pack提供了安全、監控、報告和機器學習等功能,當然也包括了安全特性。


./bin/elasticsearch-plugin install x-pack

啟用X-Pack 安全特性的操作很簡單,只需要在安裝目錄下執行以下命令即可:


./bin/elasticsearch-setup-passwords interactive

在執行完以上命令後,你會看到如下的安全選項:


Modify Passwords

A built-in user database is enabled, but you haven't defined any users yet.
Would you like to create a user with the "superuser" role?
[createdefaultusers=Y/n]

這裡建議創建一個具有管理員權限的用戶,操作如下:


Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Passwords changed successfully!

輸入以上的登錄名和密碼即可創建具有管理員權限的用戶。

2.修改Elasticsearch管理員密碼

建議將初始密碼修改為更高安全性的密碼。在進行 Elasticsearch 修改密碼之前,先用創建的管理員用戶使用以下命令獲取 Elasticsearch的一些基本信息:


curl -u user:password 'http://localhost:9200/'

輸入服務器的 IP 地址和端口,用創建的管理員用戶訪問 Elasticsearch。如果訪問成功,你會看到 Elasticsearch 的基本信息。

在這之後,使用以下命令修改 Elasticsearch 管理員密碼:


curl -XPUT -u user:password 'http://localhost:9200/_security/user/elastic/_password' -H "Content-Type: application/json" -d'
{
  "password": "newpassword"
}
'

請將 user 替換成具有管理員權限的用戶名,password 替換成用戶名的登錄密碼,newpassword 替換成你要設置的新密碼。

三、避免Elasticsearch數據受到攻擊

1.使用HTTPS

使用 HTTPS 可以避免數據中途被攻擊者截獲。在 Elasticsearch 中,可以使用 x-pack 進行設置。首先需要安裝 x-pack,之後在 Elasticsearch 配置文件中添加以下參數:


xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.cert: /path/to/cert
xpack.security.http.ssl.key: /path/to/key
xpack.security.http.ssl.key_passphrase: yourpassword

其中,/path/to/cert 表示證書路徑,/path/to/key 表示私鑰路徑,yourpassword 表示私鑰密碼。

2.禁止遠程訪問

對於一些內部使用的 Elasticsearch 數據庫,建議禁止遠程訪問。在 Elasticsearch 配置文件中添加以下參數:


network.host: localhost

這樣,Elasticsearch 只能在本地訪問。

3.定期備份數據

儘管 Elasticsearch 可以確保最高的數據安全性,最好每天都備份數據。備份數據可以在數據丟失時用於恢復。

四、總結

在沒有修改 Elasticsearch 初始密碼時,Elasticsearch 是非常容易受到攻擊的。通過創建管理員用戶、修改管理員密碼、使用 HTTPS 等方法,可以很好地保護 Elasticsearch 數據庫的安全性。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156955.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:59
下一篇 2024-11-18 01:59

相關推薦

  • Elasticsearch API使用用法介紹-get /_cat/allocation

    Elasticsearch是一個分布式的開源搜索和分析引擎,支持全文檢索和數據分析,並且可伸縮到上百個節點,處理PB級結構化或非結構化數據。get /_cat/allocation…

    編程 2025-04-28
  • Elasticsearch Scroll Java的使用指南

    本文旨在詳細介紹如何使用Elasticsearch Scroll Java。Elasticsearch Scroll Java是一種高效的遍歷大型數據集的方法。通過它,我們可以逐個…

    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25

發表回復

登錄後才能評論