Elasticsearch 中如何限制和指定 IP 地址的访问?

news/2025/2/22 10:51:37

在现代的微服务架构中,保护系统不受未授权访问是非常重要的,尤其是在网关层。极限网关(INFINI Gateway)作为我们服务架构的入口,它的安全性直接影响到整个系统的稳定与安全。

图片

极限网关提供了强大的 IP 访问控制 功能,允许你灵活地控制哪些 IP 可以访问你的服务,以及哪些 IP 必须被拒绝。

注意:开源非付费版本 Elasticsearch 不具备这个功能。

本文将带你一步步了解如何使用极限网关来限制或指定允许/拒绝的 IP 地址,帮助你增强网关的安全性。


1. 什么是 IP 访问控制?

IP 访问控制是一种安全机制,它允许你基于客户端的 IP 地址来决定是否允许访问你的服务。极限网关通过 ip_access_control 配置来启用和管理这一功能。你可以通过配置以下两种方式来管理客户端的访问:

  • 白名单:只允许指定的 IP 地址访问。

  • 黑名单拒绝指定的 IP 地址访问。

这两种方式可以单独使用,也可以结合使用,确保只有可信的 IP 地址能够访问你的服务。


2. 如何配置 IP 访问控制?

在极限网关中,配置 IP 访问控制非常简单。你只需要在路由配置中增加 ip_access_control 节点,启用控制功能,并指定需要允许或拒绝的 IP 地址。

启用 IP 访问控制

下面是一个简单的示例,展示如何启用 IP 访问控制:

router:
  - name: my_router
    default_flow: async_bulk
    ip_access_control:
      enabled: true

在上面的配置中,enabled: true 就是启用 IP 访问控制的关键。之后,你可以选择进一步配置允许或拒绝的 IP 地址。


3. 配置白名单:只允许特定 IP 访问

如果你希望只允许某些特定 IP 地址能够访问你的服务,可以使用 白名单 配置。这意味着,只有列出的 IP 地址可以访问你的网关服务,其他 IP 地址会被自动拒绝。

假设你只希望 IP 地址 133.37.55.22 能够访问服务,其他的 IP 都不能访问,配置示例如下:

router:
  - name: my_router
    default_flow: async_bulk
    ip_access_control:
      enabled: true
      client_ip:
        permitted:
          - 133.37.55.22

在上面的配置中,client_ip.permitted 下列出了被允许访问的 IP 地址。只有 IP 地址为 133.37.55.22 的请求会通过,其他 IP 地址的请求都会被自动拒绝。

实际案例配置截图:

0

验证结果如下:

0

0

0


4. 配置黑名单:拒绝特定 IP 访问

如果你希望某些特定 IP 地址不能访问你的网关服务,可以使用 黑名单 配置。这意味着,列出的 IP 地址会被拒绝访问,而其他未列出的 IP 地址将能够正常访问。

例如,假设你希望拒绝 IP 地址 133.37.55.22 访问服务,配置示例如下:

router:
  - name: my_router
    default_flow: async_bulk
    ip_access_control:
      enabled: true
      client_ip:
        denied:
          - 133.37.55.22

在这个配置中,client_ip.denied 下列出了被拒绝访问的 IP 地址。任何来自 133.37.55.22 的请求都会被网关直接拒绝,其他 IP 地址的请求则不会受到影响。

实际案例配置截图参考:

1bac681ad5ba6562ba389fb240c1aefb.png

实际验证截图如下:

96578739f813cd9ce228148cb0bb6b6f.png

由于 IP 地址被设置为黑名单,导致客户端写入报错。

Error inserting data: AuthorizationException(403, 'Access Forbidden.\n')

5. 配置同时使用白名单和黑名单

你也可以将 白名单黑名单 结合起来使用。例如,允许某些特定 IP 地址访问,同时拒绝某些其他的 IP 地址。

假设你想允许 133.37.55.22 访问,但拒绝 192.168.1.1 的访问,配置如下:

router:
  - name: my_router
    default_flow: async_bulk
    ip_access_control:
      enabled: true
      client_ip:
        permitted:
          - 133.37.55.22
        denied:
          - 192.168.1.1

在这个配置中,133.37.55.22 会被允许访问,而 192.168.1.1 会被拒绝访问。


6. 使用 IP 地址访问控制的场景

1)保护敏感服务: 如果你有一些只允许特定客户端访问的敏感服务,可以通过白名单来确保只有合法的客户端能够访问。

2)防止恶意访问: 黑名单可以帮助你封堵已知的恶意 IP 地址,防止攻击者通过尝试访问网关来对系统造成危害。

3)灵活的访问管理: 你可以根据业务需求动态地调整允许或拒绝的 IP 地址,确保网关始终处于安全状态。


7. 小结

IP 访问控制是极限网关提供的一项非常实用的安全功能,它能帮助你控制谁能够访问你的服务。通过简单的配置,你可以指定哪些 IP 地址可以访问(白名单),以及哪些 IP 地址不能访问(黑名单)。合理使用这项功能,可以有效地提高系统的安全性,防止未经授权的访问。

希望本文的介绍能帮助你更好地理解如何在极限网关中配置 IP 访问控制,并灵活应对不同的安全需求。如果你有任何问题或建议,欢迎在评论区留言讨论!


相关推荐:

  • 极限网关核心架构解析:从 Nginx 到 INFINI Gateway 的演进

  • 极限网关 INFINI Gateway  从 0 到 1:简单易懂的入门教程

  • 极限网关 INFINI Gateway 配置文件核心解读

  • 给 Elasticsearch "穿上盔甲"——极限网关一招搞定 TLS  安全防护

  • 如何防止 Elasticsearch 服务 OOM ?极限网关来为你的 ES 服务保驾护航!

  • 极限网关——一个面向Elasticsearch的高性能应用网关

    图片

    更短时间更快习得更多干货!

    和全球2000+ Elastic 爱好者一起精进!

    elastic6.cn——ElasticStack进阶助手

    图片

    抢先一步学习进阶干货!


http://www.niftyadmin.cn/n/5862133.html

相关文章

web安全:跨站请求伪造 (CSRF)

跨站请求伪造 (CSRF) ​ 跨站请求伪造(CSRF,Cross-Site Request Forgery) 是一种网络攻击方式,攻击者诱使受害者在未经其授权的情况下执行特定操作。CSRF 利用受害者已登录的身份和浏览器自动发送的认证信息(如 Cooki…

如何查找 UBuntu的 arm版本

Ubuntu官网 https://ubuntu.com/ 如图: 点击 Tab栏的Download Ubuntu >> Server >> ARM >> 点击Download 24.04.2 LTS 即可 如果需要其他版本 点击 Alternative and previous releases 进入到如下页面选择想要的版本下载即可

支持向量机 (Support Vector Machine, SVM)

支持向量机 (Support Vector Machine, SVM) 支持向量机(SVM)是一种广泛应用于分类、回归分析以及异常检测的监督学习算法。它基于结构风险最小化(Structural Risk Minimization,SRM)原则,通过寻找一个最优…

【论文阅读笔记】知识蒸馏:一项调查 | CVPR 2021 | 近万字翻译+解释

目录 1 引言 2 知识 2.1 Response-Based Knowledge 2.2 Feature-Based Knowledge 2.3 Relation-Based Knowledge 3 蒸馏方案 3.1 Offline Distillation 3.2 Online Distillation 3.3 Self-Distillation 4 师生架构 5 蒸馏算法 5.1 Adversarial Distillation 5.2 M…

ArcGIS Pro进行坡度与坡向分析

在地理信息系统中,坡度分析是一项至关重要的空间分析方法,旨在精确计算地表或地形的坡度,为地形特征识别、土地资源规划、环境保护、灾害预警等领域提供科学依据。本文将详细介绍如何利用ArcGIS Pro这一强大的地理信息系统软件,进…

【接口测试】使用Requests库发送POST请求

POST请求用于向服务器提交数据,比如提交一个表单新建一个用户、或修改一个用户信息等操作。 对于POST请求,我们可以通过浏览器开发者工具或者其他外部工具来进行抓包,得到请求的URL、请求头(request headers)以及请求…

XML Schema 元素替换

XML Schema 元素替换 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。XML Schema 是一种用于定义 XML 文档结构的语言,它描述了 XML 文档的结构、数据类型和约束。在处理 XML 文档时,有时需要对特定的元素进行替换,以满足特定的需求。本文将介绍 XML Sch…

uniapp使用uts插件启动原生安卓Service

uniapp使用uts插件启动原生安卓Service 背景实现尾巴 背景 在上一篇文章中uniapp使用uts插件调用原生API,我们使用uts插件来实现了一个简单的例子来调用原生安卓平台的Toast。今天我们继续使用uts插件来实现一个稍微复杂点的例子,启动一个原生安卓平台的…