zwall-net/zwall-community

GitHub: zwall-net/zwall-community

基于 eBPF/XDP 的开源分布式下一代防火墙,提供集中化策略管理与内核级流量防护。

Stars: 3 | Forks: 0

# ZWall 社区

ZWall Community dashboard

基于 eBPF/XDP 构建的开源 Linux 防火墙和威胁响应功能,具备集中化管理、实时可视化和操作员控制的部署能力。

AGPL-3.0-only Go 1.25 React 18 PostgreSQL 15+ Linux 4.15+

## 为何选择 ZWall 社区版 ZWall 社区版是 ZWall 平台的开源版本。它为安全团队和基础设施运维人员提供了一个集中管理的 Linux 防火墙和威胁控制层,依托 eBPF/XDP 贴近内核运行,并配备网页仪表板、API、CLI、指标监控和基于代理的策略执行功能。 它适用于以下场景: - 实验室和测试环境 - 中小型企业及小型生产集群 - 正在评估 ZWall 平台的安全团队 - 希望在 Linux 上实现透明、自管部署的操作员 ZWall 社区版支持最多 **3 个注册代理连接至每个管理节点**。 ## 核心能力 ### 内核级防火墙 - 基于 eBPF/XDP 的低开销入口流量过滤 - IP、CIDR、端口、协议和 MAC 地址控制 - 针对进程级策略场景的 UID/GID 感知网络过滤 - 白名单与黑名单工作流 - 支持接口级别的带宽控制与 SMTP 流量控制 ### 威胁检测与响应 - SYN、ICMP 和 UDP 洪水攻击防护 - 端口扫描检测与自动响应路径 - 对受监控服务的暴力破解检测 - DHCP 防护、BPDU 阻断与 MAC 地址欺骗保护 - 临时到永久的阻断流程与关联事件处理 ### 集中化运营 - 管理节点与代理节点的架构,支持集中式策略分发 - 基于 React 的网页仪表板,用于规则、代理、健康状态与事件的可视化 - `zwallctl` CLI 用于运维流程 - REST API 用于自动化与集成 - Prometheus 指标与内置的 Grafana 仪表板 ### 基础设施支持 - 对 KVM/libvirt 虚拟化的感知能力 - 基于 GeoIP 的控制与外部黑名单导入 - RBL 检查与通知流程 - ModSecurity 集成路径,用于 Web 防护场景 - 集中化审计与安全事件可视化 ## 架构概览 ``` flowchart LR subgraph Manager["ZWall Community Manager"] API["REST API"] UI["Web UI"] DB[(PostgreSQL)] METRICS["Prometheus Metrics"] API --- UI API --- DB API --- METRICS end subgraph AgentA["Agent Node A"] RUNTIMEA["Agent Runtime"] XDPA["XDP / eBPF"] end subgraph AgentB["Agent Node B"] RUNTIMEB["Agent Runtime"] XDPB["XDP / eBPF"] end API <-->|"JWT / mTLS-capable sync"| RUNTIMEA API <-->|"JWT / mTLS-capable sync"| RUNTIMEB RUNTIMEA --- XDPA RUNTIMEB --- XDPB ``` 从整体上看: 1. 管理节点在 PostgreSQL 中存储策略、安全设置与集群状态。 2. 代理节点向管理节点注册,并通过心跳循环同步策略。 3. 强制执行在代理节点上通过 eBPF/XDP 及相关内核钩子完成。 4. 指标、事件与健康数据回传到管理节点以实现可视化与运维。 ## 社区版边界 ZWall 社区版有意定位为开源自托管使用。 - **集群限制:** 每个管理节点最多支持 `3` 个注册代理 - **TLS 模型:** 操作员管理的证书与被动证书可见性 - **部署模型:** 自建源码构建与安装 - **版本范围:** 社区版不包括企业版独有的规模限制、商业支持或私有版治理功能 社区版 **不** 提供产品管理的 ACME 或证书中心自动化功能。如果启用了管理节点 TLS,请操作员手动提供并轮换证书文件。 ## 快速开始 ### 前置条件 - Linux 内核 `4.15+`(推荐 `5.4+`) - Go `1.25+` - Node.js `18+` - PostgreSQL `15+` - `clang`、`llvm` 和 `libbpf-dev` 或等效工具链包 ### 克隆与构建 ``` git clone https://github.com/zwall-net/zwall-community.git cd zwall-community go build -o bin/manager ./cmd/manager go build -o bin/agent ./cmd/agent go build -o bin/zwallctl ./cmd/zwallctl cd ebpf && make && cd .. cd web && npm install && npm run build && cd .. ``` ### 自动化安装 对于受支持的主机,可使用以下方式进行引导安装: ``` sudo ./scripts/setup.sh ``` ### 手动安装 1. 创建 PostgreSQL 数据库与用户。 2. 将 [`configs/manager.example.yml`](configs/manager.example.yml) 复制到 `/etc/zcs/manager.yml` 并配置数据库、网络与 TLS 路径。 3. 在首次启动前运行管理节点迁移: ``` ./bin/manager -config /etc/zcs/manager.yml -migrate ``` 4. 启动管理节点: ``` ./bin/manager -config /etc/zcs/manager.yml ``` 5. 将 [`configs/agent.example.yml`](configs/agent.example.yml) 复制到 `/etc/zcs/agent.yml`,指向管理节点并启动代理。 ## 部署最佳实践 - 在使用操作员管理证书的情况下通过 TLS 运行管理节点。 - 定期备份 PostgreSQL 并在生产使用前测试恢复流程。 - 限制管理节点的暴露范围,仅限可信网络、VPN 或受控管理访问路径。 - 在部署代理前验证内核、BTF 与 libbpf 的先决条件。 - 安装与升级后监控 `/metrics`、管理节点日志与代理健康状态。 - 将社区版视为自管安全平台:在广泛部署前于安全环境中验证策略。 ## 文档地图 - [架构](docs/ARCHITECTURE.md) - [安装指南](docs/INSTALLATION_GUIDE.md) - [运维指南](docs/OPERATIONS_GUIDE.md) - [API 参考](docs/API_REFERENCE_COMPLETE.md) - [zwallctl CLI 参考](docs/ZWALLCTL_CLI_REFERENCE.md) - [管理节点内部原理](docs/MANAGER_INTERNALS.md) - [代理节点内部原理](docs/AGENT_INTERNALS.md) - [前端架构](docs/FRONTEND_ARCHITECTURE.md) ## 社区版 vs 企业版 | 领域 | ZWall 社区版 | ZWall 企业版 | | --- | --- | --- | | 代理容量 | 每个管理节点最多 3 个代理 | 更大规模集群 | | 支持模型 | 自管、社区驱动 | 商业支持与指导 | | 治理深度 | 核心操作控制 | 高级企业治理与私有版能力 | | 适用场景 | 实验室、中小型企业、评估、小型集群 | 大规模集群、监管环境、商业部署 | 需要更大规模集群、企业支持或高级治理功能?请访问 [zwall.net](https://zwall.net) 了解 ZWall 企业版。 ## 贡献与许可 ZWall 社区版在 [AGPL-3.0-only](LICENSE) 许可下发布。 - 贡献指南:[CONTRIBUTING.md](CONTRIBUTING.md) - 安全报告:[SECURITY.md](SECURITY.md) - 发布历史:[CHANGELOG.md](CHANGELOG.md)
标签:agent部署, AGPLv3, API, CLI, EVTX分析, Go语言, ICMP Flood防护, Kubernetes网络, Linux 4.15+, Linux内核防火墙, PostgreSQL, React, SMTP流量控制, SYN Flood防护, Syscalls, UDP Flood防护, UID/GID感知过滤, Web界面, WiFi技术, XDP, 下一代防火墙, 云防火墙, 仪表盘, 低开销, 内核旁路, 内核级防火墙, 威胁响应, 安全运营, 容器网络, 带宽控制, 开源防火墙, 扫描框架, 接口级控制, 操作员控制, 日志审计, 流量过滤, 测试用例, 白名单, 程序破解, 端口扫描检测, 网络可见性, 网络测绘, 自托管, 虚拟化防火墙, 进程隐藏, 透明代理, 集中化管理, 零信任网络, 黑名单