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.
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.
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.
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
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 |
|
La versione di OnionShare. Non dovrebbe essere necessario modificare questo valore. |
connection_type |
|
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 |
|
L’indirizzo IP della porta di controllo di Tor, se il |
control_port_port |
|
Il numero della porta di controllo di Tor, se il |
socks_address |
|
Il numero della porta di controllo di Tor, se il |
socks_port |
|
Il numero di porta del proxy SOCKS di Tor, se |
socket_file_path |
|
Il percorso del file socket di Tor, se |
auth_type |
|
Se l’accesso alla porta di controllo di Tor richiede una password, si può impostare ‘password’, altrimenti ‘no_auth’. Predefinito: “no_auth” |
auth_password |
|
Se l’accesso alla porta di controllo di Tor richiede una password e |
auto_connect |
|
Indica se OnionShare deve connettersi automaticamente a Tor all’avvio. Predefinito: Falso |
use_autoupdate |
|
Se OnionShare deve controllare automaticamente gli aggiornamenti (tramite Tor). Questa impostazione è valida solo per le installazioni MacOS o Windows. Predefinito: Vero. |
autoupdate_timestamp |
|
L’ultima volta che OnionShare ha controllato gli aggiornamenti. Predefinito: Nessuno |
bridges_enabled |
|
Se connettersi a Tor usando i bridge. Predefinito: Falso |
bridges_type |
|
Quando |
bridges_builtin_pt |
|
Quando |
bridges_moat |
|
Quando |
bridges_custom |
|
Quando |
bridges_builtin |
|
Quando |
persistent_tabs |
|
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 |
|
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 |
|
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 |
|
Chiave privata del servizio onion codificata in base64 |
client_auth_priv_key |
|
La chiave privata quando si usa l’autenticazione del client. Inviarla all’utente. |
client_auth_pub_key |
|
La chiave pubblica quando si utilizza l’autenticazione del client. Utilizzata da OnionShare. |
persistent
Parametro |
Tipo |
Spiegazione |
|---|---|---|
mode |
|
La modalità utilizzata da questa cipolla persistente. Le opzioni sono “condividere”, ‘ricevere’, “sito web” o “chat”. |
enabled |
|
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 |
|
Se avviare automaticamente questa cipolla persistente all’avvio di OnionShare e una volta che Tor è connesso. Predefinito: false |
general
Parametro |
Tipo |
Spiegazione |
|---|---|---|
title |
|
Un titolo personalizzato opzionale da visualizzare sul servizio onion. Predefinito: null (“OnionShare” sarà mostrato al suo posto) |
public |
|
Se si può accedere al servizio onion con o senza chiave privata (autenticazione del cliente). Se è vero, non è necessaria alcuna chiave privata. |
autostart_timer |
|
Se il servizio onion è configurato per avviarsi a un’ora specifica. L’ora può essere impostata nell’applicazione desktop o specificata in secondi con |
autostop_timer |
|
Se il servizio Cipolla è configurato per arrestarsi a un’ora specifica. L’ora può essere impostata nell’applicazione desktop o specificata in secondi con |
service_id |
|
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.
receive
Parametro |
Tipo |
Spiegazione |
|---|---|---|
data_dir |
|
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 |
|
URL di webhook a cui OnionShare invierà un POST quando riceve file o messaggi di testo. Predefinito: null |
disable_text |
|
Disabilita la ricezione dei messaggi di testo. Predefinito: falso |
disable_files |
|
Disabilita la ricezione dei file. Predefinito: falso |
website
Parametro |
Tipo |
Spiegazione |
|---|---|---|
disable_csp |
|
Se impostato su |
custom_csp |
|
Un’intestazione personalizzata dei criteri di sicurezza dei contenuti da inviare al posto di quella predefinita. |
log_filenames |
|
Se registrare le richieste URL su stdout quando si usa lo strumento CLI. Predefinito: false |
filenames |
|
Un elenco di file da condividere. Predefinito: [] |
chat
Attualmente non ci sono impostazioni configurabili per la modalità Chat.