OnionJuggler

OnionJuggler ist eine portable Sammlung von Skripten und Dokumentation mit minimalen Anforderungen, die dem Service-Betreiber hilft, seine Zwiebeln zu jonglieren (verwalten).
WARNUNG: «vertraue diesem Repo noch nicht», sichere deine HS-Schlüssel an einem anderen Ort. Dieses Projekt wurde noch nicht veröffentlicht und sollte nur für die Entwicklung betrachtet werden.
Schnelllink zu diesem Repository: git.io/onionjuggler
Inhaltsverzeichnis
Einführung
Bilder

Geschichte
Dieses Projekt entstand, nachdem ich die erstaunlichen OnionShare CLI python scripts gesehen hatte, welche ephemere Onion-Dienste ermöglichen, die nie die Festplatte berühren und einfach auf Tails oder Whonix ausgeführt werden können. Nachdem ich dann das RaspiBlitz Onion Service Bash-Script für den Raspberry Pi gesehen hatte, entstand die Idee, es auf jede Debian-Distribution zu portieren. Als die Idee wuchs, stellte die Verwendung von GNU Bash und Linux einen einzelnen Ausfallpunkt dar 1 2, daher war die POSIX-Konformität des Skripts, um mit jedem Unix-ähnlichen System kompatibel zu sein, ein definitives Ziel.
Ziel
Das Ziel dieses Projekts ist:
- Die Verwaltung von Onion-Diensten zu erleichtern, vom Aktivieren eines Dienstes bis zum Hinzufügen einer Client-Autorisierung, wobei die vollen Möglichkeiten der manuellen Dateibearbeitung mit weniger Tipparbeit erhalten bleiben.
- Zu zeigen, dass die Verwaltung des Onion-Dienstes weit mehr umfasst als nur die Verwendung eines Webservers mit Ihren Seiten.
- Verbreitung, von der Quellcode-Ebene (FOSS) bis zur Wirkung, wenn es jedem ermöglicht, den Code auf jedem Betriebssystem, jeder Shell oder jedem Service-Manager auszuführen. Vermeidung eines einzelnen Ausfallpunkts.
Vermeidung eines einzelnen Ausfallpunkts:
- Kernel vom vorherrschenden
Linux auch auf BSD und andere Unix-ähnliche Systeme.
- Shell von der vorherrschenden
Bash auch auf jede POSIX-Shell wie ksh, (y,d)ash und Zsh (mit sh-Emulation).
- Service-Manager vom vorherrschenden
Systemd auch auf RC, OpenRC, SysVinit, Runit.
Die Bearbeitung der Tor-Konfigurationsdatei (torrc) ist nicht schwierig, aber Automatisierung löst das Problem von Fehlkonfigurationen und bietet:
- weniger Zeitaufwand durch die Ausführung eines einzelnen Befehls
- keine Ausfallzeiten durch Zurückweisen ungültiger Konfigurationen, bevor sie angewendet werden
- vollständige Einheitlichkeit
- grafische Oberfläche zur Unterstützung von Einsteigern
Funktionen
- Dienst aktivieren – Verzeichnis erstellen, falls nicht vorhanden (HiddenServiceDir), Zwiebelversion auswählen (HiddenServiceVersion), benutzerdefinierter Socket-Typ (Unix oder TCP) mit beliebig vielen virtuellen Ports sowie Zielen (HiddenServicePort).
- Dienst deaktivieren – Dienstkonfiguration aus der torrc entfernen; der Dienst ist dann nicht mehr erreichbar, kann aber jederzeit wieder aktiviert werden. Optional kann der Dienst bereinigt werden, wobei seine Konfiguration und sein Verzeichnis gelöscht werden, was seine Schlüssel dauerhaft entfernt.
- Dienstadresse erneuern – Fokussiert auf private Onion-Dienste. Falls Sie die Adresse jemals preisgeben, können Sie den Hostnamen ändern. Beachten Sie, dass alle autorisierten Clients getrennt werden und die Dienstschlüssel dauerhaft gelöscht werden.
- Anmeldedaten – Hostname, Clients, torrc-Block, QR-codierter Hostname anzeigen.
- Onion-Authentifizierung – Nur für v3-Onion-Dienste. Dies hängt von der Client- und Server-Konfiguration ab und arbeitet mit einem Schlüsselpaar. Der Client hält den privaten Schlüsselteil (entweder selbst erzeugt – sicherer – oder vom Service-Betreiber bereitgestellt), und der Onion-Dienst-Betreiber hält den öffentlichen Teil. Wenn einer davon
- Server – Schlüsselpaar erzeugen oder öffentlichen Teil hinzufügen, Client-Namen und ihre öffentlichen Schlüssel aus
<HiddenServiceDir>/authorized_clients/<client>.auth auflisten. Wenn ein Client konfiguriert ist, ist der Dienst ohne Authentifizierung nicht erreichbar.
- Client – Schlüsselpaar erzeugen oder öffentlichen Teil hinzufügen, Ihre
<ClientOnionAuthDir>/<SOME_ONION>.auth_private auflisten.
- Onion-Standort – Für öffentliche Onion-Dienste. Sie können Ihre Plainnet-Benutzer mit dieser Anleitung für nginx, apache2 und HTML-Header-Attribute zu Ihrem Onion-Dienst umleiten.
- OpSec – Betriebssicherheit
- Unix-Socket – Unterstützung zum Aktivieren eines Onion-Dienstes über Unix-Socket, um Localhost-Umgehungen zu vermeiden.
- Webserver – Dateien mit Ihrem versteckten Dienst über Nginx oder Apache2 bereitstellen.
- Benutzerfreundlichkeit – Es gibt zwei mit dem Projekt kompatible Dialogboxen:
dialog und whiptail.
- Massenbearbeitung – Einige Befehle können mit dem Argument
@all gebündelt werden, um alle Dienste oder Clients (je nach Option --service oder --client) einzubeziehen. Listen aktivierte Argumente [SERV1,SERV2,...] und [CLIENT1,CLIENT2,...]. Der Befehl durchläuft die Variablen und wendet die Kombination an.
- Bediensicher – Das Skript filtert nach besten Kräften ungültige Befehle und falsche Syntax. Die Befehle sind nicht schwierig, können aber auf den ersten Blick einschüchtern. Keine Sorge: Ist ein Befehl ungültig, wird er nicht ausgeführt, um zu vermeiden, dass der Tor-Daemon aufgrund einer ungültigen Konfiguration nicht neu geladen werden kann. Wenn ein ungültiger Befehl ausgeführt wird, öffnen Sie bitte ein Issue.
Voraussetzungen