Utilizzo Avanzato

Salva le tab

La chiusura delle schede OnionShare ospitate le distrugge, impedendone il riutilizzo. I siti web ospitati in modo persistente sono disponibili sullo stesso indirizzo anche se il computer da cui sono condivisi viene riavviato.

Per rendere persistente qualsiasi scheda, selezionare la casella “Apri sempre questa scheda all’avvio di OnionShare” prima di avviare il server.

_images/advanced-save-tabs.png

Quando si apre OnionShare, le schede salvate dalla sessione precedente vengono aperte. Ogni servizio può essere avviato manualmente e sarà disponibile sullo stesso indirizzo di OnionShare e protetto dalla stessa chiave privata.

Se si salva una scheda, una copia della chiave segreta del servizio Cipolla viene memorizzata sul computer.

Disattiva chiave privata

Per impostazione predefinita, tutti i servizi di OnionShare sono protetti da una chiave privata, che Tor chiama “autenticazione del cliente”.

Il browser Tor chiede di inserire la chiave privata quando si carica un servizio OnionShare. Se volete permettere al pubblico di utilizzare il vostro servizio, è meglio disabilitare del tutto la chiave privata.

Per disattivare la chiave privata per qualsiasi scheda, selezionare la casella “Questo è un servizio OnionShare pubblico (disattiva la chiave privata)” prima di avviare il server. In questo modo il server sarà pubblico e non sarà necessaria una chiave privata per caricarlo nel Browser Tor.

Titoli personalizzati

Quando le persone caricano i servizi di OnionShare nel Tor Browser, vedono il titolo predefinito per ogni tipo di servizio. Ad esempio, il titolo predefinito per i servizi di chat è “OnionShare Chat”.

Se si modifica l’impostazione “Titolo personalizzato” prima di avviare un server, è possibile modificarla.

Orari Programmati

OnionShare supporta la pianificazione esattamente quando un servizio deve essere avviato e interrotto. Prima di avviare un server, fai clic su «Mostra impostazioni avanzate» nella relativa scheda, quindi seleziona le caselle accanto a «Avvia servizio onion all’ora pianificata», «Arresta il servizio onion all’ora pianificata» o entrambe e imposta le rispettive date e ore desiderate.

I servizi programmati per essere avviati in futuro visualizzano un conto alla rovescia quando si fa clic sul pulsante “Avvia condivisione”. I servizi programmati per essere interrotti in futuro visualizzano un conto alla rovescia quando vengono avviati.

La programmazione dell’avvio automatico di un servizio OnionShare può essere utilizzata come un interruttore a uomo morto. Ciò significa che il servizio viene reso pubblico in un determinato momento del futuro se non si è presenti per impedirlo. Se non vi succede nulla, potete annullare il servizio prima che venga programmato per l’avvio.

_images/advanced-schedule-start-timer.png

La programmazione dell’arresto automatico di un servizio OnionShare ne limita l’esposizione. Se volete condividere informazioni segrete o qualcosa che sarà obsoleto, potete farlo per un periodo di tempo limitato e selezionato.

_images/advanced-schedule-stop-timer.png

Interfaccia della riga di comando

Oltre alla sua interfaccia grafica, OnionShare ha un’interfaccia a riga di comando.

Installazione della versione CLI

Se avete installato il pacchetto Snap, macOS o Windows, avete già installato la versione CLI.

Alternatively, you can install just the command-line version of OnionShare using pip3:

pip3 install --user onionshare-cli

Nota che avrai anche bisogno del pacchetto tor installato. In macOS, installalo con: brew install tor

Quindi eseguilo in questo modo:

onionshare-cli --help

Informazioni sull’installazione su diversi sistemi operativi si trovano nel file CLI README nel repository Git.

Esecuzione della CLI da Snap

Se si è installato OnionShare utilizzando il pacchetto Snap, è possibile eseguire onionshare.cli per accedere alla versione con interfaccia a riga di comando.

Esecuzione della CLI da macOS

Da Terminale, è possibile eseguire /Applicazioni/OnionShare.app/Contents/MacOS/onionshare-cli --help

Esecuzione della CLI da Windows

Nell’installazione di Windows è disponibile l’eseguibile onionshare-cli.exe.

Utilizzo

Browse the command-line documentation by running onionshare --help:

$ onionshare-cli --help
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME] [--title TITLE] [--public]
                      [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--no-autostop-sharing] [--log-filenames] [--qr] [--data-dir data_dir] [--webhook-url webhook_url] [--disable-text]
                      [--disable-files] [--disable_csp] [--custom_csp custom_csp] [-v]
                      [filename ...]

positional arguments:
  filename                  List of files or folders to share

optional arguments:
  -h, --help                Show this help message and exit
  --receive                 Receive files
  --website                 Publish website
  --chat                    Start chat server
  --local-only              Don't use Tor (only for development)
  --connect-timeout SECONDS
                            Give up connecting to Tor after a given amount of seconds (default: 120)
  --config FILENAME         Filename of custom global settings
  --persistent FILENAME     Filename of persistent session
  --title TITLE             Set a title
  --public                  Don't use a private key
  --auto-start-timer SECONDS
                            Start onion service at scheduled time (N seconds from now)
  --auto-stop-timer SECONDS
                            Stop onion service at scheduled time (N seconds from now)
  --no-autostop-sharing     Share files: Continue sharing after files have been sent (the default is to stop sharing)
  --log-filenames           Log file download activity to stdout
  --qr                      Display a QR code in the terminal for share links
  --data-dir data_dir       Receive files: Save files received to this directory
  --webhook-url webhook_url
                            Receive files: URL to receive webhook notifications
  --disable-text            Receive files: Disable receiving text messages
  --disable-files           Receive files: Disable receiving files
  --disable_csp             Publish website: Disable the default Content Security Policy header (allows your website to use third-party resources)
  --custom_csp custom_csp   Publish website: Set a custom Content Security Policy header
  -v, --verbose             Log OnionShare errors to stdout, and web errors to disk

Esecuzione della CLI come file di unità systemd

È possibile avviare automaticamente OnionShare dalla CLI utilizzando un file di unità systemd.

Ciò può essere particolarmente utile se si opera in modalità “persistente” e si desidera avviare lo stesso servizio di cipolla a ogni avvio della macchina.

Per farlo, è necessario preparare prima una configurazione json di OnionShare.

Ecco la configurazione principale di OnionShare. In questo esempio, è memorizzata in /home/user/.config/onionshare/onionshare.json. Potrebbe essere necessario modificare alcune impostazioni, ma se avete già installato OnionShare, probabilmente il suo aspetto è già simile a questo:

{
  "version": "2.6.2",
  "connection_type": "bundled",
  "control_port_address": "127.0.0.1",
  "control_port_port": 9051,
  "socks_address": "127.0.0.1",
  "socks_port": 9050,
  "socket_file_path": "/var/run/tor/control",
  "auth_type": "no_auth",
  "auth_password": "",
  "auto_connect": true,
  "use_autoupdate": true,
  "autoupdate_timestamp": null,
  "bridges_enabled": false,
  "bridges_type": "built-in",
  "bridges_builtin_pt": "obfs4",
  "bridges_moat": "",
  "bridges_custom": "",
  "bridges_builtin": {},
  "persistent_tabs": [
      "my-persistent-onion"
  ],
  "locale": "en",
  "theme": 0
}

Si noti la sezione “persistent_tabs”. Ora creeremo un file in /home/user/.config/onionshare/persistent/my-persistent-onion.json, che assomiglia a questo:

{
  "onion": {
      "private_key": "UDIaZD8QgoXRP8JnAJ+pnlogQazfZ0wrfWJk5zPBGUBqg6+lozzjUJKTYWxwrxR33pDgJdTFtCUN1CX1FE22UQ==",
      "client_auth_priv_key": "RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ",
      "client_auth_pub_key": "J4YLYAHS25UU3TZTE27H32RN3MCRGLR345U52XS2JNQ76CCHCRSQ"
  },
  "persistent": {
      "mode": "share",
      "enabled": true
  },
  "general": {
      "title": null,
      "public": false,
      "autostart_timer": 0,
      "autostop_timer": 0,
      "service_id": "niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid",
      "qr": false
  },
  "share": {
     "autostop_sharing": true,
     "filenames": [
       "/home/user/my-shared-file.txt"
     ]
  },
  "receive": {
     "data_dir": "/home/user/OnionShare",
     "webhook_url": null,
     "disable_text": false,
     "disable_files": false
  },
  "website": {
     "disable_csp": false,
     "custom_csp": null,
     "filenames": []
  },
  "chat": {}
}

**Non utilizzare realmente questa chiave privata, service_id o client_auth! Sono mostrate solo a titolo di esempio. Non condividere mai la chiave privata con nessuno **

Il modo più semplice per generare l’indirizzo e la chiave privata di Onion è quello di creare una scheda OnionShare “appuntata” nell’applicazione desktop e avviare la condivisione per la prima volta. In questo modo le impostazioni persistenti saranno salvate nella cartella .config/onionshare/persistent/ con un nome casuale. È possibile rimuovere la scheda dopo averla generata la prima volta. Oppure, si può lasciarla dov’è e usare quel file persistente nel file dell’unità systemd sottostante.

Ora si può creare un file di unità systemd in /etc/systemd/system/onionshare-cli.service. Assicurarsi di modificare User e Group con il proprio utente/gruppo, così come di modificare i percorsi del binario di onionshare-cli o i percorsi delle configurazioni JSON e delle condivisioni.

Il file dell’unità systemd dovrebbe avere il seguente aspetto:

[Unit]
Description=OnionShare CLI
After=network.target

[Service]
ExecStart=/home/user/.local/bin/onionshare-cli --persistent /home/user/.config/onionshare/persistent/my-persistent-onion.json /home/user/my-shared-file.txt
Restart=on-failure
User=user
Group=user

[Install]
WantedBy=multi-user.target

Si noti che sebbene /home/user/my-shared-file.txt sia stato definito nella sezione filenames del file my-persistent-onion.json, è comunque necessario specificarlo come argomento del comando onionshare-cli.

Assicurarsi di eseguire sudo systemctl daemon-reload dopo aver creato il file unitario.

Ora è possibile eseguire sudo systemctl start onionshare-cli.service. Se avete installato journalctl, potete eseguire sudo journalctl -f -t onionshare-cli, e dovreste vedere l’output dell’avvio del servizio:

[...]
Feb 09 10:14:09 onionshare onionshare-cli[18852]: [6.5K blob data]
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Compressing files.
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Give this address and private key to the recipient:
Feb 09 10:14:18 onionshare onionshare-cli[18852]: http://niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid.onion
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Private key: RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Press Ctrl+C to stop the server

Se non si vuole che gli utenti usino una chiave privata, impostare public come true nelle impostazioni general del file my-persistent-onion.json.

Scorciatoie da tastiera

L’applicazione desktop di OnionShare contiene alcune scorciatoie da tastiera, per comodità e accessibilità:

Ctrl T - New Tab
Ctrl X - Closes current tab

E dalla schermata principale di selezione della modalità:

Ctrl S - Share mode
Ctrl R - Receive mode
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab

Migrazione dei dati di OnionShare su un altro computer

È possibile che si desideri migrare i dati di OnionShare quando si passa a un altro computer. Ciò è particolarmente vero se si dispone di un indirizzo onion “persistente” e si desidera conservarlo.

OnionShare memorizza tutti questi dati in una cartella specifica. Copiare sul nuovo computer la cartella relativa al sistema operativo in uso:

  • Linux: ~/.config/onionshare

  • macOS: ~/Library/Application Support/OnionShare

  • Windows: %APPDATA%\OnionShare

Parametri del file di configurazione

OnionShare memorizza le proprie impostazioni in un file JSON. Sia la versione CLI che quella Desktop utilizzano questo file di configurazione. La CLI consente anche di specificare un percorso per un file di configurazione personalizzato con --config.

Di seguito sono riportati i parametri del file di configurazione e il loro significato. Se il vostro file di configurazione ha altri parametri non elencati, è possibile che siano obsoleti rispetto alle versioni precedenti di OnionShare.

Parametro

Tipo

Spiegazione

versione

string

La versione di OnionShare. Non dovrebbe essere necessario modificare questo valore.

connection_type

string

Il modo in cui OnionShare si connette a Tor. Le opzioni valide sono “bundled”, “automatic” (usa la connessione Tor del browser Tor), ‘control_port’ o “socket_file”. Valore predefinito: ‘bundled’

control_port_address

string

L’indirizzo IP della porta di controllo di Tor, se il connection_type è impostato su “control_port’. Predefinito: “127.0.0.1”

control_port_port

integer

Il numero della porta di controllo di Tor, se il connection_type è impostato su “control_port”. Predefinito: “9051”

socks_address

string

Il numero della porta di controllo di Tor, se il connection_type è impostato su “control_port’. Predefinito: “9051”

socks_port

integer

Il numero di porta del proxy SOCKS di Tor, se connection_type è impostato su “control_port’ o “socket_file”. Predefinito: “”9050”

socket_file_path

string

Il percorso del file socket di Tor, se connection_type è impostato su “socket_file’. Predefinito: “/var/run/tor/control”

auth_type

string

Se l’accesso alla porta di controllo di Tor richiede una password, si può impostare ‘password’, altrimenti ‘no_auth’. Predefinito: “no_auth”

auth_password

string

Se l’accesso alla porta di controllo di Tor richiede una password e auth_type è impostato su “password’, specificare la password qui. Predefinito: “”

auto_connect

boolean

Indica se OnionShare deve connettersi automaticamente a Tor all’avvio. Predefinito: Falso

use_autoupdate

boolean

Se OnionShare deve controllare automaticamente gli aggiornamenti (tramite Tor). Questa impostazione è valida solo per le installazioni MacOS o Windows. Predefinito: Vero.

autoupdate_timestamp

integer

L’ultima volta che OnionShare ha controllato gli aggiornamenti. Predefinito: Nessuno

bridges_enabled

boolean

Se connettersi a Tor usando i bridge. Predefinito: Falso

bridges_type

string

Quando bridges_enabled è True, dove caricare i bridge. Le opzioni sono “built-in” (ponti forniti con OnionShare e che possono essere aggiornati da Tor), ‘moat’ (ponti richiesti dall’API Moat di Tor) o “custom” (ponti forniti dall’utente). Predefinito: “integrato”

bridges_builtin_pt

string

Quando bridges_type è impostato su “built-in”, specifica quale tipo di protocollo di bridge utilizzare. Le opzioni sono “obfs4”, “meek-azure” o “snowflake”. Valore predefinito: “obfs4”

bridges_moat

string

Quando bridges_type è impostato su “moat”, i ponti restituiti dall’API Moat di Tor sono memorizzati qui. Predefinito: «»

bridges_custom

string

Quando bridges_type è impostato su «custom», i ponti specificati dall’utente sono memorizzati qui. Separare ogni riga di ponte nella stringa con “n”. Predefinito: «»

bridges_builtin

dict

Quando bridges_type è impostato su «built-in», OnionShare ottiene gli ultimi bridge built-in raccomandati da Tor e li memorizza qui. Predefinito: {}

persistent_tabs

list

Se l’utente ha definito alcune schede come “salvate” (nel senso che sono persistenti a ogni avvio di OnionShare e il loro indirizzo onion non cambia), a queste viene assegnato un identificatore casuale che viene elencato qui. La cipolla persistente viene memorizzata come file JSON con lo stesso nome di questo identificatore, in una sottocartella della cartella di configurazione di OnionShare chiamata “persistente”. Predefinito: []

locale

string

Il locale utilizzato in OnionShare. Predefinito: Nessuno (che equivale a “en”). Per i codici dei locali validi, vedere “available_locales” in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py

tema

boolean

Il tema dell’applicazione desktop di OnionShare. Le opzioni valide sono 0 (rileva automaticamente il tema chiaro o scuro del computer dell’utente), 1 (chiaro) o 2 (scuro).

Parametri del file di configurazione per le cipolle persistenti

Come descritto in precedenza, ogni cipolla “persistente” ha dei parametri propri che sono memorizzati in un proprio file JSON. Il percorso di questo file può essere specificato per lo strumento CLI con --persistent.

Ecco un esempio di configurazione JSON persistente:

{
  "onion": {
      "private_key": "0HGxILDDwYhxAB2Zq8mM3Wu3MirBgK7Fw2/tVrTw1XraElH7MWbVn3lzKbcJEapVWz2TFjaoCAVN48hGqraiRg==",
      "client_auth_priv_key": "UT55HDBA5VSRWOUERMGOHEIBKZCMOOGZAFFNI54GDQFZ6CMCUGIQ",
      "client_auth_pub_key": "TPQCMCV26UEDMCWGZCWAWM4FOJSQKZZTVPC5TC3CAGMDWKV255OA"
  },
  "persistent": {
      "mode": "share",
      "enabled": true,
      "autostart_on_launch": false
  },
  "general": {
      "title": null,
      "public": false,
      "autostart_timer": false,
      "autostop_timer": false,
      "service_id": "hvsufvk2anyadehahfqiacy4wbrjt2atpnagk4itlkh4mdfsg6vhd5ad"
  },
  "share": {
      "autostop_sharing": true,
      "filenames": [
          "/home/user/git/onionshare/desktop/org.onionshare.OnionShare.svg"
      ],
      "log_filenames": false
  },
  "receive": {
      "data_dir": "/home/user/OnionShare",
      "webhook_url": null,
      "disable_text": false,
      "disable_files": false
  },
  "website": {
      "disable_csp": false,
      "custom_csp": null,
      "log_filenames": false,
      "filenames": []
  },
  "chat": {}
}

Di seguito sono riportati i parametri del file di configurazione per una cipolla persistente e il loro significato, per ogni sezione del JSON

onion

Parametro

Tipo

Spiegazione

private_key

string

Chiave privata del servizio onion codificata in base64

client_auth_priv_key

string

La chiave privata quando si usa l’autenticazione del client. Inviarla all’utente.

client_auth_pub_key

string

La chiave pubblica quando si utilizza l’autenticazione del client. Utilizzata da OnionShare.

persistent

Parametro

Tipo

Spiegazione

mode

string

La modalità utilizzata da questa cipolla persistente. Le opzioni sono “condividere”, ‘ricevere’, “sito web” o “chat”.

enabled

boolean

Se la persistenza è abilitata per questa cipolla. Quando l’opzione persistente è deselezionata nel desktop, l’intero file JSON viene cancellato. Predefinito: true

autostart_on_launch

boolean

Se avviare automaticamente questa cipolla persistente all’avvio di OnionShare e una volta che Tor è connesso. Predefinito: false

general

Parametro

Tipo

Spiegazione

title

string

Un titolo personalizzato opzionale da visualizzare sul servizio onion. Predefinito: null (“OnionShare” sarà mostrato al suo posto)

public

boolean

Se si può accedere al servizio onion con o senza chiave privata (autenticazione del cliente). Se è vero, non è necessaria alcuna chiave privata.

autostart_timer

boolean

Se il servizio onion è configurato per avviarsi a un’ora specifica. L’ora può essere impostata nell’applicazione desktop o specificata in secondi con --auto-start-timer con lo strumento CLI. Predefinito: false

autostop_timer

boolean

Se il servizio Cipolla è configurato per arrestarsi a un’ora specifica. L’ora può essere impostata nell’applicazione desktop o specificata in secondi con --auto-stop-timer con lo strumento CLI. Predefinito: false

service_id

string

L’URL del servizio onion a 32 caratteri, senza lo schema e senza il suffisso ‘.onion’.

Le impostazioni seguenti sono specifiche per la “modalità” specificata nella sezione persistente di cui sopra.

share

Parametro

Tipo

Spiegazione

autostop_sharing

boolean

Se interrompere automaticamente la condivisione una volta che i file sono stati scaricati per la prima volta. Predefinito: true

filenames

list

Un elenco di file da condividere. Predefinito: []

log_filenames

boolean

Se registrare le richieste URL su stdout quando si usa lo strumento CLI. Predefinito: false

receive

Parametro

Tipo

Spiegazione

data_dir

string

Il percorso in cui verranno memorizzati i file o i messaggi di testo ricevuti. Predefinito: la cartella “OnionShare” della home directory dell’utente.

webhook_url

string

URL di webhook a cui OnionShare invierà un POST quando riceve file o messaggi di testo. Predefinito: null

disable_text

boolean

Disabilita la ricezione dei messaggi di testo. Predefinito: falso

disable_files

boolean

Disabilita la ricezione dei file. Predefinito: falso

website

Parametro

Tipo

Spiegazione

disable_csp

boolean

Se impostato su true, OnionShare non imposterà l’intestazione predefinita Content Security Policy per il sito web. Valore predefinito: false

custom_csp

string

Un’intestazione personalizzata dei criteri di sicurezza dei contenuti da inviare al posto di quella predefinita.

log_filenames

boolean

Se registrare le richieste URL su stdout quando si usa lo strumento CLI. Predefinito: false

filenames

list

Un elenco di file da condividere. Predefinito: []

chat

Attualmente non ci sono impostazioni configurabili per la modalità Chat.