# netops **Repository Path**: qingfengljh/tomato-netops ## Basic Information - **Project Name**: netops - **Description**: 园区网络实施平台 — 从设备开箱到项目交付,覆盖网络安全改造的完整实施生命周期。支持浏览器直连 Console 初始化交换机,自动化完成 VLAN 迁移、802.1X 准入、安全策略部署与回滚。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-29 - **Last Updated**: 2026-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tomato NetOps **园区网络实施平台** — 从设备开箱到项目交付,覆盖园区/中小企业网络安全改造的完整实施生命周期。 > **开源声明**:本项目源码以 MIT 协议开源,包含完整的安装和部署文档。如果你希望获得**预构建的离线安装包**(含 Docker 镜像,无需本地编译环境)或需要**商业技术支持**,请联系 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn)。 --- ## 解决什么问题 企业网络安全改造项目中,规划只占 20% 的工作量,**实施占 80%**。 几十台交换机逐台 Console 初始化,防火墙策略反复调试推送,802.1X 上线后停电一次就要手动恢复几十台设备的认证状态,VLAN 从旧网络迁移到新规划要一台台改……这些重复、易错、耗时的工作,是每个网络工程师的痛点。 Tomato NetOps 不是又一个网管软件或监控平台——它是一个**实施过程管理工具**,把网络改造项目中 80% 的重复劳动自动化。 ## 核心能力 | 能力 | 说明 | |------|------| | **浏览器 Console 初始化** | 通过 Web Serial API 直连设备 Console 口,自动检测厂商型号和设备状态,一键完成基础配置。无需 PuTTY / SecureCRT | | **两阶段设备部署** | Console 阶段完成基础配置 → SSH 阶段完成高级配置。网络通时一气呵成,不通时自动分步。支持离线初始化 | | **三阶段安全策略** | 全开放 → 基线自动生成 → 精细化。矩阵视图直观理解区域间访问关系,全量推送/回滚 | | **渐进式 VLAN 迁移** | 初始化时保留旧 VLAN 不中断业务,实施推进中一键收紧到规划目标,差异对比可视化 | | **802.1X 全流程** | RADIUS 配置下发、批量启用/禁用、停电后批量重认证、NPS 应急全网开关 | | **临时上网 TTL 回滚** | 端口临时放行上网,到期自动回滚。后台引擎持续对账,回滚失败自动重试 | | **可视化端口监控** | 模拟真实交换机面板,实时展示连接状态、802.1X 认证状态、VLAN 分配 | | **配置管理** | 端口配置模板、格式刷、配置漂移检测、基线设置与恢复、ZIP 批量导入导出 | ## 界面预览

登录页

首页仪表盘

交换机管理

端口状态

802.1X 配置

安全策略

网络拓扑

## 安全策略三阶段模型 ``` 阶段一:初始化 阶段二:基线生成 阶段三:精细化 ┌─────────────────┐ ┌─────────────────────┐ ┌──────────────────────┐ │ permit_all │ │ 根据区域属性自动生成 │ │ 克隆基线 → 手动添加 │ │ 确保业务不中断 │ → │ 互联网/内网/管理隔离 │ → │ 跨部门、特定服务规则 │ │ (系统内置) │ │ (只读系统策略集) │ │ 全量推送到防火墙 │ └─────────────────┘ └─────────────────────┘ └──────────────────────┘ ``` 基线策略在**安全区域**层面描述意图(如"办公区允许访问互联网"),一个区域可包含多个部门 VLAN。下发到防火墙时自动展开为设备命令。策略集与具体防火墙设备解耦,支持未来适配不同厂商设备。 ## 网络规划驱动 系统以网络规划为核心数据源,所有功能围绕规划数据展开: ``` 网络规划(区域 + VLAN) ├── 802.1X 策略(区域定义降级/失败 VLAN) ├── 安全策略(区域属性驱动基线生成) ├── 端口配置(区域关联默认 VLAN) ├── VLAN 收紧(规划目标 vs 设备现状) └── 防火墙初始化(区域 → 安全 Zone + 子接口) ``` ## 支持的设备 | 类型 | 厂商 | 型号 | |------|------|------| | 接入层交换机 | 华为 | S310-24T4X / S310-48T4X | | 接入层交换机 | 锐捷 | NBS5200 系列 | | 汇聚层交换机 | 华为 / 锐捷 | 支持 SSH 的三层交换机 | | 防火墙 | 华为 | USG6000F 系列 | | 无线 AC | 华为 / 锐捷 | 支持 SSH 的 AC 控制器 | 架构上预留了设备驱动抽象层,新增厂商/型号只需实现对应的命令生成器。 ## 技术栈 | 层 | 技术 | |----|------| | 前端 | Vue 3 + TypeScript + Element Plus + Vite | | 后端 | Python FastAPI + SQLite | | 终端 | xterm.js(Web SSH)、Web Serial API(Console) | | 拓扑 | D3.js 力导向图 | | 安全 | RSA + Fernet 加密、JWT 认证 | | 部署 | Docker / Windows 原生 | ## 快速开始 ### 方式一:源码部署(开源,需要 Node.js + Docker 环境) 适合有开发能力的技术人员,或希望自定义修改的用户。 ```bash # 1. 克隆源码 git clone https://github.com/your-org/tomato-netops.git cd itsm # 2. 构建并打包(本地需要 Node.js + Docker) ./package.sh # 3. 将生成的离线包部署到目标机 cd dist/tomato-netops- bash ./deploy.sh ``` 详细步骤参考 `docs/管理员手册.md`。 ### 方式二:离线安装包(商业交付,开箱即用) 适合施工团队或甲方 IT,无需本地编译环境,拿到即可部署。 预构建的离线安装包包含: - 已构建的前端静态文件 - 已导出的 Docker 后端镜像 - 一键部署脚本 **获取方式**:请联系 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) 获取适用于您环境的离线安装包。 ### Windows 部署 ```powershell cd deploy-windows .\install.bat .\start.bat ``` ### 开发环境 ```bash # 后端 cd backend python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt python main.py # 前端 cd frontend pnpm install pnpm dev ``` ## 项目结构 ``` ├── backend/ # FastAPI 后端 │ ├── routers/ # API 路由(22 个模块,200+ 端点) │ ├── drivers/ # 设备驱动(华为/锐捷命令生成) │ ├── services/ # 业务服务层(策略生成、端口维护等) │ ├── models/ # Pydantic 数据模型 │ ├── core/ # 认证、加密、SSH 连接管理 │ ├── config_generator.py # 防火墙配置生成器 │ └── database.py # SQLite 数据层 ├── frontend/ # Vue 3 前端 │ └── src/ │ ├── components/ # 21 个功能组件 │ ├── composables/ # 可复用逻辑(设备驱动、离线存储等) │ ├── pages/ # 18 个页面 │ ├── stores/ # Pinia 状态管理 │ └── router/ # 路由定义 ├── deploy-docker/ # Docker Compose 部署 └── deploy-windows/ # Windows 一键部署脚本 ``` ## 功能页面一览 | 页面 | 路径 | 说明 | |------|------|------| | 首页仪表盘 | `/` | 设备统计、在线状态、快捷入口 | | 网络规划 | `/vlans` | 区域 + VLAN 规划,数据校验与锁定 | | 初始化向导 | `/init` | Console + SSH 两阶段设备初始化 | | 交换机管理 | `/switches` | 设备列表、配置备份、密码管理 | | 防火墙管理 | `/firewalls` | 设备列表、WAN 配置、LACP、策略绑定 | | 安全策略 | `/security-policy` | 矩阵/列表/对象三视图,策略推送 | | 端口状态 | `/ports` | 可视化面板、802.1X 批量操作 | | 802.1X 配置 | `/dot1x` | RADIUS 配置、区域策略、批量下发 | | 重认证管理 | `/reauth` | 停电恢复、策略变更后重认证 | | 临时上网 | `/temp-access` | TTL 工单、自动回滚 | | 无线管理 | `/wireless` | AC/AP 管理、SSID 配置集 | | Console 终端 | `/console` | 浏览器内串口终端 | | Web SSH | `/ssh` | 浏览器内 SSH 终端 | | 网络拓扑 | `/topology` | 自动可视化网络连接关系 | | 自定义命令 | `/custom` | 对设备执行自定义 CLI 命令 | | 实施报告 | `/reports` | 项目报告生成、NPS 脚本导出 | | 系统管理 | `/system` | 配置、数据库备份恢复、审计日志 | ## 安全设计 - 设备密码使用 Fernet 对称加密存储 - 前端到后端的密码传输使用 RSA 非对称加密 - JWT Token 认证,存储在 sessionStorage - 首次登录强制修改默认密码 - 部署模式 / 日常模式切换,防止误操作 - 策略推送时自动附加管理访问保护规则 - 系统策略集只读保护,绑定时自动克隆 ## 适用场景 - 企业网络安全等保改造项目 - 新建网络的批量设备部署 - 网络架构升级迁移(VLAN 重新规划) - 802.1X 网络准入控制部署 - 日常运维中的端口管理和故障排查 ## 浏览器要求 - Google Chrome 或 Microsoft Edge(最新版) - Console 终端功能依赖 Web Serial API,仅 Chrome / Edge 支持 ## 社区支持 vs 商业支持 | 支持类型 | 渠道 | 说明 | |---------|------|------| | **技术讨论** | GitHub / GitLab Issue | bug 报告、功能建议、使用交流。按 best effort 响应 | | **离线安装包** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 预构建 Docker 镜像,无需本地编译环境 | | **商业技术支持** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 定制化开发、紧急修复、现场部署支持、培训服务 | | **设备适配定制** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 新增厂商/型号支持、特殊网络环境适配 | ## 许可证 [MIT License](LICENSE) --- *Tomato NetOps 源自真实的企业网络安全改造项目实践,解决的是工程师在实施现场遇到的真实问题。*