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/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

发表回复

登录后才能评论