OnionJuggler

OnionJuggler è una raccolta di script e documentazione con requisiti minimi e portabile, progettata per aiutare l'operatore di servizi a gestire (juggling) le proprie onion.
ATTENZIONE: non fidarti ancora di questo repository, esegui il backup delle tue chiavi HS in un'altra posizione. Questo progetto non è stato rilasciato e deve essere considerato solo per lo sviluppo.
Collegamento rapido a questo repository: git.io/onionjuggler
Table of Contents
Introduzione
Immagini

Storia
Questo progetto è stato avviato dopo aver visto gli straordinari script Python CLI di OnionShare, che permettono servizi onion effimeri che non toccano mai il disco e possono essere eseguiti facilmente su Tails o Whonix. Poi, dopo aver visto lo script bash per servizi onion su Raspberry Pi di RaspiBlitz, è nata l'idea di portarlo su qualsiasi distribuzione Debian. Man mano che l'idea cresceva, l'uso di GNU Bash e Linux rappresentava un singolo punto di fallimento 1 2, quindi rendere lo script conforme a POSIX per essere compatibile con qualsiasi sistema Unix-like è diventato un obiettivo definitivo.
Obiettivo
L'obiettivo di questo progetto è:
- facilitare la gestione dei servizi onion, dall'attivazione di un servizio all'aggiunta dell'autorizzazione client, offrendo tutte le funzionalità che si avrebbero modificando manualmente i file, ma con meno digitazione.
- mostrare che la gestione del servizio onion è molto più che usare un server web con le proprie pagine.
- distribuzione, a livello di codice sorgente (FOSS) e per l'effetto che ha quando permette a chiunque di eseguire il codice su qualsiasi sistema operativo, shell o gestore di servizi. Mitigazione da un singolo punto di fallimento.
Mitigazione da un singolo punto di fallimento:
- Kernel dal predominante
Linux anche a BSD e qualsiasi altro sistema Unix-like.
- Shell dal predominante
Bash anche a qualsiasi shell POSIX come ksh, (y,d)ash e Zsh (emulando sh).
- Gestore di servizi dal predominante
Systemd anche a RC, OpenRC, SysVinit, Runit.
Modificare il file di configurazione di tor (torrc) non è difficile, ma l'automazione risolve i problemi di errata configurazione e permette di avere:
- meno tempo speso eseguendo un singolo comando su una riga
- nessun downtime rifiutando configurazioni non valide prima di applicarle
- completa uniformità
- interfaccia grafica per aiutare i principianti
Caratteristiche
- Abilitare servizio - Creare directory se non esiste (HiddenServiceDir), selezionare versione onion (HiddenServiceVersion), tipo di socket personalizzato tra unix o tcp, con tutte le porte virtuali desiderate, e anche i target (HiddenServicePort).
- Disabilitare servizio - Rimuovere la configurazione del servizio da torrc; il servizio non sarà più accessibile, ma puoi riabilitarlo in qualsiasi momento. Opzionalmente, elimina il servizio, cancellando la sua configurazione e directory, il che cancellerà definitivamente le sue chiavi.
- Rinnovare indirizzo del servizio - Focalizzato sui servizi onion privati, se mai si dovesse divulgare il proprio indirizzo, è possibile cambiare il suo hostname; tieni presente che tutti i client autorizzati verranno disconnessi e le chiavi del servizio saranno cancellate definitivamente.
- Credenziali - Mostra hostname, client, blocco torrc, hostname con codice QR.
- Autenticazione onion - Solo per servizi onion v3. Dipende dalla configurazione sia del client che del server e funziona con una coppia di chiavi; il client possiede la parte privata, generata da lui (più sicuro) o fornita dall'operatore del servizio, mentre l'operatore del servizio onion possiede la parte pubblica. Se una qualsiasi di:
- Server - Generare coppia di chiavi o aggiungere parte pubblica, elencare nomi client e loro chiavi pubbliche da
<HiddenServiceDir>/authorized_clients/<client>.auth. Se un qualsiasi client è configurato, il servizio non sarà accessibile senza autenticazione.
- Client - Generare coppia di chiavi o aggiungere parte pubblica, elencare i tuoi
<ClientOnionAuthDir>/<SOME_ONION>.auth_private.
- Onion-Location - Per servizi onion pubblici: puoi reindirizzare i tuoi utenti della rete normale al tuo servizio onion con questa guida per nginx, apache2 e attributi header html.
- OpSec - Sicurezza operativa
- Socket Unix - Supporto per abilitare un servizio onion su socket Unix per evitare bypass localhost.
- Server web - Servire file con il tuo servizio nascosto usando Nginx o Apache2.
- Usabilità - Sono disponibili due finestre di dialogo compatibili con il progetto:
dialog e whiptail.
- Batch - Alcuni comandi possono essere eseguiti in batch con l'argomento
@all per includere tutti i servizi o i client a seconda dell'opzione --service o --client; elencare argomenti abilitati [SERV1,SERV2,...] e [CLIENT1,CLIENT2,...]; il comando scorrerà le variabili e applicherà la combinazione.
- A prova di errore - Lo script fa del suo meglio per filtrare comandi non validi e sintassi errata. I comandi non sono difficili ma a prima vista possono spaventare. Non preoccuparti, se non sono validi, non verranno eseguiti per evitare che il demone tor fallisca nel ricaricamento a causa di una configurazione non valida. Se un comando non valido viene eseguito, apri una issue.
Requisiti
- Generali:
- Sistema Unix-like.
- Privilegi di superutente per richiamare comandi come root e l'utente tor.