你的Elasticsearch在“裸奔”吗?

简介: 文章来源于阿里云 MVP铭毅。

题记

安全事件频发,
image.png
image.png

2018上半年的群友的讨论:
image.png

http://www.safedog.cn/news.html?id=3212
https://www.easyaq.com/news/1184405110.shtml

安全隐患划重点:
1、印度:没有设置Elasticsearch集群安全权限;
2、婚庆网站:Elasticsearch服务器暴露到公网。
3、群友:9200端口映射到外网。

保障Elasticsearch单节点或者集群网络安全必须提上日程!!

该如何保障Elasticsearch集群的网络安全呢?

1、不要将Elasticsearch暴露到Internet

必须强调这一点。即使在开发和测试中,也没有理由让您的集群暴露于公共IP。
异地联调,外网访问的场景各大公司都存在,但请千万别 “裸奔”。

1.1 防火墙:限制公共端口
限制9200—— 集群对外访问端口

 

iptables -A INPUT -i eth0 -p tcp --destination-port 9200 -s {PUBLIC-IP-ADDRESS-HERE} -j DROP
1

限制9300——集群内部通信端口

 

iptables -A INPUT -i eth0 -p tcp --destination-port 9300 -s {PUBLIC-IP-ADDRESS-HERE} -j DROP
1

限制5601——kibana访问端口

 

iptables -A INPUT -i eth0 -p tcp --destination-port 5601 -s {PUBLIC-IP-ADDRESS-HERE} -j DROP
1

在此之后你可以放松一下! Elasticsearch将无法再从Internet访问。

1.2仅将Elasticsearch端口绑定到内网专有IP地址
将elasticsearch.yml中的配置更改为仅绑定到私有IP地址或将单个节点实例绑定到环回接口:

 

network.bind_host: 127.0.0.1
1

1.3在Elasticsearch和客户端服务之间添加专用网络
如果您需要从另一台计算机访问Elasticsearch,请通过VPN或任何其他专用网络连接它们。
在两台机器之间建立安全隧道的快速方法是通过SSH隧道:

 

ssh -Nf -L 9200:localhost:9200 user@remote-elasticsearch-server
1

然后,您可以通过SSH隧道从客户端计算机访问Elasticsearch

 

curl http://localhost:9200/_search
1

2、使用Nginx进行身份验证和SSL / TLS

有几个开源和免费解决方案提供Elasticsearch访问身份验证,但如果你想要快速和简单的东西,这里是如何使用Nginx自己做

2.1 Nginx 自己生成

步骤1: 生成密码文件

 

printf "esuser:$(openssl passwd -crypt MySecret)n" > /etc/nginx/passwords
1

步骤2:
如果您没有官方证书,则生成自签名SSL证书…

 

sudo mkdir /etc/nginx/ssl

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout

/etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

1
2
3
4

步骤3:
使用SSL添加代理配置并激活基本身份验证到/etc/nginx/nginx.conf
(注意我们期望/ etc / nginx / ssl /中的SSL证书和密钥文件)。 例:

 

define proxy upstream to Elasticsearch via loopback interface in

http {

upstream elasticsearch {

server 127.0.0.1:9200;

}

}

server {

enable TLS

listen 0.0.0.0:443 ssl;

ssl_certificate /etc/nginx/ssl/nginx.crt;

ssl_certificate_key /etc/nginx/ssl/nginx.key

ssl_protocols TLSv1.2;

ssl_prefer_server_ciphers on;

ssl_session_timeout 5m;

ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";

Proxy for Elasticsearch

location / {

auth_basic "Login";

auth_basic_user_file passwords;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_set_header X-NginX-Proxy true;

use defined upstream with the name "elasticsearch"

proxy_pass http://elasticsearch/;

proxy_redirect off;

if ($request_method = OPTIONS ) {

add_header Access-Control-Allow-Origin "*";

add_header Access-Control-Allow-Methods "GET, POST, , PUT, OPTIONS";

add_header Access-Control-Allow-Headers "Content-Type,Accept,Authorization, x-requested-with";

add_header Access-Control-Allow-Credentials "true";

add_header Content-Length 0;

add_header Content-Type application/json;

return 200;

重新启动Nginx并尝试通过访问Elasticsearch

 

https://localhost/_search
1

2.2 Elasticsearch官方安全工具xpack

6.3版本之后已经集成在一起发布, 无需额外安装。
但属于收费功能,免费试用1个月。
如果是土豪用户,不妨一买。

2.3 Elasticsearch的第三方安全插件

您可以安装和配置Elasticsearch的几个免费安全插件之一以启用身份验证:

Github上提供了Elasticsearch的 ReadonlyREST插件。
它提供不同类型的身份验证,从基本到LDAP,以及索引和操作级访问控制。
git地址:https://github.com/sscarduzio/elasticsearch-readonlyrest-plugin
SearchGuard是Elasticsearch的免费安全插件(部分高级功能收费),包括基于角色的访问控制和SSL / TLS加密的节点到节点通信。
每个Elasticsearch集群都可以使用其他企业功能,如LDAP身份验证或JSON Web令牌身份验证。

3、审计和警报

与保存敏感数据的任何类型的系统一样,您必须非常密切地 监控它。
这意味着不仅要监控其各种 指标(其突然变化可能是问题的早期迹象),还要观察其 日志。

许多监控供应商都支持Elasticsearch。应该收集日志并将其实时发送到日志管理服务,其中需要设置 警报以监视任何 异常或可疑活动等。

对指标和日志发出警报意味着您将尽早发现安全漏洞,并采取适当的措施,希望能够防止进一步的损害。

4、备份和恢复数据

Elasticdump是一个非常方便的工具,可以根据Elasticsearch查询备份/恢复或重新索引数据。
要备份完整索引,`Elasticsearch快照API ](https://www.elastic.co/guide/en/elasticsearch/reference/6.5/modules-snapshots.html)是正确的工具。 快照API提供了创建和恢复整个索引,存储在文件或Amazon S3存储桶中的快照的操作。

我们来看一下Elasticdump和快照备份和恢复的一些示例。

1)安装包含 node package manager的elasticdump包。

 

npm i elasticdump -g
1

2)将查询语句备份为zip文件。

 

elasticdump --input='http://username:password@localhost:9200/myindex' --searchBody '{"query" : {"range" :{"timestamp" : {"lte": 1483228800000}}}}' --output=$ --limit=1000 | gzip > /backups/myindex.gz
1

3)从zip文件中恢复。

 

zcat /backups/myindex.gz | elasticdump --input=$ --output=http://username:password@localhost:9
1

5、使用最新的Elasticsearch版本。

这是一般的最佳实践,因为在旧版本中,版本5.x中存在特定的漏洞。如果您仍在使用1.x或2.x,请务必 禁用动态脚本。 Elasticsearch允许使用脚本来评估自定义表达式,但正如Elastic所记录的那样,使用non-sandboxed 语言可能是一个问题。
当前最新版本6.5.x,新增了space功能,安全+角色划分更增强一步!
在这里插入图片描述
参考:
https://logz.io/blog/securing-elasticsearch-clusters/
https://sematext.com/blog/elasticsearch-security-authentication-encryption-backup/

文章转载自阿里云 MVP铭毅,查看原文

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
8天前
|
人工智能 安全 API
CoPaw:5分钟部署你的 AI助理
源自阿里巴巴开源生态的个人 AI 助理——CoPaw。作为阿里倾力打造的开源力作,CoPaw 完美打通钉钉、飞书、Discord 等多平台对话通道,支持定时任务自动化。内置 PDF/Office 深度处理、新闻摘要等强大技能,更开放自定义扩展接口。坚持数据全程私有化部署,绝不上传云端,让每一位用户都能在大厂技术加持下,拥有安全、专属的智能助手。
|
10天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
11580 97
|
8天前
|
人工智能 安全 JavaScript
阿里云上+本地部署OpenClaw(小龙虾)新手攻略:解锁10大必备Skills,零基础也能玩转AI助手
2026年,开源AI代理工具OpenClaw(昵称“小龙虾”)凭借“能实际做事”的核心优势,在GitHub斩获25万+星标,成为现象级AI工具。它最强大的魅力在于可扩展的Skills(技能包)系统——通过ClawHub插件市场的数百个技能,能让AI助手从简单聊天升级为处理办公、学习、日常事务的全能帮手。
7591 27
|
6天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
5721 11
|
9天前
|
人工智能 自然语言处理 机器人
保姆级教程:Mac本地搭建OpenClaw及阿里云上1分钟部署OpenClaw+飞书集成实战指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年最热门的开源个人AI助手平台,以“自然语言驱动自动化”为核心,支持对接飞书、Telegram等主流通讯工具,可替代人工完成文件操作、日历管理、邮件处理等重复性工作。其模块化架构适配多系统环境,既可以在Mac上本地化部署打造私人助手,也能通过阿里云实现7×24小时稳定运行,完美兼顾隐私性与便捷性。
7024 17
|
2天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
2961 7
|
4天前
|
人工智能 JavaScript 测试技术
保姆级教程:OpenClaw阿里云及本地部署+Claude Code集成,打造全能 AI 编程助手
在AI编程工具百花齐放的2026年,Anthropic推出的Claude Code凭借72.5%的SWE-bench测试高分、25倍于GitHub Copilot的上下文窗口,成为开发者追捧的智能编程助手。但单一工具仍有局限——Claude Code擅长代码生成与审查,却缺乏灵活的部署与自动化执行能力;而OpenClaw(前身为Clawdbot)作为开源AI代理框架,能完美弥补这一短板,通过云端与本地双部署,实现“代码开发-测试-部署”全流程自动化。
2152 13
|
11天前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
6798 17
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
4天前
|
人工智能 JSON API
保姆级教程:OpenClaw阿里云及本地部署+模型切换流程+GLM5.0/Seedance2.0/MiniMax M2.5接入指南
2026年,GLM5.0、Seedance2.0、MiniMax M2.5等旗舰大模型相继发布,凭借出色的性能与极具竞争力的成本优势,成为AI工具的热门选择。OpenClaw作为灵活的AI Agent平台,支持无缝接入这些主流模型,通过简单配置即可实现“永久切换、快速切换、主备切换”三种模式,让不同场景下的任务执行更高效、更稳定。
2494 2

热门文章

最新文章