Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

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

zttp

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

リポジトリを見る
132ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

ZTTP — ゼロトラスト透過型プロキシ

堅牢化されたセルフホスト型SSH踏み台ホスト — Vault連携の鍵管理、RBACポリシー適用、完全なセッション録画、対話型管理TUIを備え、監査可能なゼロトラストアクセスを本番インフラへ提供するチーム向けに設計されています。


目次

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

ZTTPを選ぶ理由

現代のエンジニアリングチームには、開発者に必要最小限のアクセス権を付与する方法が求められています — それ以上でもそれ以下でもありません。従来のSSH鍵の配布はエラーが発生しやすく、鍵は共有され、ラップトップに置き忘れられ、失効が数日遅れることがあります。

ZTTPは、インフラへの単一の入り口として機能することでこの問題を解決します:

問題ZTTPの解決策
ラップトップで共有されるSSH鍵鍵はHashiCorp Vault内にのみ存在 — ディスク上には決して置かれません
誰が何をしたかの可視性がないすべてのキーストロークが.ttyrec形式で記録されます
本番環境への包括的なアクセスロールベースのポリシーエンジンが環境ごとのルールを強制します
アクティブなセッションを停止する手段がないキルスイッチgRPCエンドポイントが任意のライブセッションを終了します
監査担当者にとって不透明なアクセスセッション再生、テキストログ、管理操作ログを備えた管理TUI

アーキテクチャ概要

root@kitploit:~
開発者ラップトップ
      │
      │  zttp
      │  (内部: ポート2224でのSSH)
      ▼
┌─────────────────────────────────────────────────────────┐
│                     ZTTPプロキシ                         │
│                                                         │
│  ① 認証ゲート    — bcrypt/Argon2idログインTUI           │
│  ② RBACエンジン  — 環境認識型ポリシーチェック           │
│  ③ Vault取得     — 一時的なSSH鍵の取得                  │
│  ④ ブリッジ      — 透過型TCPトンネル                    │
│  ⑤ 監査ライター  — ttyrecフレームレコーダー             │
└──────────┬──────────────────────────────────────────────┘
           │  ssh (プライベートIP、一時鍵)
           ▼
     ターゲットサーバー

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


主な機能

  • 🔐 ゼロトラスト認証 — 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. リポジトリのクローン

root@kitploit:~
git clone https://gitlab.com/Nihal799/zttp.git
cd zttp

2. 環境の設定

root@kitploit:~
cp .env.example .env

.envを編集し、最低限以下を設定します:

root@kitploit:~
PROXY_NODE_IP=<your-server-public-ip>
POSTGRES_PASSWORD=<a-strong-password>
VAULT_TOKEN=<a-strong-vault-token>

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

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

root@kitploit:~
make docker-up
# または直接:
docker compose -f deploy/docker-compose.yml up -d --build

4. サービスの健全性を確認

root@kitploit:~
make docker-ps
curl http://localhost:8080/healthz

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

root@kitploit:~
make release PROXY_ADDR=<your-server-ip>:2224

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


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

Linux / macOS

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

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

root@kitploit:~
irm http://<proxy-ip>:8555/install.ps1 | iex

接続

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

root@kitploit:~
zttp
# または直接:
ssh -p 2224 <your-username>@<proxy-ip>

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


設定

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


ロールとRBACポリシー

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

ロールとサーバー割り当ては管理コンソール (下記参照) を通じて管理されます。RBACエンジンはすべてのチェックを単一のPostgreSQLクエリで実行し、アクセス拒否の理由をクライアントに公開することはありません (列挙防止)。


管理コンソール

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

管理コンソールが提供する機能:

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


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

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

管理コンソールからの表示

  1. security-adminとしてログイン
  2. 監査ログ表示を選択
  3. リストからサーバーを選択
  4. セッションを選択
  5. テキストログ表示 (ANSI除去済み、読み取り可能) または録画再生 (リアルタイム再生) を選択
  6. Ctrl+Cで戻る

ホストからの表示 (生データ)

root@kitploit:~
# 録画の一覧表示
sudo ls /var/lib/docker/volumes/zttp-audit-logs/_data/

# ttyplayで録画を再生
sudo ttyplay /var/lib/docker/volumes/zttp-audit-logs/_data/<session-id>.ttyrec

# 管理操作ログを読む
sudo cat /var/lib/docker/volumes/zttp-audit-logs/_data/admin-actions.log

ソースからのビルド

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

root@kitploit:~
# 現在のプラットフォーム用にプロキシ + CLIをビルド
make build

# すべてのプラットフォーム向けにCLIをクロスコンパイル (Linux、macOS、Windows)
make release PROXY_ADDR=<proxy-ip>:2224

# テストを実行
make test

# プロキシをローカルで実行 (PostgresとVaultが起動している必要があります)
make run-proxy

Makefileリファレンス


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

1. インストール

インストールデモ (クリックしてデモを再生)

2. セキュアログイン

セキュアログインデモ (クリックしてデモを再生)

3. サーバー追加 (管理コンソール)

サーバー追加デモ (クリックしてデモを再生)

4. サーバーへの接続 (ゲートウェイ)

サーバー接続デモ (クリックしてデモを再生)

5. キルスイッチ (管理イジェクト)

キルスイッチデモ (クリックしてデモを再生)


プロジェクト構成

root@kitploit:~
zttp/
├── cmd/
│   ├── proxy/          # プロキシサーバーのエントリポイント
│   └── zttp/           # CLIクライアントのエントリポイント
├── db/
│   └── migrations/     # PostgreSQLスキーママイグレーション
├── deploy/
│   ├── docker-compose.yml
│   ├── Dockerfile.proxy
│   └── vault-seed.sh   # テスト用SSH鍵をVaultにシード
├── dist/
│   ├── install.sh      # Linux/macOSインストーラースクリプト
│   └── install.ps1     # Windowsインストーラースクリプト
├── internal/
│   ├── audit/          # 管理操作ログ
│   ├── auth/           # ユーザー認証 (bcrypt、ロックアウト)
│   ├── cli/            # CLIクライアントTUIと接続ロジック
│   ├── config/         # 環境ベースの設定
│   ├── killswitch/     # gRPCキルスイッチサービス
│   ├── proxy/          # SSHプロキシ、ゲートウェイTUI、管理TUI、ブリッジ
│   ├── rbac/           # ロールベースアクセス制御エンジン
│   ├── ratelimit/      # IPごとのレート制限
│   ├── session/        # セッショントラッキングとDBストア
│   └── vault/          # HashiCorp Vault SSH鍵クライアント
├── proto/              # gRPCプロトコル定義
├── tools/
│   └── hashpw/         # CLIツール: bcryptパスワードハッシュを生成
├── .env.example        # 設定テンプレート
├── go.mod
└── Makefile

セキュリティモデル


コントリビューション

  1. リポジトリをフォーク
  2. フィーチャーブランチを作成: git checkout -b feat/your-feature
  3. 変更を加え、各ファイルが個別のコミットになるようにします
  4. テストを実行: make test
  5. マージリクエストを開く

以下はコミットしないでください:

  • .envまたはシークレットを含むファイル
  • 本番サーバーの実際のIPアドレスやホスト名
  • コンパイル済みバイナリ (ルートのzttpバイナリは.gitignoreされています)

ライセンス

このプロジェクトはプロプライエタリです。全著作権所有。


Go、PostgreSQL、HashiCorp Vault、Dockerで構築されています。

ツールをダウンロード
サービス目的
zttp-proxySSH踏み台 (Goバイナリ)
zttp-postgresコントロールプレーンDB (ユーザー、サーバー、RBACポリシー)
zttp-vaultHashiCorp Vault — SSH秘密鍵を保存
zttp-nginx/release/でCLIインストーラーを配信
zttp-init-auditボリューム権限を修正するワンショットコンテナ
変数デフォルト説明
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
ロールアクセス
security-adminすべての環境への完全アクセス + 管理コンソール
sre-tier1本番環境を含むすべての環境
sre-tier2ステージングと開発のみ
dev開発環境のみ
readonly開発環境、制限されたコマンドセット
メニューオプション説明
ユーザー追加ロール割り当て付きで新しいユーザーを作成
サーバー追加ターゲットサーバーを登録 (ホスト名、IP、環境、SSHユーザー)
サーバーアクセス管理特定のサーバーへのユーザーアクセスを付与または取り消し
ユーザー表示すべてのユーザーとそのロールを一覧表示
サーバー表示登録済みのすべてのサーバーを一覧表示
監査ログ表示セッションの閲覧、録画の再生、テキストログの読み取り
[ 戻る ]サーバーゲートウェイに戻る
コマンド説明
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コンパイル済みバイナリとビルドキャッシュを削除
レイヤーメカニズム
トランスポートすべてのクライアント接続はSSH (転送中は暗号化)
認証bcrypt (コスト12) / Argon2id — 平文はスキーマ上構造的に禁止
ブルートフォース対策アカウントロック (5回 / 15分) + IPごとのレートリミッター
認可単一JOINのRBACクエリ — 拒否は常に汎用的 ("Permission denied")
シークレット管理SSH秘密鍵はHashiCorp Vaultにのみ保存され、一時的に取得
監査証跡.ttyrec形式での完全なキーストローク録画、不変の追記専用管理ログ
プロセス分離プロキシはdistrolessコンテナ内で非root (UID 65532) として実行
キルスイッチプロキシを再起動せずに、任意のライブセッションをgRPC経由で終了可能