NX1X/pfsense-geo-block

GitHub: NX1X/pfsense-geo-block

基于 pfBlockerNG 的 pfSense 地理封锁自动化方案,支持 250+ 国家 IPv4/IPv6 屏蔽,并通过每日 Slack 报告提供攻击来源和端口扫描可视化。

Stars: 0 | Forks: 0

# 使用 pfBlockerNG 实现基于国家/地区的 pfSense 地理封锁 ![访客](https://visitor-badge.laobi.icu/badge?page_id=NX1X.pfsense-geo-block) [![GitHub release](https://img.shields.io/github/v/release/NX1X/pfsense-geo-block)](https://github.com/NX1X/pfsense-geo-block/releases/latest) [![设置指南](https://img.shields.io/badge/Docs-Setup%20Guide-blue)](GUIDE.md) [![更新日志](https://img.shields.io/badge/Docs-Changelog-blue)](CHANGELOG.md) [![博客](https://img.shields.io/badge/Blog-Articles-green)](https://blog.nx1xlab.dev/) [![支持](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Support-yellow)](https://buymeacoffee.com/nx1x) [![网站](https://img.shields.io/badge/Website-nx1xlab.dev-purple)](https://www.nx1xlab.dev/) 使用 pfBlockerNG 屏蔽所有国家/地区(IPv4 + IPv6),并通过每日 Slack 报告显示按接口分类的明细、国家/地区归属以及端口扫描检测。 ## 功能 - 屏蔽来自 250 多个国家/地区的 175,000 多个 IPv4 段和 85,000 多个 IPv6 段 - 每日 Slack 报告:按接口/方向分类的明细、主要国家/地区、端口扫描器 - 通过 MaxMind GeoLite2 进行国家/地区查找(与 pfBlockerNG 捆绑) - 智能上下文:针对出站 LAN 屏蔽显示目标国家/地区,针对入站 WAN 攻击显示源国家/地区 - 端口扫描检测:标记探测 4 个或更多不同端口的外部 IP - 与 pfBlockerNG 威胁情报源(CINS、Emerging Threats、BlockListDE、ISC)协同工作 - 在更新成功或失败时发送 Slack 通知 ## 脚本 | 脚本 | 用途 | 默认计划 | |--------|---------|-----------------| | `update-all-countries.sh` | 下载 IPv4 + IPv6 国家/地区 IP 列表并更新屏蔽列表 | 每天上午 7 点 | | `geo-block-report.sh` | 解析防火墙日志并将每日屏蔽摘要发送至 Slack | 每天上午 8 点 | ## 快速入门 ``` # 下载 scripts mkdir -p /root/scripts curl -o /root/scripts/update-all-countries.sh https://raw.githubusercontent.com/NX1X/pfsense-geo-block/main/update-all-countries.sh curl -o /root/scripts/geo-block-report.sh https://raw.githubusercontent.com/NX1X/pfsense-geo-block/main/geo-block-report.sh chmod 750 /root/scripts/*.sh # 设置 Slack webhook(可选) echo 'WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"' > /usr/local/etc/geoblock-webhook.conf chmod 600 /usr/local/etc/geoblock-webhook.conf # 运行初始更新 sh /root/scripts/update-all-countries.sh # 配置 pfBlockerNG — 参见 GUIDE.md # 设置 cron jobs(在 pfSense UI 中:System > Cron) # 7 AM → sh /root/scripts/update-all-countries.sh # 8 AM → sh /root/scripts/geo-block-report.sh ``` ## 文档 - **[设置指南](GUIDE.md)** — 完整的安装说明、pfBlockerNG IPv4/IPv6 规则、威胁情报源、cron 设置 - **[故障排除](TROUBLESHOOTING.md)** — 常见问题与修复 - **[更新日志](CHANGELOG.md)** — 版本历史 ## 系统要求 - pfSense 2.7+(已在 2.8.1 版本上测试) - 已安装 pfBlockerNG-devel - 具备用于更新的互联网连接 - 防火墙最大表项数设置为 `600000`(系统 > 高级设置 > 防火墙与 NAT) ## 许可证 Apache 2.0 — 可免费使用和修改。详情请参见 [许可证](LICENSE)。 ## 致谢 - [IPDeny.com](https://www.ipdeny.com/) 提供国家/地区 IP 数据 - pfBlockerNG 团队 - MaxMind 提供 GeoLite2 数据库 **最后更新:** 2026 年 3 月
标签:Cutter, DNS解析, Geo-blocking, IPv4, IPv6, IP 地址批量处理, IP黑名单, MaxMind, pfBlockerNG, pfSense, PowerShell, Slack通知, 入侵防御, 地理封锁, 威胁情报, 开发者工具, 开源项目, 插件系统, 端口扫描检测, 系统运维, 网络安全, 脚本, 防火墙, 隐私保护