werbot/werbot
GitHub: werbot/werbot
Werbot是一个自托管单点登录解决方案,用于安全共享服务器、数据库和应用访问,并记录会话以支持安全合规。
Stars: 169 | Forks: 9
##
Werbot 是什么?
## 🏆 功能
- Werbot 适用于专用服务器、VPS 和云服务器
- 在一个账户中管理来自不同提供商的服务器
- 无需在服务器上安装任何额外的代理
- 记录每个服务器会话并收集日志
- 提供单点登录
Werbot 使用 Golang 编写,运行在 Docker 容器中,并以微服务方式工作。它需要的处理能力低,易于扩展,并且可以在任何公司的工作流程中在1小时内实施。
**支持的技术:**
- _协议_ - SSH, Telnet, RDP, VNC
- _提供商_ - 所有提供商 + 支持从 AWS, Google, Amazon, Azure 快速导入
- _容器_ - Docker, Kubernetes
- _数据库_ - MySQL, Maria, PostgresQL, Redis, MongoDB, Elasticsearch 以及其他
#### 问题
- 服务器访问、密码和密钥的不安全保管
- 困难的服务器访问管理
- 服务器上不受控制的工作
- 服务器上不受控制的连接
- 昂贵且功能有限的服务器监控工具
#### 解决方案
Werbot 用户使用他们的登录名和私钥通过单点登录连接到所有可访问的服务器。所有在连接到 Werbot 的服务器上执行的工作都会被记录并作为屏幕录像保存。
#### 竞争
现有的身份和访问管理解决方案可能功能有限,或者仅与一个服务器提供商合作,并且支持的协议很少。
还有一些复杂的企业解决方案,它们价格昂贵,并且并不适合所有人。
## 🚀 我们为什么创建 Werbot?
Werbot 的原型最初是为内部使用而开发的。随着时间的推移,该原型得到了改进和开发,成为一个可供所有人使用的完整平台。
SaaS 版本目前在网站 werbot.com 上运行。我们在那里提供了一个现成的解决方案,适合大多数公司,并且不需要专家进行配置,因此即使没有网络安全专家参与也可以使用。
Werbot 涵盖了 3 个最重要的网络安全挑战:
- 帮助管理服务器访问
- 帮助控制用户在服务器上的活动
- 收集证据以证明安全认证合规性
**最近,我们决定重写 SaaS 版本的代码并使其开源。我们目前正在做这项工作。**
## 🧬 项目组件
以下是包含在 `Werbot` 中的模块列表。
| 组件 | 描述 |
| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [web](https://github.com/werbot/werbot.web) | 🖥 Werbot 网页仪表板 |
| [ee](https://github.com/werbot/werbot.ee) | 🏭 Werbot 企业版功能 |
| [install](https://github.com/werbot/install.werbot.com) | 🚀 安装 Werbot 的脚本 |
| [agent.windows](https://github.com/werbot/agent.windows) | 👮♂️ Windows 代理 |
| [agent.unix](https://github.com/werbot/agent.unix) | 👮♂️ Unix 代理 |
| [pam](https://github.com/werbot/pam-nix) | 🔐 用于 *nix 平台原生双因素认证代理的可插拔认证模块 |
## 📚 文档
Werbot 的文档位于 [`docs/`](docs/) 目录中。目前可用:
- [Token 包文档](docs/packages/token.md) - Token 管理系统的全面指南
其他文档正在积极开发中。有关最新更新,请查看 [docs/](docs/) 目录。
## 🏁 安装
### 前置条件
- Docker 和 Docker Compose
- 带有 DNS 访问的域名(推荐使用 Cloudflare)
- Go 1.25+(用于开发)
- Make(用于构建自动化)
### 快速开始
1. **克隆仓库:**
git clone https://github.com/werbot/werbot.git
cd werbot
2. **配置环境:**
- 将 `.env.example` 复制为 `.env`(如果存在)或创建 `.env` 文件
- 配置所需的环境变量:
- `GEOLITE_LICENSE` - 用于下载最新 GeoLite 数据库的 Geolite 密钥
- `DOMAIN` - 格式为 `*.domain.com` 的二级域名
- `DNS_CLOUDFLARE_EMAIL` - 您的 Cloudflare 电子邮件
- `DNS_CLOUDFLARE_API_KEY` - 您的 Cloudflare API 密钥
3. **设置 DNS 记录:**
- 添加指向您服务器的 DNS A 记录:
- `api.domain.com` → 您的服务器 IP
- `app.domain.com` → 您的服务器 IP
4. **初始化环境:**
make init
此脚本将:
- 验证 DNS 配置
- 为 PostgreSQL 和 Redis 生成安全密码
- 生成加密密钥
- 创建必要的配置文件
5. **启动服务:**
cd docker
docker-compose up -d
### 开发设置
1. **安装开发工具:**
make tools
2. **构建项目:**
make build
这将把所有服务构建到 `bin/` 目录中。
3. **运行数据库迁移:**
make migration
4. **更新 GeoLite 数据库:**
make geolite
### 可用的 Make 命令
- `make help` - 显示所有可用命令
- `make init` - 初始化开发环境
- `make build [service]` - 构建项目或特定服务
- `make tools` - 安装/更新开发工具
- `make migration` - 运行数据库迁移
- `make geolite` - 更新 GeoLite 数据库
- `make clean` - 清理临时文件和容器
- `make key` - 生成加密密钥
- `make protos` - 生成 protobuf 文件
### Docker 服务
该项目作为微服务运行在 Docker 容器中:
- **taco** - 主 API 服务
- **buffet** - gRPC 服务
- **avocado** - 认证服务
- **ghost** - 后台工作服务
- **app** - 网页前端
- **postgres** - PostgreSQL 数据库
- **redis** - Redis 缓存
- **haproxy** - 负载均衡器和反向代理
- **acme** - SSL 证书管理(Let's Encrypt)
更多详情,请参阅 [`docker/docker-compose.yaml`](docker/docker-compose.yaml)。
## 👑 社区
加入我们遍布全球的成长中的社区,寻求帮助、提出想法,并讨论 Werbot。
- 在 [Twitter](https://twitter.com/werbot_) 上关注我们
- 在 [LinkedIn](https://www.linkedin.com/company/werbot) 上与我们联系
- 在 [YouTube](https://www.youtube.com/channel/UCQk0_i0h-xB9s9sv4R7HX2g) 上访问我们
- 加入我们的 [Dev community](https://dev.to/werbot)
- 在 [Stack Overflow](https://stackoverflow.com/questions/tagged/werbot) 上搜索 #werbot 相关问题
## 👍 贡献
我们希望您参与到 Werbot 的开发中来!如果您想表示**感谢**和/或支持 `Werbot` 的积极开发:
1. 为项目添加 [GitHub Star](https://github.com/werbot/werbot/stargazers)。
2. [在您的 Twitter](https://twitter.com/intent/tweet?text=Werbot%20is%20an%20%221Password%22%20for%20servers%20and%20teams%20-%20open%20source%20solution%20with%20single%20sign-on%20for%20easy%20and%20secure%20sharing%20of%20servers%2C%20databases%2C%20or%20app%20access.%20https%3A%2F%2Fgithub.com%2Fwerbot%2Fwerbot) 上发推文介绍该项目。
3. 在 [Medium](https://medium.com/)、[Dev.to](https://dev.to/) 或个人博客上撰写评论或教程。
您可以在[贡献指南](CONTRIBUTING.md)中了解如何为此项目做出贡献。
## 🚨 安全
有关安全问题,请查看我们的[漏洞政策](https://github.com/werbot/werbot/security/policy),查看我们的[安全政策](https://werbot.com/legal/security),并请通过电子邮件发送至 [security@werbot.com](mailto:security@werbot.com),而不是在 GitHub 上发布公开问题。
## 📜 许可证
Werbot 的源代码位于[此仓库](https://github.com/werbot/werbot)中,根据 [Business Source License 1.1](/LICENSE) 发布。
位于本仓库 **“add-on/*”** 目录下的所有内容(如果该目录存在),根据 **“add-on/*/LICENSE”** 中定义的许可证授权。
位于本仓库 **“web/”** 目录下的所有内容(如果该目录存在),根据 **“web/LICENSE”** 中定义的许可证授权。
所有并入 Werbot 软件的第三方组件均根据其适用组件所有者提供的原始许可证授权。
## ❓ 许可证常见问题解答
**这是什么许可证?**
Business Source [License](/LICENSE) 与 Apache 2.0 基本相同,唯一的例外是您不能使用该代码创建云服务,或者换句话说,不能将产品转售给他人。
BSL 被 MariaDB、Sentry、CockroachDB、Couchbase 等许多公司采用。在大多数情况下,它是一个比例如 AGPL 更宽松的许可证,因为它允许您对代码进行私人修改。
三年后,该代码也将根据 Apache 2.0 许可证提供。您可以在此处了解更多关于 BSL 的信息 [here](https://mariadb.com/bsl-faq-adopting/)。
**为什么选择 BSL 许可证**?
我们选择该许可证是为了允许用户使用 Werbot 共享对其服务器、数据库、应用或应用程序访问功能或访问监控功能的访问权限,但禁止其他公司使用该代码创建云服务。
我们自己提供[应用程序访问服务](https://werbot.com/),以便实现工作货币化并维持开发努力。
**你们是开源的吗?**
从技术上讲,BSL 许可证被归类为源代码可用,但我们基于源代码是开放的这一事实,继续使用开源这一术语。
现有的 SEO 实践并没有给我们留下太多选择,我们的竞争对手或多或少也在做同样的事情。
#### 解决方案
Werbot 用户使用他们的登录名和私钥通过单点登录连接到所有可访问的服务器。所有在连接到 Werbot 的服务器上执行的工作都会被记录并作为屏幕录像保存。
#### 竞争
现有的身份和访问管理解决方案可能功能有限,或者仅与一个服务器提供商合作,并且支持的协议很少。
还有一些复杂的企业解决方案,它们价格昂贵,并且并不适合所有人。
## 🚀 我们为什么创建 Werbot?
Werbot 的原型最初是为内部使用而开发的。随着时间的推移,该原型得到了改进和开发,成为一个可供所有人使用的完整平台。
SaaS 版本目前在网站 werbot.com 上运行。我们在那里提供了一个现成的解决方案,适合大多数公司,并且不需要专家进行配置,因此即使没有网络安全专家参与也可以使用。
Werbot 涵盖了 3 个最重要的网络安全挑战:
- 帮助管理服务器访问
- 帮助控制用户在服务器上的活动
- 收集证据以证明安全认证合规性
**最近,我们决定重写 SaaS 版本的代码并使其开源。我们目前正在做这项工作。**
## 🧬 项目组件
以下是包含在 `Werbot` 中的模块列表。
| 组件 | 描述 |
| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [web](https://github.com/werbot/werbot.web) | 🖥 Werbot 网页仪表板 |
| [ee](https://github.com/werbot/werbot.ee) | 🏭 Werbot 企业版功能 |
| [install](https://github.com/werbot/install.werbot.com) | 🚀 安装 Werbot 的脚本 |
| [agent.windows](https://github.com/werbot/agent.windows) | 👮♂️ Windows 代理 |
| [agent.unix](https://github.com/werbot/agent.unix) | 👮♂️ Unix 代理 |
| [pam](https://github.com/werbot/pam-nix) | 🔐 用于 *nix 平台原生双因素认证代理的可插拔认证模块 |
## 📚 文档
Werbot 的文档位于 [`docs/`](docs/) 目录中。目前可用:
- [Token 包文档](docs/packages/token.md) - Token 管理系统的全面指南
其他文档正在积极开发中。有关最新更新,请查看 [docs/](docs/) 目录。
## 🏁 安装
### 前置条件
- Docker 和 Docker Compose
- 带有 DNS 访问的域名(推荐使用 Cloudflare)
- Go 1.25+(用于开发)
- Make(用于构建自动化)
### 快速开始
1. **克隆仓库:**
git clone https://github.com/werbot/werbot.git
cd werbot
2. **配置环境:**
- 将 `.env.example` 复制为 `.env`(如果存在)或创建 `.env` 文件
- 配置所需的环境变量:
- `GEOLITE_LICENSE` - 用于下载最新 GeoLite 数据库的 Geolite 密钥
- `DOMAIN` - 格式为 `*.domain.com` 的二级域名
- `DNS_CLOUDFLARE_EMAIL` - 您的 Cloudflare 电子邮件
- `DNS_CLOUDFLARE_API_KEY` - 您的 Cloudflare API 密钥
3. **设置 DNS 记录:**
- 添加指向您服务器的 DNS A 记录:
- `api.domain.com` → 您的服务器 IP
- `app.domain.com` → 您的服务器 IP
4. **初始化环境:**
make init
此脚本将:
- 验证 DNS 配置
- 为 PostgreSQL 和 Redis 生成安全密码
- 生成加密密钥
- 创建必要的配置文件
5. **启动服务:**
cd docker
docker-compose up -d
### 开发设置
1. **安装开发工具:**
make tools
2. **构建项目:**
make build
这将把所有服务构建到 `bin/` 目录中。
3. **运行数据库迁移:**
make migration
4. **更新 GeoLite 数据库:**
make geolite
### 可用的 Make 命令
- `make help` - 显示所有可用命令
- `make init` - 初始化开发环境
- `make build [service]` - 构建项目或特定服务
- `make tools` - 安装/更新开发工具
- `make migration` - 运行数据库迁移
- `make geolite` - 更新 GeoLite 数据库
- `make clean` - 清理临时文件和容器
- `make key` - 生成加密密钥
- `make protos` - 生成 protobuf 文件
### Docker 服务
该项目作为微服务运行在 Docker 容器中:
- **taco** - 主 API 服务
- **buffet** - gRPC 服务
- **avocado** - 认证服务
- **ghost** - 后台工作服务
- **app** - 网页前端
- **postgres** - PostgreSQL 数据库
- **redis** - Redis 缓存
- **haproxy** - 负载均衡器和反向代理
- **acme** - SSL 证书管理(Let's Encrypt)
更多详情,请参阅 [`docker/docker-compose.yaml`](docker/docker-compose.yaml)。
## 👑 社区
加入我们遍布全球的成长中的社区,寻求帮助、提出想法,并讨论 Werbot。
- 在 [Twitter](https://twitter.com/werbot_) 上关注我们
- 在 [LinkedIn](https://www.linkedin.com/company/werbot) 上与我们联系
- 在 [YouTube](https://www.youtube.com/channel/UCQk0_i0h-xB9s9sv4R7HX2g) 上访问我们
- 加入我们的 [Dev community](https://dev.to/werbot)
- 在 [Stack Overflow](https://stackoverflow.com/questions/tagged/werbot) 上搜索 #werbot 相关问题
## 👍 贡献
我们希望您参与到 Werbot 的开发中来!如果您想表示**感谢**和/或支持 `Werbot` 的积极开发:
1. 为项目添加 [GitHub Star](https://github.com/werbot/werbot/stargazers)。
2. [在您的 Twitter](https://twitter.com/intent/tweet?text=Werbot%20is%20an%20%221Password%22%20for%20servers%20and%20teams%20-%20open%20source%20solution%20with%20single%20sign-on%20for%20easy%20and%20secure%20sharing%20of%20servers%2C%20databases%2C%20or%20app%20access.%20https%3A%2F%2Fgithub.com%2Fwerbot%2Fwerbot) 上发推文介绍该项目。
3. 在 [Medium](https://medium.com/)、[Dev.to](https://dev.to/) 或个人博客上撰写评论或教程。
您可以在[贡献指南](CONTRIBUTING.md)中了解如何为此项目做出贡献。
## 🚨 安全
有关安全问题,请查看我们的[漏洞政策](https://github.com/werbot/werbot/security/policy),查看我们的[安全政策](https://werbot.com/legal/security),并请通过电子邮件发送至 [security@werbot.com](mailto:security@werbot.com),而不是在 GitHub 上发布公开问题。
## 📜 许可证
Werbot 的源代码位于[此仓库](https://github.com/werbot/werbot)中,根据 [Business Source License 1.1](/LICENSE) 发布。
位于本仓库 **“add-on/*”** 目录下的所有内容(如果该目录存在),根据 **“add-on/*/LICENSE”** 中定义的许可证授权。
位于本仓库 **“web/”** 目录下的所有内容(如果该目录存在),根据 **“web/LICENSE”** 中定义的许可证授权。
所有并入 Werbot 软件的第三方组件均根据其适用组件所有者提供的原始许可证授权。
## ❓ 许可证常见问题解答
**这是什么许可证?**
Business Source [License](/LICENSE) 与 Apache 2.0 基本相同,唯一的例外是您不能使用该代码创建云服务,或者换句话说,不能将产品转售给他人。
BSL 被 MariaDB、Sentry、CockroachDB、Couchbase 等许多公司采用。在大多数情况下,它是一个比例如 AGPL 更宽松的许可证,因为它允许您对代码进行私人修改。
三年后,该代码也将根据 Apache 2.0 许可证提供。您可以在此处了解更多关于 BSL 的信息 [here](https://mariadb.com/bsl-faq-adopting/)。
**为什么选择 BSL 许可证**?
我们选择该许可证是为了允许用户使用 Werbot 共享对其服务器、数据库、应用或应用程序访问功能或访问监控功能的访问权限,但禁止其他公司使用该代码创建云服务。
我们自己提供[应用程序访问服务](https://werbot.com/),以便实现工作货币化并维持开发努力。
**你们是开源的吗?**
从技术上讲,BSL 许可证被归类为源代码可用,但我们基于源代码是开放的这一事实,继续使用开源这一术语。
现有的 SEO 实践并没有给我们留下太多选择,我们的竞争对手或多或少也在做同样的事情。标签:Go语言, IT基础设施, IT安全, Python工具, Streamlit, 共享登录, 单点登录, 后端开发, 团队协作, 基础设施即服务, 安全共享, 应用程序访问, 搜索引擎查询, 数据库访问, 日志审计, 服务器监控, 服务器访问, 权限管理, 模型越狱, 测试用例, 程序破解, 统一登录, 自托管, 访问控制, 访问管理, 请求拦截, 远程访问