Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
zttp — ゼロトラストSSH踏み台プロキシ。Vaultをバックエンドとした鍵管理、RBACポリシー適用、完全なセッション録画、および本番インフラへの監査可能なアクセスを実現する管理用TUIを備えています。 | Kitploit
ツール/GitLabGitLab/nihal799/zttp
認証と認可クラウドインフラストラクチャセキュリティ防御ツールネットワークセキュリティDevSecOpsアイデンティティ&アクセス管理 (IAM)
GitLabnihal799/zttp

zttp

ゼロトラストSSH踏み台プロキシ。Vaultをバックエンドとした鍵管理、RBACポリシー適用、完全なセッション録画、および本番インフラへの監査可能なアクセスを実現する管理用TUIを備えています。

リポジトリを見る
11112日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

ZTTP: ゼロトラストSSH踏み台プロキシ

🔗 プロジェクトミラー: GitHub | GitLab

ZTTPは、Golangで構築された堅牢なセルフホスト型ゼロトラストSSH踏み台プロキシです。 HashiCorp Vaultを基盤とした鍵管理、RBACポリシーの適用、完全なセッション記録、そしてインタラクティブな管理TUIを備えており、本番インフラへの監査可能なゼロトラストアクセスを必要とするチーム向けに設計されています。


目次

  • ZTTPを選ぶ理由
  • アーキテクチャ概要
  • 主な機能
  • 前提条件
  • クイックスタート — サーバー
  • クイックスタート — クライアント
  • 設定
  • ロールとRBACポリシー
  • 管理コンソール
  • 監査ログとセッション記録
  • ソースからのビルド
  • Makefileリファレンス
  • スクリーンショットとデモ
  • プロジェクト構成
  • セキュリティモデル
  • コントリビューション
  • ライセンス

ZTTPを選ぶ理由

現代のエンジニアリングチームには、開発者が業務を遂行するために必要最小限のアクセス権を与える手段が必要です — それ以上でもそれ以下でもありません。従来のSSH鍵配布はエラーが起きやすく、鍵が共有されたり、ノートPC上で忘れ去られたり、失効が数日遅れたりします。

ZTTP SSHプロキシは、インフラへの単一のゼロトラストの扉として機能することで、この問題を解決します:

課題ZTTPの解決策
ノートPC上でSSH鍵が共有される鍵はHashiCorp Vault内にのみ存在 — ディスク上には決して置かれない
誰が何を行ったかが見えないすべてのキーストロークが.ttyrec形式で記録される
本番環境への無差別なアクセスロールベースのポリシーエンジンが環境ごとのルールを適用する
アクティブなセッションを停止する手段がないキルスイッチのgRPCエンドポイントが任意のライブセッションを終了させる
監査人にとって不透明なアクセスセッション再生、テキストログ、管理者アクションログを備えた管理TUI

アーキテクチャ概要

Developer Laptop
      │
      │  zttp
      │  (Under the hood: SSH over port 2224)
      ▼
┌─────────────────────────────────────────────────────────┐
│                     ZTTP Proxy                          │
│                                                         │
│  ① Auth Gate     — bcrypt/Argon2id login TUI           │
│  ② RBAC Engine   — environment-aware policy check      │
│  ③ Vault Fetch   — ephemeral SSH key retrieval         │
│  ④ Bridge        — transparent TCP tunnel              │
│  ⑤ Audit Writer  — ttyrec frame recorder               │
└──────────┬──────────────────────────────────────────────┘
           │  ssh (private IP, ephemeral key)
           ▼
     Target Server

インフラストラクチャサービス(Docker Compose):

サービス目的
zttp-proxyコアとなる ZTTP SSH 踏み台プロキシ(Golang バイナリ)
zttp-postgresコントロールプレーンのデータベース(ユーザー、サーバー、RBAC ポリシー)
zttp-vaultHashiCorp Vault — SSH 秘密鍵を保存
zttp-nginx/release/ で CLI インストーラーを配信
zttp-init-auditボリュームのパーミッションを修正するワンショットコンテナ

機能ハイライト

  • 🔐 ゼロトラスト認証 — bcrypt パスワードハッシュ、レート制限、5 回の失敗試行後のアカウントロックアウトを備えた対話型 SSH ログイン TUI
  • 🛡️ RBAC ポリシーエンジン — 単一の最適化された PostgreSQL JOIN によるロール単位・環境単位のアクセス制御(ラウンドトリップなし)
  • 🗝️ Vault バックエンドの SSH 鍵 — 秘密鍵はディスクに一切書き込まれず、セッションごとに HashiCorp Vault から一時的に取得
  • 📹 完全なセッション記録 — すべてのセッションはタイムスタンプ付きフレームで .ttyrec 形式に記録
  • 🖥️ 対話型管理 TUI — ユーザー管理、サーバー登録、アクセス許可、ログレビューのためのフルターミナル UI
  • 🔍 監査ログビューア — サーバー別にセッションを閲覧し、記録を再生、または管理コンソールからクリーンなテキストログを直接読む
  • ⚡ キルスイッチ — 任意のライブセッションを即座に終了する gRPC エンドポイント
  • 📋 管理者アクションログ — すべての管理操作(ユーザー作成、アクセス許可、ログ閲覧)が永続的な監査証跡に記録
  • 🌍 マルチプラットフォームクライアント — Linux、macOS(amd64/arm64)、Windows 向けのシングルバイナリ CLI

前提条件

サーバー(プロキシホスト):

  • Docker ≥ 24 および Docker Compose ≥ 2.20
  • ポート 2224 で公開または LAN からアクセス可能な IP
  • make(任意だが推奨)

開発者(クライアント):

  • 任意の SSH クライアント(ssh コマンド)
  • Linux、macOS、または Windows マシン

クイックスタート — サーバー

1. リポジトリのクローン

git clone https://gitlab.com/Nihal799/zttp.git
cd zttp

2. 環境を構成する

cp .env.example .env

.env を編集し、少なくとも以下を設定します:

PROXY_NODE_IP=<your-server-public-ip>
POSTGRES_PASSWORD=<a-strong-password>
VAULT_TOKEN=<a-strong-vault-token>

⚠️ .env ファイルを絶対にコミットしないでください。 これは .gitignore に記載されています。

3. すべてのサービスを起動する

make docker-up
# or directly:
docker compose -f deploy/docker-compose.yml up -d --build

4. サービスが正常であることを確認する

make docker-ps
curl http://localhost:8080/healthz

5. CLI インストーラーのビルドと公開

make release PROXY_ADDR=<your-server-ip>:2224

これにより、すべてのプラットフォーム向けのクライアントがクロスコンパイルされ、dist/install.sh と dist/install.ps1 が正しいサーバー URL で自動更新されます。Nginx コンテナはこれらを http://<your-server-ip>:8555/ で配信します。


クイックスタート — クライアント

Linux / macOS

curl -fsSL http://<proxy-ip>:8555/install.sh | bash

Windows(PowerShell、管理者として実行)

irm http://<proxy-ip>:8555/install.ps1 | iex

接続

インストール後、ZTTPゲートウェイに接続します:

zttp
# or directly:
ssh -p 2224 <your-username>@<proxy-ip>

ターミナルのログイン画面が表示されます。認証後、アクセス権限のあるサーバーの一覧が表示されます。


設定

すべての設定は環境変数(または .env ファイル)で行います。完全なリファレンスは .env.example を参照してください。

変数デフォルト説明
PROXY_LISTEN_ADDR0.0.0.0:2222SSH プロキシのバインドアドレス
HTTP_LISTEN_ADDR0.0.0.0:8080ヘルスチェック用 HTTP アドレス
GRPC_LISTEN_ADDR0.0.0.0:9090キルスイッチ用 gRPC アドレス
PROXY_NODE_IP127.0.0.1CLI バイナリに埋め込まれる外部 IP
DATABASE_URLpostgres://zttp:...PostgreSQL 接続文字列
VAULT_ADDRhttp://localhost:8201Vault サーバー URL
VAULT_TOKENdev-root-token-zttpVault ルートトークン(開発専用 — 本番では AppRole を使用)
MAX_FAILED_ATTEMPTS5ロックアウトしきい値
LOCKOUT_DURATION15mアカウントロックアウトの期間
RATE_LIMIT_PER_MIN10IP ごとの 1 分あたりの最大ログイン試行回数
AUDIT_LOG_DIR/var/log/zttp/auditセッション録画ディレクトリのパス
SOC_WEBHOOK_URL(空)SOC アラート用のオプション Webhook

ロールと RBAC ポリシー

ZTTP はロールベースモデルを採用しています。各ユーザーにはロールが割り当てられ、各ロールにはアクセス可能なサーバー環境を定義するポリシーがあります。

ロールアクセス
security-adminすべての環境へのフルアクセス + 管理コンソール
sre-tier1本番環境を含むすべての環境
sre-tier2ステージングと開発環境のみ
dev開発環境のみ
readonly開発環境、制限されたコマンドセット

ロールとサーバーの割り当ては管理コンソール(下記参照)で管理されます。RBAC エンジンはすべてのチェックを単一の PostgreSQL クエリで実行し、アクセスが拒否された理由をクライアントに一切公開しません(列挙攻撃からの保護)。


管理コンソール

ゲートウェイメニューから zttp-admin サーバーに接続するか、security-admin ロールを持つアカウントでログインしてください。

管理コンソールでは以下を提供します:

メニューオプション説明
Add Userロール割り当て付きで新規ユーザーを作成
Add Serverターゲットサーバーを登録(ホスト名、IP、環境、SSH ユーザー)
Manage Server Access特定サーバーへのユーザーアクセスを付与または取り消し
View Usersすべてのユーザーとそのロールを一覧表示
View Servers登録済みのすべてのサーバーを一覧表示
View Audit Logsセッションの閲覧、録画の再生、テキストログの読み取り
[ Back ]サーバーゲートウェイに戻る

すべての管理操作は監査ボリューム内の admin-actions.log に記録されます。


監査ログとセッション録画

すべてのセッションは zttp-audit-logs Docker ボリューム(コンテナ内の /var/log/zttp/audit/)に保存されます。

管理コンソールからの閲覧

  1. security-admin としてログイン
  2. View Audit Logs を選択
  3. 一覧からサーバーを選択
  4. セッションを選択
  5. View Text Log(ANSI 除去済みで読みやすい)または Play Recording(リアルタイム再生)を選択
  6. Ctrl+C を押して戻る

ホストからの閲覧(生データ)

# List recordings
sudo ls /var/lib/docker/volumes/zttp-audit-logs/_data/

# Play a recording with ttyplay
sudo ttyplay /var/lib/docker/volumes/zttp-audit-logs/_data/<session-id>.ttyrec

# Read admin actions log
sudo cat /var/lib/docker/volumes/zttp-audit-logs/_data/admin-actions.log

ソースからのビルド

要件: Go 1.25+、Docker(クロスコンパイル用)

# Build proxy + CLI for current platform
make build

# Cross-compile CLI for all platforms (Linux, macOS, Windows)
make release PROXY_ADDR=<proxy-ip>:2224

# Run tests
make test

# Run proxy locally (requires Postgres + Vault already running)
make run-proxy

Makefile リファレンス

コマンド説明
make build現在のプラットフォーム向けにプロキシと CLI をビルド
make releaseすべてのプラットフォーム向けに CLI バイナリをクロスコンパイル
make release-dockerDocker コンテナ内でクロスコンパイル(snap/WSL の問題を回避)
make docker-upすべての Docker Compose サービスを起動
make docker-downすべてのサービスを停止し、ボリュームを削除
make docker-logsプロキシのログを追跡表示
make docker-psコンテナのステータスを表示
make testすべての Go テストを実行
make migrateデータベースマイグレーションを適用
make seed開発用データをシード
make hashpw PW=mypassword手動での DB シード用に bcrypt ハッシュを生成
make cleanコンパイル済みバイナリとビルドキャッシュを削除

スクリーンショット & デモ

ツールをダウンロード