山石网科防火墙如何配置外部黑名单,自动封堵攻击 IP
简答:山石网科 StoneOS 支持外部动态列表(外部黑名单):新建一个 IP 类型的外部列表对象, 填入 TrapCloud 的黑名单导出 URL 并设定更新周期,设备按周期自动拉取纯文本 IP 列表; 在安全策略中引用该对象并设为拒绝,即可全自动封堵正在活动的攻击源 IP。
山石防火墙自带的黑名单机制需要有人持续供给「正在活动的攻击 IP」才有价值。 TrapCloud 的导出接口返回每行一个 IP 的 TXT 纯文本,与外部动态列表的格式要求完全一致, 整个接入只有三步:准备 URL、设备侧新建外部列表、策略引用。
1. 准备黑名单 URL
订阅会员在「会员中心」可查看自己的 API Key。按设备容量选择等级档位:
# 推荐:近 3 天全量(约十几万 IP,适合容量充足的中高端型号)
https://www.trapcloud.cn/api/export?key=你的APIKey&type=all&level=all&service=all&hours=72&format=txt
# 容量有限:只取高危以上(数万条)
https://www.trapcloud.cn/api/export?key=你的APIKey&type=all&level=high&service=all&hours=72&format=txt
# 容量紧张:只取极高危(数千条,攻击密度最高的一批)
https://www.trapcloud.cn/api/export?key=你的APIKey&type=all&level=critical&service=all&hours=72&format=txt参数含义:hours=72 表示取近 3 天攻击过的 IP;level 为危险等级(all / high / critical); type 与 service 可进一步按来源类型、目标服务收敛,完整参数见 API 文档。 时间窗与等级建议配合使用:窗口越短、达到高等级的攻击密度越难满足, 建议 3 天窗口起步,而不是用很短的窗口叠加高等级。
先在电脑上验证 URL 返回正常:
# 先在任意电脑上验证 URL 可用(注意用引号包住整个 URL)
curl -s "https://www.trapcloud.cn/api/export?key=你的APIKey&type=all&level=critical&service=all&hours=72&format=txt" | head
# 应输出每行一个 IP 的纯文本,例如:
# 45.148.10.87
# 92.63.197.55
# ...2. 设备侧新建外部黑名单
不同 StoneOS 版本菜单位置略有差异(常见于「对象」或「安全防护」下的外部动态列表 / 黑名单),配置项一致:
- 类型选 IP 地址列表,名称如
TrapCloud_block - URL 填第 1 步准备好的导出地址(HTTPS,443 标准端口,一般无需额外放行)
- 更新周期建议 30 分钟 ~ 几小时(每小时一次即每天 24 次,在订阅配额内)
- 保存后手动触发一次更新,确认条目数与预期相符
3. 策略引用,让封堵真正生效
外部列表本身只是地址集合,需要在安全策略中新建一条规则:源地址引用该外部列表、动作设为拒绝,并把这条规则放在允许类规则之前。 只建列表不引用策略,是最常见的「配了没效果」原因。
高频配置错误(真实案例)
- URL 出现双问号:拼接时写成
/api/export??key=, 第一个问号后的内容整体被当作参数,鉴权直接失败。复制后检查只有一个问号。 - 命令行测试没加引号:Windows cmd / PowerShell 里,不加引号的 URL 会在
&处被截断,只剩第一个参数。永远用引号包住完整 URL。 - 名单超出设备容量:表现为导入不全或更新失败。按上文换 level=high 或 level=critical 档。
常见问题
可以。山石网科 StoneOS 提供外部动态列表(外部黑名单)类功能,新建一个 IP 类型的外部列表对象,填入返回纯文本 IP 列表的 URL 并设定更新周期,设备会按周期自动拉取更新;在安全策略中引用该对象并设为拒绝,即可实现自动封堵,无需人工维护条目。
填 TrapCloud 订阅导出地址,例如 https://www.trapcloud.cn/api/export?key=你的APIKey&type=all&level=all&service=all&hours=72&format=txt ,返回近 3 天去重后的攻击 IP 纯文本列表,每行一个 IP,可被防火墙直接解析。走 443 标准端口,一般不需要额外放行。
降低危险等级换取更小的名单:hours=72 时全量约十几万条;level=high 约数万条;level=critical 约数千条。等级越高的 IP 攻击密度越大、封堵价值越高,容量有限时优先保留 critical 与 high。
外部动态列表建议 30 分钟到几小时一档。订阅档配额为每天 100 次拉取,每小时一次(每天 24 次)在配额内且时效性足够;攻击源 IP 的活跃期通常以天计,不必追求分钟级刷新。
最常见的两个原因:一是 URL 里出现了两个问号(例如复制拼接时写成 /api/export??key=),第一个问号后的内容会被整体当作参数,鉴权失败;二是在 Windows 命令行里测试 URL 时没有加引号,& 之后的参数被命令行截断。用引号包住完整 URL 再测,确认能返回 IP 列表后填入设备。
可以,方式不同。外部动态列表的自动拉取需要订阅 API Key;免费档可在邮箱注册后每天手动下载 1 次近 24 小时黑名单(TXT 纯文本),再导入防火墙的地址簿或黑名单对象。