跳到主要内容
版本:3.2.9.5

屏蔽恶意 IP 地址

为了保护 API 免受来自恶意 IP 地址的攻击,你可以配置 IP 地址黑名单来阻止来自这些特定 IP 地址的请求。

本文档介绍如何启用 ip-restriction 插件作为全局规则,建立共享 IP 地址黑名单。如果 IP 地址在黑名单中,则请求会被拒绝,并返回 403。根据列表检查的 IP 地址可能是发起请求的客户端的 IP 地址或基于代理的 X-Forwarded-For(XFF)地址。

前提条件

  1. 获取一个具有超级管理员运行时管理员 角色的用户账户。
  2. 发布一个服务,其中会包含至少一个 API。

为网关组内所有 API 设置共享 IP 地址黑名单

一旦发现恶意 IP 地址正在攻击 API,最好将该 IP 地址添加到共享黑名单中以保护其他 API。

  1. 从左侧导航栏中选择网关组,然后选择测试网关组

  2. 从左侧导航栏中选择插件设置

  3. 选择插件全局规则页签,在插件字段中,搜索 ip-restriction 插件。

  4. 单击加号图标 (+),弹出对话框。

  5. 应用以下配置,将 IP 地址 127.0.0.1 添加到黑名单:

    {
    "blacklist": ["127.0.0.1"],
    "message": "Sorry, your IP address is not allowed."
    }
  6. 单击启用

验证

发送 API 请求:

curl -i "http://127.0.0.1:9080/pet/1" 

由于IP地址受到黑名单的限制,此时,你将看到以下输出:

HTTP/1.1 503 Service Temporarily Unavailable
Date: Fri, 01 Sep 2023 03:48:27 GMT
Content-Type: text/plain; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 0
Server: APISIX/dev

{"error_msg":"Sorry, your IP address is not allowed."}