
warpgate v0.29.0-beta.1
完全透過型のSSH、HTTPS、Kubernetes、データベース、RDP/VNC用バスション/PAMで、クライアント側の追加ソフトウェアを必要としません
Warpgateは、クライアントアプリやSSHラッパーを必要としない、スマートで完全に透過的なSSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP、VNC用の踏み台ホストです。
- DMZにセットアップし、ユーザーアカウントを追加して、ネットワーク内の特定のホストやURLに簡単に割り当てることができます。
- Warpgateはすべてのセッションを記録し、内蔵の管理Web UIを通じてライブで表示したり、後で再生したりできます。
- ブラウザベースのSSH、RDP、VNCアクセスが内蔵されており、ネイティブクライアントも引き続き利用できます。
- ジャンプホストではありません。クライアントに対して完全に透過的な方法で、接続をターゲットへ直接転送します。
- ネイティブな2FAおよびSSOサポート(TOTPおよびOpenID Connect)
- IPブロッキングとユーザーロックアウトを備えた内蔵のブルートフォース対策
- 依存関係のない単一バイナリ。
- 100%安全なRustで書かれています。
Supported by:
はじめに & ダウンロード
- Getting started ドキュメントページ(または Getting started on Docker)をご覧ください。
- リリース / ベータバイナリ
- ナイトリービルド
ドキュメント
完全なドキュメントは warpgate.null.page で入手できます。以下を含みます:
- Login Protection - ブルートフォース対策の設定
- SSO - OpenID Connectによるシングルサインオン
- Tickets - 一時的なアクセス資格情報
Warpgateはジャンプホスト / VPN / Teleportとどう違うのか?
| Warpgate | SSHジャンプホスト | VPN | Teleport |
|---|---|---|---|
| ✅ ユーザーとサービス間の正確な1:1割り当て | (通常)ジャンプホスト背後のネットワークへの完全なアクセス | (通常)ネットワークへの完全なアクセス | ✅ ユーザーとサービス間の正確な1:1割り当て |
| ✅ カスタムクライアント不要 | ジャンプホストの設定が必要 | ✅ カスタムクライアント不要 | カスタムクライアントが必要 |
| ✅ 2FAが標準搭載 | 🟡 追加のPAMプラグインで2FAが可能 | 🟡 プロバイダーに依存 | ✅ 2FAが標準搭載 |
| ✅ SSOが標準搭載 | 🟡 追加のPAMプラグインでSSOが可能 | 🟡 プロバイダーに依存 | 有料 |
| ✅ コマンドレベルの監査 | 🟡 ジャンプホストでの接続レベルの監査、rootアクセスが与えられた場合のターゲットでの安全な監査なし | rootアクセスが与えられた場合のターゲットでの安全な監査なし | ✅ コマンドレベルの監査 |
| ✅ 完全なセッション記録 | rootアクセスが与えられた場合のターゲットでの安全な記録は不可能 | rootアクセスが与えられた場合のターゲットでの安全な記録は不可能 | ✅ 完全なセッション記録 |
| ✅ 非対話型接続 | 🟡 クライアントがジャンプホストをネイティブにサポートしている場合、非対話型接続が可能 | ✅ 非対話型接続 | 非対話型接続にはSSHクライアントラッパーの使用またはトンネルの実行が必要 |
| ✅ セルフホスト、データはあなたのもの | ✅ セルフホスト、データはあなたのもの | 🟡 プロバイダーに依存 | SaaS |
| ✅ 内蔵のブルートフォース対策 | 🟡 fail2banのセットアップが必要 | 🟡 プロバイダーに依存 | ✅ 内蔵のブルートフォース対策 |
|
|
|
セキュリティ問題の報告
GitHubの脆弱性報告システムをご利用ください。
プロジェクトの状況
Warpgateはエンタープライズ環境で積極的に使用されています。
次に何が計画され、取り組まれているかは、公開ロードマップで追跡されています。
仕組み
Warpgateは、踏み台/DMZホストにデプロイするサービスで、SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP、VNC接続を受け入れ、(オプションの)Web管理UIを提供します。
warpgate setup を実行すると、ポートバインディングを含む設定ファイルを対話的に生成できます。詳細はGetting startedをご覧ください。
特定の形式の資格情報で接続を受け取り、ユーザーをローカルで認証し、ターゲット自体に接続してから、両者を接続しながら(オプションで)セッションを記録します。
HTTPS経由で接続する場合、Warpgateは利用可能なターゲットの選択肢を提示し、セッション内のすべてのトラフィックを選択されたターゲットにプロキシします。ターゲットはいつでも切り替えることができます。
ターゲットとユーザーのリストを管理し、管理UIを通じてそれらを相互に割り当てることができ、セッション履歴はSQLiteデータベースに保存されます(デフォルト:/var/lib/warpgate)。
管理Webインターフェースを使用して、ライブセッションリストの表示、セッション記録のレビュー、ログなどを確認することもできます。
AI透明性の開示
2025年後半、このプロジェクトはAI支援によるコントリビューションの受け入れを開始しました。コントリビューターはAIの使用を開示する必要があります。AI支援であれそうでなかれ、すべてのPRに同じ高品質基準を適用することで、品質やセキュリティを犠牲にする必要はないと考えています。
AIは、何も考えずにノリで使う人々からオートコンプリートのユーザーまで幅広いスペクトルがあるため、その使用について透明性を保つことは、このプロジェクトにおけるAIの位置づけを確立し、限定するのに役立つと考えています。
このプロジェクトのアーキテクチャとセキュリティに関する決定は100%人間によるものです。
コントリビューション / ソースからのビルド
- Rust、NodeJS、NPMが必要です
- リポジトリをクローンします
- タスクの実行にはJustを使用します - インストール:
cargo install just - 管理UIの依存関係をインストール:
just npm install - フロントエンドをビルド:
just npm run build - Warpgateをビルド:
cargo build(オプションで--release)
バイナリはtarget/{debug|release}にあります。
技術スタック
- Rust 🦀
- HTTP:
poem-web - データベース:
sea-orm+sqlxによるSQLite - SSH:
russh
- HTTP:
- Typescript
- Svelte 5
- Bootstrap
バックエンドAPI
- Warpgateの管理およびユーザー向けAPIは、自動生成されたOpenAPIスキーマとSDKを使用します。クエリ/レスポンス構造を変更した後にSDKを更新するには、
just openapi-allを実行します。