通过 FortiGate 外部连接器 (External Connectors) 自动化集成 Spamhaus DROP 威胁情报。该方案通过 curl 与 jq 提取恶意 CIDR 网段,并利用防火墙的 Threat Feed 功能实现动态同步,旨在为企业边界安全提供一层自动化的“零误伤”过滤屏障。
一、 环境准备:获取并整理 DROP 列表
Spamhaus 提供的 DROP (Don’t Route Or Peer) 列表包含了由恶意组织控制的网段。其原始格式为 JSON,需转换为 FortiGate 兼容的纯文本。
1. 原始格式预览
{"cidr":"1.10.16.0/20","sblid":"SBL256894","rir":"apnic"}
{"cidr":"1.19.0.0/16","sblid":"SBL434604","rir":"apnic"}
2. 数据提取脚本
在你的 Web 服务器(或中转服务器)上运行以下命令,提取 cidr 字段并生成纯文本:
# 下载、解析并保存为文本文件
curl -s https://www.spamhaus.org/drop/drop_v4.json | jq -r '.cidr' > spamhaus_drop.txt
注意:FortiGate 无法直接解析该 JSON 文件,因此必须通过上述步骤将其托管在内部或公网的 HTTP/HTTPS 服务器上。
二、 FortiGate 配置步骤
1. 创建外部连接器 (Threat Feed)
- 登录 FortiGate,进入 Security Fabric > External Connectors。
- 点击 Create New,在 Threat Feeds 类别下选择 IP Address。
- 参数配置详情:
- Name:
Spamhaus_DROP - URL:
http://yourserver.com/spamhaus_drop.txt - Refresh Rate: 设置为 60 分钟(平衡实时性与服务器负载)。
2. 状态验证
保存配置后,在列表中观察连接器图标状态:
- 绿色箭头:连接正常。
- 红色感叹号:请检查 FortiGate 是否有权限访问该 URL,或 DNS 解析是否正常。
- 查看内容:右键点击连接器选择 View Entries,确认是否已成功拉取 IP 列表。
三、 应用安全策略
获取列表后,必须将其应用到安全策略中才会生效。
- 进入 Policy & Objects > Firewall Policy。
- 创建一条新的拦截策略:
- Name:
Deny_Spamhaus_Inbound - Incoming Interface:
WAN(外部接口) - Source: 选择刚才创建的动态对象
Spamhaus_DROP - Destination:
All - Service:
ALL - Action:
DENY
- 关键操作:在策略列表中,手动将该策略 移至顶端 (Top)。
提示:为了防范内网主机被感染后回连 C&C 服务器,建议额外创建一条 Source 为
Internal、Destination 为Spamhaus_DROP的拦截策略。
四、 自动化更新
为了确保列表始终最新,建议在 Web 服务器上设置 Crontab 定时任务:
# 每小时自动更新一次列表
0 * * * * curl -s https://www.spamhaus.org/drop/drop_v4.json | jq -r '.cidr' > /var/www/html/spamhaus_drop.txt
发表回复