logo
0
1
WeChat Login
lm379<69002314+lm379@users.noreply.github.com>
Merge pull request #3 from lm379/dependabot/go_modules/github.com/quic-go/quic-go-0.57.0

FireFlow - 动态防火墙规则管理系统

一个专为多云环境设计的智能防火墙规则管理工具,支持动态 IP 更新和统一管理界面。

项目地址: Github Gitee CNB

🔧 功能特性

✅ 已实现

  • 数据存储:使用 SQLite 数据库存储配置和规则
  • 多云支持:腾讯云轻量应用服务器、阿里云 ECS/轻量应用云服务器、华为云 ECS/Flexus(仅支持中国站)
  • 智能更新:定时任务自动检测并更新 IP 地址
  • 管理界面:直观的 Web 管理控制台
  • API 接口:完整的 RESTful API 支持

🌐 前端界面

FireFlow 提供了现代化的 Web 管理界面,基于 Vue 3 + TypeScript 开发。

🚀 快速开始

Docker 部署(推荐)

本项目支持多平台镜像仓库,您可以根据需要选择拉取:

  • Docker Hub: lm379/fireflow:latest
  • GitHub Container Registry (ghcr): ghcr.io/lm379/fireflow:latest
  • CNB 制品库: docker.cnb.cool/lm379/fireflow:latest
  • 华为云 SWR: swr.cn-southwest-2.myhuaweicloud.com/lm379/fireflow:latest

中国大陆推荐选择 CNB制品库

docker run -d \ --name fireflow \ -p 9686:9686 \ -v ./configs:/app/configs \ lm379/fireflow:latest # ghcr.io/lm379/fireflow:latest # docker.cnb.cool/lm379/fireflow:latest # swr.cn-southwest-2.myhuaweicloud.com/lm379/fireflow:latest

二进制部署

  1. 前往 Release 页面 下载对应架构的二进制包
  2. 解压并运行: 以linux-amd64(x64)为例
    tar -xzf fireflow-linux-amd64.tar.gz mv fireflow-linux-amd64 fireflow ./fireflow

🛡️ 账号与安全

  • 默认账号admin
  • 默认密码password
  • 首次登录后请务必修改密码!

密码重置方法

  • 二进制运行环境下:
    ./fireflow reset
  • Docker 运行环境下:
    docker exec -it fireflow ./fireflow reset

⚠️ 重要提醒

安全须知

  • 请妥善保管各云厂商的 API 密钥
  • 不要将服务端口暴露到公网
  • 请勿设置过于简单的密码(如123456、password等),否则存在极高的安全风险。
  • 因弱密码或未及时修改默认密码或自己泄露API密钥等导致的任何安全问题,均由使用者自行承担,项目及作者不承担相关责任。

⚙️ 配置指南

说明:本程序提供的区域信息可能不完全准确,请以云厂商控制台为准。如果选项中没有目标区域,可以手动输入。

🔹 腾讯云(轻量应用服务器)

1. 获取访问密钥(AK/SK)

推荐使用子账号,安全性更高

  1. 访问 腾讯云 CAM 控制台
  2. 创建子用户,选择「编程访问」
  3. 授予 QcloudLighthouseFullAccess 权限
  4. 保存生成的 secret_id(AK)和 secret_key(SK)

腾讯云子账号配置

2. 获取实例 ID

  1. 进入腾讯云轻量应用服务器控制台
  2. 找到目标服务器,复制实例 ID

腾讯云实例 ID

🔹 阿里云(ECS)

1. 获取访问密钥(AK/SK)

推荐使用 RAM 子账号

  1. 访问 阿里云 RAM 控制台
  2. 创建用户,勾选「使用永久 AccessKey 访问」

阿里云用户创建

  1. 为用户授予 ECS 管理权限

阿里云权限配置

2. 获取安全组 ID

  1. 访问 阿里云 ECS 控制台
  2. 选择对应地域,进入「网络与安全」→「安全组」
  3. 复制安全组 ID(格式:sg-xxxxxxxxx

阿里云安全组

🔹 华为云(ECS/Flexus)

兼容性说明:华为云 ECS 和 Flexus 云服务器使用相同的 API,理论上支持所有使用 VPC 网络的云服务器。

1. 获取访问密钥(AK/SK)

强烈推荐使用 IAM 子用户

  1. 访问 华为云 IAM 控制台
  2. 创建用户,勾选「编程访问」和「访问密钥」

华为云用户创建

  1. 创建用户组并授权 ECS 相关权限

华为云权限配置

主账号密钥(不推荐)

如需使用主账号,请访问 我的凭证 创建访问密钥。

⚠️ 安全警告:主账号 Token 权限过高,泄露风险极大,强烈建议使用子账号。

2. 获取 Project ID

访问 我的凭证,复制与服务器区域对应的项目 ID。

华为云项目 ID

3. 获取安全组 ID

  1. 进入服务器所在地域的「虚拟私有云 VPC」控制台
  2. 选择「访问控制」→「安全组」
  3. 复制实例关联的安全组 ID

华为云安全组

🔹 Azure

1. 创建应用注册

  1. 以管理员账号登录 Azure 门户

  2. 搜索并进入 "应用注册"

    Azure 应用注册

  3. 点击 "新建注册",输入应用名称,选择 "受支持的账户类型" 为 "任何组织目录中的账户和个人 Microsoft 账户",然后创建。

    Azure 应用注册

  4. 在应用概述页面,记录 "应用程序(客户端) ID"(对应 AK)和 "目录(租户)ID"(对应租户 ID)。

    Azure 应用概述

  5. 点击左侧 "证书和密码",创建新客户端密码,设置到期时间。

    Azure 密码创建

  6. 记录生成的密码值(对应 SK)。

    注意:密码仅显示一次,务必妥善保存。如果遗忘,建议删除现有密码并重新创建。

    Azure 密码值

2. 获取资源信息

  1. 找到虚拟机对应的网络安全组。

  2. 在安全组概述页面,记录 "网络安全组名称"(对应实例 ID/安全组 ID)、"资源组名称"(对应 Resource Group)和 "订阅 ID"(对应 Subscription ID)

    Azure 资源信息

3. 授权应用

  1. 返回资源组,点击左侧 "访问控制" → "添加角色分配"

    Azure 访问控制

  2. 搜索 "网络参与者" 角色,点击选中

    Azure 角色搜索

  3. 点击 "成员" → "添加成员",搜索并选择刚才创建的应用

    Azure 添加成员

  4. 点击 "审阅和分配" 完成授权。

  5. 返回 FireFlow,输入上述信息,点击测试。如果成功,将显示当前安全组信息。

About

No description, topics, or website provided.
FireFlowrepo-named
Language
Go99.5%
Dockerfile0.5%