
warpgate v0.30.0
完全透過型のSSH、HTTPS、Kubernetes、データベース、RDP/VNC用バスション/PAMで、クライアント側の追加ソフトウェアを必要としません
Warpgateは、クライアントアプリやSSHラッパーを必要としない、スマートで完全に透過的なSSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP、VNC用の踏み台ホスト(bastion host)です。
- DMZにセットアップし、ユーザーアカウントを追加して、ネットワーク内の特定のホストやURLに簡単に割り当てることができます。
- Warpgateはすべてのセッションを記録し、内蔵の管理用Web UIから(ライブで)閲覧したり、後で再生したりできます。
- ブラウザベースのSSH、RDP、VNCアクセスが内蔵されており、ネイティブクライアントも引き続き利用できます。
- ジャンプホストではありません。クライアントに対して完全に透過的な方法で、接続をターゲットへ直接転送します。
- ネイティブな2FAおよびSSOサポート(TOTPおよびOpenID Connect)
- IPブロックとユーザーロックアウトを備えた内蔵のブルートフォース対策
- 依存関係のない単一バイナリ。
- 100%安全なRustで書かれています。
Supported by:
はじめに & ダウンロード
- Getting startedのドキュメントページ(またはDockerでのGetting started)をご覧ください。
- リリース / ベータ版バイナリ
- ナイトリービルド
ドキュメント
完全なドキュメントは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を実行すると、ポートバインディングを含む設定ファイルが対話的に生成されます。詳細ははじめにを参照してください。
特定の形式の認証情報で接続を受け取り、ユーザーをローカルで認証し、ターゲット自体に接続してから、両者を接続しながら(オプションで)セッションを記録します。
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を実行してください。
コントリビューター ✨
これらの素晴らしい人々に感謝します(絵文字キー):