warp-tech/warpgate

GitHub: warp-tech/warpgate

一款基于 Rust 的轻量级多协议透明堡垒机,无需客户端即可实现对 SSH、数据库和 Kubernetes 等服务的集中访问管控与会话审计。

Stars: 6963 | Forks: 271


Shows a black logo in light color mode and a white one in dark color mode.


GitHub All Releases     Discord

Warpgate 是一个智能且完全透明的 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL 堡垒机,不需要客户端应用程序或 SSH 包装器。 * 将其部署在您的 DMZ 中,添加用户账户,并轻松将它们分配到网络内的特定主机和 URL。 * Warpgate 会记录每个会话,供您通过内置的 Web 管理 UI 查看(实时)和回放。 * 不是跳板机 - 以对客户端完全透明的方式将连接直接转发到目标。 * 原生 2FA 和 SSO 支持 (TOTP & OpenID Connect) * 无依赖的单个二进制文件。 * 100% 使用安全的 Rust 编写。 ## 入门指南与下载 * 请参阅[入门指南](https://warpgate.null.page/getting-started/)文档页面(或 [Docker 入门指南](https://warpgate.null.page/getting-started-on-docker/))。 * [Release / beta 二进制文件](https://github.com/warp-tech/warpgate/releases) * [Nightly 构建](https://nightly.link/warp-tech/warpgate/workflows/build/main) ## Warpgate 与跳板机 / VPN / Teleport 有何不同? | Warpgate | SSH 跳板机 | VPN | Teleport | |-|-|-|-| | ✅ **用户与服务之间精确的 1:1 分配** | (通常)可完全访问跳板机后的网络 | (通常)可完全访问网络 | ✅ **用户与服务之间精确的 1:1 分配** | | ✅ **不需要自定义客户端** | 需要跳板机配置 | ✅ **不需要自定义客户端** | 需要自定义客户端 | | ✅ **开箱即用的 2FA** | 🟡 可通过附加 PAM 插件实现 2FA | 🟡 取决于提供商 | ✅ **开箱即用的 2FA** | | ✅ **开箱即用的 SSO** | 🟡 可通过附加 PAM 插件实现 SSO | 🟡 取决于提供商 | 收费 | | ✅ **命令级别的审计** | 🟡 跳板机上进行连接级别的审计,如果授予 root 访问权限,目标上将没有安全审计 | 如果授予 root 访问权限,目标上将没有安全审计 | ✅ **命令级别的审计** | | ✅ **完整的会话录制** | 如果授予 root 访问权限,目标上将无法进行安全录制 | 如果授予 root 访问权限,目标上将无法进行安全录制 | ✅ **完整的会话录制** | | ✅ **非交互式连接** | 🟡 如果客户端原生支持跳板机,则可以进行非交互式连接 | ✅ **非交互式连接** | 非交互式连接需要使用 SSH 客户端包装器或运行隧道 | | ✅ **自托管,数据自有** | ✅ **自托管,数据自有** | 🟡 取决于提供商 | SaaS |
image
## 报告安全问题 请使用 GitHub 的[漏洞报告系统](https://github.com/warp-tech/warpgate/security/policy)。 ## 项目状态 该项目已准备好投入生产环境。 ## 工作原理 Warpgate 是一项部署在堡垒机/DMZ 主机上的服务,它将接受 SSH、HTTPS、Kubernetes、MySQL 和 PostgreSQL 连接,并提供一个(可选的)Web 管理 UI。 运行 `warpgate setup` 以交互方式生成配置文件,包括端口绑定。有关详细信息,请参阅[入门指南](https://warpgate.null.page/getting-started/)。 它接收使用特定格式凭据的连接,在本地对用户进行身份验证,连接到目标本身,然后将双方连接在一起,同时(可选地)记录会话。 通过 HTTPS 连接时,Warpgate 会显示可用目标的选择列表,然后将一个会话中的所有流量代理到选定的目标。您可以随时切换目标。 您可以通过管理 UI 管理目标和用户列表并将它们相互分配,会话历史记录存储在 SQLite 数据库中(默认:在 `/var/lib/warpgate` 中)。 您还可以使用 Web 管理界面查看实时会话列表、查看会话录制、日志等。 ## 参与贡献 / 从源码构建 * 您需要 Rust、NodeJS 和 NPM * 克隆该仓库 * 使用 [Just](https://github.com/casey/just) 来运行任务 - 安装它:`cargo install just` * 安装管理 UI 的依赖:`just npm install` * 构建前端:`just npm run build` * 构建 Warpgate:`cargo build`(可选 `--release`) 二进制文件位于 `target/{debug|release}` 中。 ### 技术栈 * Rust 🦀 * HTTP: `poem-web` * Database: SQLite via `sea-orm` + `sqlx` * SSH: `russh` * Typescript * Svelte * Bootstrap ### 后端 API * Warpgate 面向管理员和用户的 API 使用自动生成的 OpenAPI schemas 和 SDKs。要在更改 query/response 结构后更新 SDKs,请运行 `just openapi-all`。
标签:2FA, DMZ, HTTPS, IP 地址批量处理, JSONLines, MITM代理, OpenID Connect, osquery, PAM, PE 加载器, PostgreSQL, Rust, SSH, SSO, 会话录制, 单点登录, 双因素认证, 可视化界面, 堡垒机, 开源, 无代理, 特权访问管理, 网络安全, 网络流量审计, 运维安全, 远程访问, 通知系统, 隐私保护, 零信任