Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
zttp — Zero-trust SSH-Bastion-Proxy mit Vault-gestützter Schlüsselverwaltung, RBAC-Richtliniendurchsetzung, vollständiger Sitzungsaufzeichnung und Admin-TUI für auditierbaren Zugriff auf Produktionsinfrastruktur. | Kitploit
Tools/GitLabGitLab/nihal799/zttp
Authentifizierung & AutorisierungCloud-Infrastruktur-SicherheitDefensivwerkzeugeNetzwerksicherheitDevSecOpsIdentitäts- & Zugriffsmanagement (IAM)
GitLabnihal799/zttp

zttp

Zero-trust SSH-Bastion-Proxy mit Vault-gestützter Schlüsselverwaltung, RBAC-Richtliniendurchsetzung, vollständiger Sitzungsaufzeichnung und Admin-TUI für auditierbaren Zugriff auf Produktionsinfrastruktur.

Repository anzeigen
13vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

ZTTP — Zero-Trust Transparenter Proxy

Ein gehärteter, selbst gehosteter SSH-Bastion-Host mit Vault-gestützter Schlüsselverwaltung, RBAC-Richtliniendurchsetzung, vollständiger Sitzungsaufzeichnung und einer interaktiven Admin-TUI – entwickelt für Teams, die auditierbaren Zero-Trust-Zugriff auf Produktionsinfrastruktur benötigen.


Inhaltsverzeichnis

  • Warum ZTTP
  • Architekturübersicht
  • Funktionshighlights
  • Voraussetzungen
  • Schnellstart – Server
  • Schnellstart – Client
  • Konfiguration
  • Rollen & RBAC-Richtlinie
  • Admin-Konsole
  • Audit-Logs & Sitzungsaufzeichnungen
  • Build aus dem Quellcode
  • Makefile-Referenz
  • Screenshots & Demo
  • Projektstruktur
  • Sicherheitsmodell
  • Mitwirken
  • Lizenz

Warum ZTTP

Moderne Entwicklungsteams benötigen eine Möglichkeit, Entwicklern den minimal erforderlichen Zugriff zu gewähren, um ihre Arbeit zu erledigen – nicht mehr, nicht weniger. Die traditionelle SSH-Schlüsselverteilung ist fehleranfällig: Schlüssel werden geteilt, auf Laptops vergessen und erst Tage zu spät widerrufen.

ZTTP löst dies, indem es als einzige Tür in Ihre Infrastruktur fungiert:


Architekturübersicht

root@kitploit:~
Entwickler-Laptop
      │
      │  zttp
      │  (Unter der Haube: SSH über Port 2224)
      ▼
┌─────────────────────────────────────────────────────────┐
│                     ZTTP-Proxy                          │
│                                                         │
│  ① Auth-Gate     – bcrypt/Argon2id-Login-TUI           │
│  ② RBAC-Engine   – umgebungsbewusste Richtlinienprüfung │
│  ③ Vault-Abruf   – ephemerer SSH-Schlüsselabruf        │
│  ④ Bridge        – transparenter TCP-Tunnel            │
│  ⑤ Audit-Writer  – ttyrec-Frame-Recorder               │
└──────────┬──────────────────────────────────────────────┘
           │  ssh (private IP, ephemerer Schlüssel)
           ▼
     Zielserver

Infrastrukturdienste (Docker Compose):


Funktionshighlights

  • 🔐 Zero-Trust-Authentifizierung – Interaktive SSH-Login-TUI mit bcrypt-Passwort-Hashing, Rate-Limiting und Kontosperrung nach 5 fehlgeschlagenen Versuchen
  • 🛡️ RBAC-Richtlinien-Engine – Rollen- und umgebungsbasierte Zugriffskontrolle mit einem einzigen optimierten PostgreSQL-JOIN (keine Round-Trips)
  • 🗝️ Vault-gestützte SSH-Schlüssel – Private-Keys berühren nie die Festplatte; werden pro Sitzung ephemer aus HashiCorp Vault abgerufen
  • 📹 Vollständige Sitzungsaufzeichnung – Alle Sitzungen werden im .ttyrec-Format mit Zeitstempel-Frames aufgezeichnet
  • 🖥️ Interaktive Admin-TUI – Vollständige Terminal-Benutzeroberfläche für Benutzerverwaltung, Serverregistrierung, Zugriffsgewährung und Log-Prüfung
  • 🔍 Audit-Log-Viewer – Sitzungen nach Server durchsuchen, Aufzeichnungen wiedergeben oder saubere Text-Logs direkt aus der Admin-Konsole lesen
  • ⚡ Kill-Switch – gRPC-Endpunkt zum sofortigen Beenden jeder laufenden Sitzung
  • 📋 Admin-Aktions-Log – Jede administrative Aktion (Benutzererstellung, Zugriffsgewährung, Log-Anzeige) wird in einem persistenten Audit-Trail protokolliert
  • 🌍 Multiplattform-Client – Einzelnes Binary-CLI für Linux, macOS (amd64/arm64) und Windows

Voraussetzungen

Server (Proxy-Host):

  • Docker ≥ 24 und Docker Compose ≥ 2.20
  • Eine öffentliche oder LAN-erreichbare IP auf Port 2224
  • make (optional, aber empfohlen)

Entwickler (Client):

  • Jeder SSH-Client (ssh-Befehl)
  • Linux-, macOS- oder Windows-Rechner

Schnellstart – Server

1. Repository klonen

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

2. Umgebung konfigurieren

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

Bearbeiten Sie .env und setzen Sie mindestens:

root@kitploit:~
PROXY_NODE_IP=<ihre-server-öffentliche-ip>
POSTGRES_PASSWORD=<ein-starkes-passwort>
VAULT_TOKEN=<ein-starker-vault-token>

⚠️ Committen Sie Ihre .env-Datei niemals. Sie ist in .gitignore aufgeführt.

3. Alle Dienste starten

root@kitploit:~
make docker-up
# oder direkt:
docker compose -f deploy/docker-compose.yml up -d --build

4. Dienste auf Gesundheit prüfen

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

5. CLI-Installer bauen und veröffentlichen

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

Dies kompiliert Clients für alle Plattformen und aktualisiert dist/install.sh und dist/install.ps1 automatisch mit der korrekten Server-URL. Der Nginx-Container stellt diese unter http://<ihre-server-ip>:8555/ bereit.


Schnellstart – Client

Linux / macOS

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

Windows (PowerShell, als Administrator ausführen)

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

Verbinden

Nach der Installation verbinden Sie sich mit dem ZTTP-Gateway:

root@kitploit:~
zttp
# oder direkt:
ssh -p 2224 <ihr-benutzername>@<proxy-ip>

Ihnen wird ein Terminal-Login-Bildschirm angezeigt. Nach der Authentifizierung sehen Sie eine Liste der Server, auf die Sie zugreifen dürfen.


Konfiguration

Die gesamte Konfiguration erfolgt über Umgebungsvariablen (oder .env-Datei). Siehe .env.example für die vollständige Referenz.


Rollen & RBAC-Richtlinie

ZTTP verwendet ein rollenbasiertes Modell. Jeder Benutzer erhält eine Rolle; jede Rolle hat eine Richtlinie, die definiert, auf welche Server-Umgebungen sie zugreifen kann.

Rollen und Serverzuweisungen werden über die Admin-Konsole verwaltet (siehe unten). Die RBAC-Engine führt alle Prüfungen in einer einzigen PostgreSQL-Abfrage durch – sie legt dem Client niemals offen, warum der Zugriff verweigert wurde (Enumeration-Schutz).


Admin-Konsole

Verbinden Sie sich über das Gateway-Menü mit dem zttp-admin-Server oder melden Sie sich mit einem Konto an, das die Rolle security-admin besitzt.

Die Admin-Konsole bietet:

Alle Admin-Aktionen werden in admin-actions.log im Audit-Volume protokolliert.


Audit-Logs & Sitzungsaufzeichnungen

Alle Sitzungen werden im Docker-Volume zttp-audit-logs gespeichert (/var/log/zttp/audit/ im Container).

Anzeigen über die Admin-Konsole

  1. Als security-admin anmelden
  2. Audit-Logs anzeigen auswählen
  3. Einen Server aus der Liste auswählen
  4. Eine Sitzung auswählen
  5. Text-Log anzeigen (ANSI-bereinigt, lesbar) oder Aufzeichnung abspielen (Echtzeit-Wiedergabe) wählen
  6. Ctrl+C drücken, um zurückzugehen

Anzeigen vom Host (roh)

root@kitploit:~
# Aufzeichnungen auflisten
sudo ls /var/lib/docker/volumes/zttp-audit-logs/_data/

# Aufzeichnung mit ttyplay abspielen
sudo ttyplay /var/lib/docker/volumes/zttp-audit-logs/_data/<sitzungs-id>.ttyrec

# Admin-Aktions-Log lesen
sudo cat /var/lib/docker/volumes/zttp-audit-logs/_data/admin-actions.log

Build aus dem Quellcode

Anforderungen: Go 1.25+, Docker (für Cross-Kompilierung)

root@kitploit:~
# Proxy + CLI für aktuelle Plattform bauen
make build

# CLI für alle Plattformen cross-kompilieren (Linux, macOS, Windows)
make release PROXY_ADDR=<proxy-ip>:2224

# Tests ausführen
make test

# Proxy lokal ausführen (erfordert laufende Postgres- und Vault-Instanzen)
make run-proxy

Makefile-Referenz


Screenshots & Demo

1. Installation

Installations-Demo (Zum Abspielen der Demo klicken)

2. Sicherer Login

Sicherer-Login-Demo (Zum Abspielen der Demo klicken)

3. Server hinzufügen (Admin-Konsole)

Server-Hinzufügen-Demo (Zum Abspielen der Demo klicken)

4. Mit Server verbinden (Gateway)

Server-Verbindungs-Demo (Zum Abspielen der Demo klicken)

5. Kill-Switch (Admin-Auswurf)

Kill-Switch-Demo (Zum Abspielen der Demo klicken)


Projektstruktur

root@kitploit:~
zttp/
├── cmd/
│   ├── proxy/          # Proxy-Server-Einstiegspunkt
│   └── zttp/           # CLI-Client-Einstiegspunkt
├── db/
│   └── migrations/     # PostgreSQL-Schema-Migrationen
├── deploy/
│   ├── docker-compose.yml
│   ├── Dockerfile.proxy
│   └── vault-seed.sh   # Seedet Test-SSH-Schlüssel in Vault
├── dist/
│   ├── install.sh      # Linux/macOS-Installer-Skript
│   └── install.ps1     # Windows-Installer-Skript
├── internal/
│   ├── audit/          # Admin-Aktionsprotokollierung
│   ├── auth/           # Benutzerauthentifizierung (bcrypt, Sperrung)
│   ├── cli/            # CLI-Client-TUI und Verbindungslogik
│   ├── config/         # Umgebungsbasierte Konfiguration
│   ├── killswitch/     # gRPC-Kill-Switch-Dienst
│   ├── proxy/          # SSH-Proxy, Gateway-TUI, Admin-TUI, Bridge
│   ├── rbac/           # Rollenbasierte Zugriffskontroll-Engine
│   ├── ratelimit/      # Pro-IP-Rate-Limiting
│   ├── session/        # Sitzungsverfolgung und DB-Speicher
│   └── vault/          # HashiCorp-Vault-SSH-Schlüssel-Client
├── proto/              # gRPC-Protokolldefinitionen
├── tools/
│   └── hashpw/         # CLI-Tool: bcrypt-Passwort-Hash generieren
├── .env.example        # Konfigurationsvorlage
├── go.mod
└── Makefile

Sicherheitsmodell


Mitwirken

  1. Repository forken
  2. Feature-Branch erstellen: git checkout -b feat/ihr-feature
  3. Änderungen vornehmen und sicherstellen, dass jede Datei einen eigenen Commit erhält
  4. Tests ausführen: make test
  5. Merge-Request öffnen

Bitte committen Sie nicht:

  • .env oder Dateien, die Geheimnisse enthalten
  • Echte IP-Adressen oder Hostnamen von Produktionsservern
  • Kompilierte Binaries (das zttp-Binary im Root ist .gitignored)

Lizenz

Dieses Projekt ist proprietär. Alle Rechte vorbehalten.


Erstellt mit Go, PostgreSQL, HashiCorp Vault und Docker.

Tool herunterladen
ProblemZTTP-Lösung
SSH-Schlüssel werden auf Laptops geteiltSchlüssel leben ausschließlich in HashiCorp Vault – nie auf der Festplatte
Keine Transparenz darüber, wer was getan hatJeder Tastendruck wird im .ttyrec-Format aufgezeichnet
Pauschaler ProduktionszugriffRollenbasierte Richtlinien-Engine erzwingt umgebungsspezifische Regeln
Keine Möglichkeit, eine aktive Sitzung zu stoppenKill-Switch-gRPC-Endpunkt beendet jede laufende Sitzung
Undurchsichtiger Zugriff für AuditorenAdmin-TUI mit Sitzungswiedergabe, Text-Logs und Admin-Aktions-Logs
DienstZweck
zttp-proxyDer SSH-Bastion (Go-Binary)
zttp-postgresControl-Plane-Datenbank (Benutzer, Server, RBAC-Richtlinien)
zttp-vaultHashiCorp Vault – speichert SSH-Private-Keys
zttp-nginxStellt CLI-Installer unter /release/ bereit
zttp-init-auditEinmaliger Container, der Volume-Berechtigungen korrigiert
VariableStandardBeschreibung
PROXY_LISTEN_ADDR0.0.0.0:2222SSH-Proxy-Bind-Adresse
HTTP_LISTEN_ADDR0.0.0.0:8080HTTP-Adresse für Health-Checks
GRPC_LISTEN_ADDR0.0.0.0:9090Kill-Switch-gRPC-Adresse
PROXY_NODE_IP127.0.0.1Externe IP, die in CLI-Binaries eingebettet wird
DATABASE_URLpostgres://zttp:...PostgreSQL-Verbindungszeichenfolge
VAULT_ADDRhttp://localhost:8201Vault-Server-URL
VAULT_TOKENdev-root-token-zttpVault-Root-Token (nur Dev – in Produktion AppRole verwenden)
MAX_FAILED_ATTEMPTS5Sperrschwelle
LOCKOUT_DURATION15mDauer der Kontosperrung
RATE_LIMIT_PER_MIN10Maximale Login-Versuche pro Minute pro IP
AUDIT_LOG_DIR/var/log/zttp/auditPfad zum Sitzungsaufzeichnungsverzeichnis
SOC_WEBHOOK_URL(leer)Optionaler Webhook für SOC-Warnmeldungen
RolleZugriff
security-adminVollzugriff auf alle Umgebungen + Admin-Konsole
sre-tier1Alle Umgebungen einschließlich Produktion
sre-tier2Nur Staging und Entwicklung
devNur Entwicklungsumgebung
readonlyEntwicklungsumgebung, eingeschränkter Befehlsatz
MenüoptionBeschreibung
Benutzer hinzufügenNeuen Benutzer mit Rollenzuweisung erstellen
Server hinzufügenZielserver registrieren (Hostname, IP, Umgebung, SSH-Benutzer)
Serverzugriff verwaltenBenutzerzugriff auf bestimmte Server gewähren oder entziehen
Benutzer anzeigenAlle Benutzer und ihre Rollen auflisten
Server anzeigenAlle registrierten Server auflisten
Audit-Logs anzeigenSitzungen durchsuchen, Aufzeichnungen wiedergeben, Text-Logs lesen
[ Zurück ]Zurück zum Server-Gateway
BefehlBeschreibung
make buildProxy und CLI für aktuelle Plattform bauen
make releaseCLI-Binaries für alle Plattformen cross-kompilieren
make release-dockerCross-Kompilierung in einem Docker-Container (vermeidet snap/WSL-Probleme)
make docker-upAlle Docker-Compose-Dienste starten
make docker-downAlle Dienste stoppen und Volumes löschen
make docker-logsProxy-Logs verfolgen
make docker-psContainerstatus anzeigen
make testAlle Go-Tests ausführen
make migrateDatenbankmigrationen anwenden
make seedEntwicklungsdaten seeden
make hashpw PW=meinpasswortbcrypt-Hash für manuelles DB-Seeding generieren
make cleanKompilierte Binaries und Build-Cache entfernen
EbeneMechanismus
TransportAlle Client-Verbindungen sind SSH (verschlüsselt während der Übertragung)
Authentifizierungbcrypt (Kosten 12) / Argon2id – Klartext ist im Schema strukturell verboten
Brute-Force-SchutzKontosperrung (5 Versuche / 15 Min.) + Pro-IP-Rate-Limiter
AutorisierungSingle-JOIN-RBAC-Abfrage – Ablehnungen sind immer generisch („Permission denied")
GeheimnisverwaltungSSH-Private-Keys werden ausschließlich in HashiCorp Vault gespeichert und ephemer abgerufen
Audit-TrailVollständige Tastendruck-Aufzeichnung im .ttyrec-Format, unveränderliches Append-Only-Admin-Log
ProzessisolationProxy läuft als Nicht-Root (UID 65532) in einem distroless-Container
Kill-SwitchJede laufende Sitzung kann per gRPC beendet werden, ohne den Proxy neu zu starten