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 # 查看条数 ipv4cntclear=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 可信。
黑名单从哪来
等级和周期怎么选
危险等级:等级判定与时间窗长度相关。窗口越短,达到高等级所需的攻击密度越难满足 —— 例如 24 小时窗口下「极高危」的结果集会明显小于 7 天窗口。 建议周期选 3–7 天配合「极高危」或「高危以上」,而不是用很短的窗口叠加高等级。
精度:「高可信」经过多源印证,适合直接用于生产封堵;「标准」是全量观测口径,适合做分析而非封堵。
误伤规避:家庭宽带和移动网络存在大量 NAT 共享出口,封堵可能误伤正常用户。 订阅会员可用来源属性筛选只封 IDC / 云主机来源,这是攻击者租用服务器的主要形态。
常见问题
可以。Panabit 的 IP 群组支持通过 floweye table loadfile 整批导入,配合定时任务即可实现自动同步。TrapCloud 提供官方网关 APP(.apx),安装后按设定周期自动拉取并灌入群组,无需自行编写脚本。
IP 群组本身只是一个地址集合,不产生阻断动作。需要在流控策略或安全策略中新建规则,源地址引用该群组,并把动作设为阻断或丢弃,封堵才会生效。这是最常见的遗漏。
不会。使用 floweye table loadfile tid=<ID> file=<文件> clear=1 是原子的清空加整批重灌,只清空群组内容、不删除群组对象,引用它的策略保持有效。反之,如果先删除群组再重建,策略引用会失效。
Panabit 网关(尤其 ARM / BusyBox 平台)通常不带 curl 和 wget,可使用系统自带的 /usr/pabin/pacu,用法与 curl 兼容。
可以。邮箱注册即可免费使用,每天可在网页下载 1 次近 24 小时的攻击 IP 黑名单,纯文本格式,可直接导入 Panabit 的 IP 群组。全自动的设备直连与多维过滤需要订阅会员。
每天一次即可满足绝大多数场景,攻击源 IP 的有效期通常以天计。频率越高消耗的下载配额越多(每次同步计 1 次)。需要更快响应时可选每小时一次,为 24 次每天,仍在默认配额内。