GUIDES / PANABIT

Panabit 网关如何自动同步恶意 IP 黑名单并自动封堵

简答:在 Panabit 网关上安装 TrapCloud 精准封堵 APP,填入订阅 API Key 并选择过滤条件,APP 会按设定周期自动拉取最新攻击 IP 黑名单并灌入指定 IP 群组; 随后在流控 / 安全策略中引用该群组并设为阻断,即可实现全自动封堵。 若不使用 APP,也可用 floweye table loadfile 命令配合定时任务达到同样效果。

Panabit 本身提供 IP 群组(封堵表)机制,但不自带外部威胁情报源。要让网关自动封堵全网正在活动的攻击 IP, 需要解决三件事:从哪里取黑名单、怎么定时灌进网关、怎么让策略真正生效。下面两种方式都能做到。

方式一:安装 TrapCloud 精准封堵 APP(推荐)

适合订阅会员,全自动、支持多维过滤、带失败重试与误覆盖保护

1. 安装

登录 Panabit 网关后台 → 应用中心 / APP 管理安装应用, 上传 PanabitApp_tcblock.apx(在 API 接入页 下载)。 安装后菜单出现 TrapCloud 精准封堵,点击打开配置页。

2. 配置

配置项可选值说明
API Key订阅会员的设备直连 Key。非订阅会员调用会被拒绝
来源类型全部 / 攻击源 / 扫描探测 / 测绘平台 / 可疑扫描封堵建议选「攻击源」,测绘平台通常无需封堵
目标服务全部 / SSH / RDP / VNC / 数据库 / Web / SMB / Telnet / 邮件 / 工控 / AI / 代理按自己暴露的服务收敛
危险等级全部 / 极高危 / 高危以上 / 中危以上见下方「等级和周期怎么选」
精度高可信(多源印证)/ 标准(全量观测)封堵用「高可信」
周期1 ~ 7 天取近 N 天攻击过的 IP,默认 3 天
目标群组名默认 TrapCloud_block不存在会自动创建
同步间隔每 1 天 / 每 12 小时 / 每 6 小时 / 每 1 小时默认每天一次

保存并应用 写入配置并启动调度;点 立即同步一次 手动拉取; 点 测试连接 验证网关到云端的连通性。

配额提醒:每次同步计 1 次订阅每日下载配额(默认 100 次 / 天)。默认每天一次最省;选每小时一次为 24 次 / 天,同样安全。

3. 让封堵真正生效(最容易漏的一步)

APP 只负责把 IP 灌进群组,它不会自己产生阻断动作。必须手动引用一次:

Panabit 后台 → 流控策略 / 安全策略(IP 黑名单) → 新建或编辑规则 → 源地址引用 IP 群组 TrapCloud_block → 动作设为阻断 / 丢弃

方式二:用 floweye 命令行 + 定时任务

适合任何 Panabit 用户,原理就是 APP 内部做的事

核心命令

. /etc/PG.conf
floweye table list                                        # 列出群组,拿到 ID
floweye table add name=TrapCloud_block                    # 新建群组
floweye table loadfile tid=<ID> file=/tmp/ip.txt clear=1  # 原子清空并整批重灌
floweye table get id=<ID> stat=1                          # 查看条数 ipv4cnt

clear=1原子清空 + 整批重灌, 只清空内容不删除群组本身,因此不会破坏引用该群组的策略。 这是关键 —— 不要用先删表再建表的做法。

取数与灌库脚本

Panabit 网关(ARM / BusyBox)通常没有 curl 和 wget, 要用自带的 /usr/pabin/pacu(curl 兼容):

#!/bin/sh
. /etc/PG.conf
URL="<你的黑名单 URL>"
GRP="TrapCloud_block"
TMP="/tmp/tcblock.txt"

/usr/pabin/pacu -s -m 60 -o "$TMP" "$URL" || exit 1

# 安全闸:内容必须是 IP 列表且条数达标,否则放弃本轮
CNT=$(grep -Ec '^[0-9]{1,3}(\.[0-9]{1,3}){3}$' "$TMP")
[ "$CNT" -lt 50 ] && exit 1

TID=$(floweye table list | awk -v g="$GRP" '$2==g{print $1}')
[ -z "$TID" ] && { floweye table add name="$GRP"; \
  TID=$(floweye table list | awk -v g="$GRP" '$2==g{print $1}'); }
floweye table loadfile tid="$TID" file="$TMP" clear=1

挂进 crontab 每日执行即可。同样别忘了在策略里引用群组。

关于证书:部分 Panabit 网关自带的 CA 证书较旧,访问较新的 HTTPS 站点会校验失败。优先考虑更新网关 CA; 若无法更新,可用 pacu -k 跳过校验 —— 注意这会关闭证书验证,请确保 URL 可信。

黑名单从哪来

  • 订阅会员:API 直连,支持来源类型 × 目标服务 × 危险等级 × 精度 × 周期五维过滤, 另可按网络类型(IDC/云 · 宽带 · 移动 · 教育网)、运营商、省份筛选,精确封堵不误伤 —— 查看订阅
  • 免费注册:邮箱注册后每天可在网页下载 1 次近 24 小时黑名单 —— 免费注册

等级和周期怎么选

危险等级:等级判定与时间窗长度相关。窗口越短,达到高等级所需的攻击密度越难满足 —— 例如 24 小时窗口下「极高危」的结果集会明显小于 7 天窗口。 建议周期选 3–7 天配合「极高危」或「高危以上」,而不是用很短的窗口叠加高等级。

精度:「高可信」经过多源印证,适合直接用于生产封堵;「标准」是全量观测口径,适合做分析而非封堵。

误伤规避:家庭宽带和移动网络存在大量 NAT 共享出口,封堵可能误伤正常用户。 订阅会员可用来源属性筛选只封 IDC / 云主机来源,这是攻击者租用服务器的主要形态。

常见问题

Panabit 可以自动同步外部 IP 黑名单吗?

可以。Panabit 的 IP 群组支持通过 floweye table loadfile 整批导入,配合定时任务即可实现自动同步。TrapCloud 提供官方网关 APP(.apx),安装后按设定周期自动拉取并灌入群组,无需自行编写脚本。

灌入 IP 群组后为什么没有封堵效果?

IP 群组本身只是一个地址集合,不产生阻断动作。需要在流控策略或安全策略中新建规则,源地址引用该群组,并把动作设为阻断或丢弃,封堵才会生效。这是最常见的遗漏。

更新黑名单会不会影响正在引用它的策略?

不会。使用 floweye table loadfile tid=<ID> file=<文件> clear=1 是原子的清空加整批重灌,只清空群组内容、不删除群组对象,引用它的策略保持有效。反之,如果先删除群组再重建,策略引用会失效。

网关上没有 curl 怎么拉取黑名单?

Panabit 网关(尤其 ARM / BusyBox 平台)通常不带 curl 和 wget,可使用系统自带的 /usr/pabin/pacu,用法与 curl 兼容。

免费用户可以用吗?

可以。邮箱注册即可免费使用,每天可在网页下载 1 次近 24 小时的攻击 IP 黑名单,纯文本格式,可直接导入 Panabit 的 IP 群组。全自动的设备直连与多维过滤需要订阅会员。

同步频率设多高合适?

每天一次即可满足绝大多数场景,攻击源 IP 的有效期通常以天计。频率越高消耗的下载配额越多(每次同步计 1 次)。需要更快响应时可选每小时一次,为 24 次每天,仍在默认配额内。

API 接入与 APP 下载 →会员权益与订阅 →实时威胁态势 →