agit8or1/OPNMGR

GitHub: agit8or1/OPNMGR

OPNMGR 是一个基于 Web 的 OPNsense 防火墙集中化管理平台,提供健康监控、自动更新、配置备份、远程命令执行及 AI 配置审查等功能,解决多防火墙环境下的统一运维难题。

Stars: 26 | Forks: 0

# OPNManager - OPNsense 防火墙管理平台 [![GitHub Stars](https://img.shields.io/github/stars/agit8or1/OPNMGR?style=social)](https://github.com/agit8or1/OPNMGR/stargazers) **状态**:生产稳定 | **许可证**:MIT | **版本**:[![v3.11.1](https://img.shields.io/badge/version-3.11.1-blue)](https://github.com/agit8or1/OPNMGR/releases) | **Agent**:v1.4.0 一个全面的基于 Web 的管理平台,用于集中监控、配置和维护 OPNsense 防火墙。 ### v3.11 新特性 — 全面 UI 重设计 OPNManager v3.11 带来了受 Datadog 和 Grafana 启发的从头开始的 UI 重设计: - **可折叠图标侧边栏** — 悬停时展开的 72px 纤细导航栏,可固定保持打开 - **防火墙健康网格仪表板** — 为每个防火墙提供一目了然的健康卡片,包含状态点、健康条、运行时间和最后签到时间 - **Dark + Light 主题** — 感知系统偏好并支持手动切换,在所有页面上保持一致 - **KPI 指标条** — 紧凑的胶囊状显示,展示防火墙总数、在线/离线计数、需要更新的数量以及平均健康分数 - **专业设计系统** — 超过 1,600 行带有 custom properties 的 CSS,不再有内联样式 - **安全加固** (v3.10) — 25+ 个端点已通过身份验证保护,19+ 个表单启用了 CSRF,并进行了依赖项更新 ## 主要功能 ### 防火墙管理 - **集中式仪表板**:通过单一界面监控所有防火墙 - **实时状态**:Agent 每 2 分钟进行一次实时签到 - **插件 Agent**:原生 OPNsense 插件,支持自动更新 - **健康监控**:CPU、内存、磁盘、运行时间、网络状态 - **标签系统**:使用颜色编码标签组织防火墙 - **客户分组**:支持多租户及客户组织管理 ### 网络与流量监控 - **WAN 流量图表**:带自动缩放 (Mb/s / Gb/s) 的实时吞吐量图表 - **接口状态**:每个接口的 RX/TX 字节计数器及错误跟踪 - **延迟监控**:持续对多个目标进行 ping 测量 - **带宽测试**:按需进行 iperf3 速度测试,支持多服务器回退 - **智能计数器检测**:当驱动程序级别的计数器损坏 (virtio_net) 时,自动回退到 pf 计数器 ### 系统监控 - **准确的运行时间跟踪**:来自 Agent 的真实系统运行时间 - **版本跟踪**:OPNsense 版本、Agent 版本及可用更新 - **一键更新**:触发 OPNsense 更新并带有动画进度状态 - **重启控制**:可点击的“需要重启”徽章可触发带有确认提示的远程重启 - **卡顿更新恢复**:自动恢复卡住超过 15 分钟的更新 - **系统统计**:CPU、内存、磁盘使用情况图表(支持 1h, 4h, 12h, 24h, 1w, 30d 时间范围) ### 命令执行 - **远程命令队列**:远程在防火墙上执行命令 - **Base64 编码**:支持复杂的多行命令 - **命令历史**:跟踪所有执行的命令及其时间戳 - **输出捕获**:实时查看命令结果 ### 配置备份 - **自动备份**:定时进行配置备份 - **手动备份**:按需创建备份 - **备份管理**:下载、恢复和删除备份 - **保留策略**:自动清理旧备份 ### AI 驱动的安全分析 - **智能配置审查**:由 AI 驱动的防火墙配置分析 - **安全建议**:提供改善安全状况的自动化建议 - **风险评估**:识别潜在的漏洞和错误配置 ### 安全连接 - **按需 SSH 隧道**:动态反向隧道,无需暴露端口 - **Web 代理**:通过管理器访问防火墙 Web 界面 - **自动清理**:隧道会话超时后会自动清理 ## 截图 ### 登录 简洁、极简的登录界面,支持 dark/light 主题。 ![登录](https://static.pigsec.cn/wp-content/uploads/repos/cas/e2/e2053cbd08bda1a3a6af361505f363c1e814b3cb4780c2a7d7353d854453390c.png) ### 仪表板 — 防火墙健康网格 通过 KPI 指标条、每个防火墙的健康卡片、状态图表和网络映射,实现一目了然的监控。 ![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/5a/5a878010a342baf1b214ba69138446cb236d01687f643b305cc859506ad9f98f.png) ### 仪表板 — 完整视图 ![完整仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/7e/7e7cb244b82e502e2734efcf53eaf062dd8ec05411782429e8f651e45ce5cab1.png) ### 防火墙管理 支持排序和过滤的防火墙列表,包含健康分数和状态指示器。 ![防火墙](https://static.pigsec.cn/wp-content/uploads/repos/cas/2d/2dc7b202740129c727f75fa8a54b400cd29669de5e66828665c6dcac91e02423.png) ### 防火墙详情 详细的防火墙视图,包含图表、网络信息和管理工具。 ![防火墙详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f7a43f5a4c955e72a7387264c5631cf618ad1c15471dde16a5a67c446a013a1e.png) ### 设置 包含 ACME、警报、备份、品牌标识、Fail2Ban 和 GeoIP 的系统配置。 ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/64c10dfe15010acbf1450eddac3656f584ea385c74f9ab54cb8b2f0346fa76f2.png) ### 用户 管理员用户管理,支持角色、密码更改和 CSRF 保护。 ![用户](https://static.pigsec.cn/wp-content/uploads/repos/cas/69/6982c873ef6a506d2b0b79d89c39b326ffa8fe709ca3dae085693f2e43a28891.png) ### 折叠侧边栏 仅显示图标的导航栏 (72px) — 悬停或固定以展开。 ![侧边栏折叠](https://static.pigsec.cn/wp-content/uploads/repos/cas/95/95dcea1e51c5391138932ab59e69f61844a8e401f62ddc25b716928f8abe9e44.png) ### Light 模式 完整的 light 主题,具备系统偏好检测和手动切换功能。 ![Light 模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/26/2673599a9e92747cdcd656fe0c6e525aadbb70a27a39bd000009f684e0f2e1a6.png) ## 系统要求 ### 服务器要求 - **OS**:Ubuntu 22.04 LTS 或更新版本 - **PHP**:8.0 或更高版本 - **MySQL/MariaDB**:8.0+ / 10.6+ - **Web Server**:Apache 2.4+ 或 Nginx 1.18+ - **磁盘空间**:最低 10GB(推荐 20GB+ 用于备份) - **内存**:最低 2GB RAM(推荐 4GB+) ### 被管理的防火墙 - **OPNsense**:20.7+(已测试至 25.7.x) - **FreeBSD**:13.x 或 14.x - **连接性**:具备可访问管理器服务器的出站 HTTPS (443) 权限 ## 快速开始 ### 1. 服务器安装 ``` # Clone 仓库 cd /var/www git clone https://github.com/agit8or1/OPNMGR.git opnsense # 设置适当的权限 chown -R www-data:www-data /var/www/opnsense chmod 755 /var/www/opnsense # 导入数据库 schema mysql -u root -p < /var/www/opnsense/database/schema.sql # 配置数据库连接 cp /var/www/opnsense/inc/db.php.example /var/www/opnsense/inc/db.php # 使用您的 DB_HOST, DB_NAME, DB_USER, DB_PASS 编辑 inc/db.php # 配置 Apache virtual host 并重新加载 a2ensite opnmanager systemctl reload apache2 ``` ### 2. 防火墙注册 #### 选项 A:快速注册(推荐) 1. 登录 OPNManager Web 界面 2. 导航至 **Firewalls > Add Firewall** 3. 生成注册密钥 4. 在 OPNsense 防火墙上,运行页面上显示的单行安装命令 #### 选项 B:手动安装插件 ``` # 在 OPNsense 防火墙上,安装 agent plugin: fetch -o - https:///downloads/plugins/install_opnmanager_agent.sh | sh ``` 然后通过 OPNsense Web GUI 在 **Services > OPNManager Agent** 下配置 Agent。 ### 3. Agent 插件 OPNManager Agent 作为原生 OPNsense 插件进行安装: - **插件位置**:`/usr/local/opnsense/scripts/OPNsense/OPNManagerAgent/agent.sh` - **配置**:通过 OPNsense GUI (**Services > OPNManager Agent**) - **服务管理**:`service opnmanager_agent start|stop|restart` - **日志**:`/var/log/opnmanager_agent.log` - **自动更新**:Agent 在每次签到时检查更新并进行自我更新 ## 配置 ### Agent 签到 Agent 默认每 2 分钟签到一次。在每次签到时,它会报告: - 系统统计信息(CPU、内存、磁盘) - 网络接口状态和流量计数器 - 延迟测量值 - OPNsense 版本及更新可用性 - 待处理的命令结果 ### 流量计数器智能识别 Agent 使用最佳可用的计数器源: - **Link layer**(默认):捕获所有流量,包括 forwarded/NAT - **pf counters**(回退):当 Link-layer 计数器冻结时使用(在 VPS 上的 virtio_net 中很常见) - **IP layer**(最后手段):仅限基于地址的流量 ## 安全 ### 身份验证 - 安全的密码哈希处理 (PHP `password_hash`) - 带有 CSRF 保护的会话管理 - 登录尝试日志记录 ### Agent 通信 - 仅限 HTTPS 的 Agent 签到 - 基于 Hardware ID 的防火墙识别 - Base64 编码的命令 payload - PID 文件锁定可防止 Agent 重复运行 ### 安全连接 - 按需 SSH 反向隧道(动态端口分配 8100-8200) - 无需暴露防火墙端口 - 自动清理隧道会话 ## 故障排除 ### Agent 未签到 ``` # 在 OPNsense 防火墙上: service opnmanager_agent status tail -20 /var/log/opnmanager_agent.log ``` ### 网络数据显示错误值 - 确保 Agent 版本为 v1.5.6+(支持 virtio_net 的 pf 计数器回退) - 检查 Agent 日志中是否有 "Link layer counter frozen" 消息 - 流量数据会随时间累积;全新安装需要约 24 小时才能生成完整的图表 ## 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 支持 - 在 [GitHub](https://github.com/agit8or1/OPNMGR) 上为本仓库加星 - 访问 [mspreboot.com](https://mspreboot.com)
标签:Cutter, Docker 部署, ffuf, OPNsense, Web GUI, 监控平台, 网络运维, 进程监控, 防火墙管理