Uso avanzado

Guardar pestañas

Al cerrar las pestañas de OnionShare que alojas, se destruyen y se impide su reutilización. Los sitios web alojados de forma persistente están disponibles en la misma dirección incluso si se reinicia el equipo desde el que se comparten.

Se hace cualquier pestaña persistente al pulsar en la casilla “Abrir siempre esta pestaña cuando se inicie OnionShare” antes de iniciar tu servidor.

_images/advanced-save-tabs.png

Al abrir OnionShare, se abrirán las pestañas guardadas de la sesión anterior. Luego, cada servicio se puede iniciar manualmente y estará disponible en la misma dirección de OnionShare y protegido por la misma clave privada.

Si guardas una pestaña, se almacenará en su equipo una copia de la clave secreta del servicio cebolla.

Apagar Clave Privada

Por defecto, todos los servicios de OnionShare están protegidos con una clave privada, la cual Tor la llama “autenticación de cliente”.

El Navegador Tor le pedirá que ingrese su clave privada cuando cargue un servicio OnionShare. Si quiere conceder que el público use su servicio, es mejor inhabilitar la clave privada por completo.

Para desactivar la clave privada en cualquier pestaña, marque la casilla “Este es un servicio público de OnionShare (inhabilita la clave privada)” antes de iniciar el servidor. Entonces el servidor será público y no necesitará una clave privada para verlo en el Navegador Tor.

Títulos Personalizados

Cuando las personas carguen un servicio de OnionShare en el Navegador Tor verán el título predeterminado por cada tipo de servicio. Por ejemplo, el título predeterminado de un servicio de chat es “OnionShare Chat”.

Si edita la configuración de “Título personalizado” antes de iniciar un servidor, puede cambiarla.

Tiempos planificados

OnionShare admite la temporización exacta de cuándo debe iniciarse y detenerse un servicio. Antes de iniciar un servidor, pulse en “Mostrar ajustes avanzados” en su pestaña, y luego se marca la casilla próxima a “Iniciar el servicio cebolla en el tiempo programado”, o “Detener el servicio cebolla en el tiempo programado”, o ambas, y establece las fechas y horas deseadas.

Los servicios planificados para iniciar en el futuro exhibe un cronómetro regresivo al pulsar en el botón “Comenzar a compartir”. Los servicios planificados para detenerse en el futuro exhiben un cronómetro de cuenta regresiva cuando se inician.

Planificar un servicio de OnionShare para que se inicie automáticamente se puede usar como un dispositivo HM. Esto significa que tu servicio será público en un momento dado en el futuro si no lo detiene. Si no sucede nada, puedes cancelar el servicio antes de que su planificación empiece.

_images/advanced-schedule-start-timer.png

Planificar un servicio OnionShare para que se detenga automáticamente limita su exposición. Si desea compartir información secreta o algo que se desactualizará, puede hacerlo por un tiempo limitado seleccionado.

_images/advanced-schedule-stop-timer.png

Interfaz de línea de comando

Además de su interfaz gráfico, OnionShare tiene una interfaz de línea de comando.

Instalar la versión de CLI

Si has instalado el Snap, paquetes macOS o Windows, ya tienes la versión de CLI instalada.

Alternativamente, puedes instalar la versión de línea de comando de OnionShare usando pip3:

pip3 install --user onionshare-cli

Ten en cuenta que también necesitarás el paquete tor instalado. En macOS, instálalo con: brew install tor

Luego, ejecútalo así:

onionshare-cli --help

Para información sobre cómo instalarlo en diferentes sistemas operativos, consulte el archivo README de CLI <https://github.com/onionshare/onionshare/blob/develop/cli/README.md> _ en el repositorio de Git.

Ejecutar el CLI desde Snap

Si instalaste OnionShare usando el paquete Snap, puedes ejecutar onionshare.cli para acceder a la versión de interfaz de línea de comando.

Ejecutar el CLI desde macOS

Desde la Terminar, puedes ejecutar /Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help

Al ejecutar el CLI desde Windows

En la instalación de Windows, está disponible el ejecutable onionshare-cli.exe.

Uso

Navega por la documentación de línea de comando ejecutando 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

Ejecutar el CLI como un archivo de unidad de systemd

Esto es posible para iniciar automáticamente OnionShare desde el CLI utilizando el archivo de unidad de systemd.

Puedes encontrar esta particularidad útil si está operando un modo ‘persistente’, y desea iniciar el mismo servicio cebolla cada vez que su máquina arranque.

Para hacer esto, necesitas primero preparar algún config de json de OnionShare.

Aquí está la configuración principal de OnionShare. Esto es un ejemplo, está almacenado en /home/usuario/.config/onionshare,json. Puede necesitar ajustar algo de los parámetros, pero si ya tiene instalado OnionShare, probablemente parece mucho a esto preparado:

{
  "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
}

Dese cuenta que la sección “persistent_tabs”. Ahora crearemos un archivo en /home/usuario/.config/onionshare/persistent/my-persistent-onion.json, que es similar a esto:

{
  "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": {}
}

Actualmente ¡no utilice esta clave privada, service_id o client_auth! Son mostrados solo como un ejemplo. Nunca comparta el private_key con nadie.

La forma más sencilla de generar la dirección Onion y la clave privada es crear primero una pestaña de OnionShare fijada en la aplicación de escritorio e iniciar el recurso compartido por primera vez. Esto guardará la configuración persistente en la carpeta .config/onionshare/persistent/ con un nombre aleatorio. Puedes desanclar esa pestaña una vez generada la primera vez. O bien, puedes dejarla donde está y usar ese archivo persistente en el archivo de unidad systemd que aparece a continuación.

Ahora puede crear un archivo de unidad systemd en /etc/systemd/system/onionshare-cli.service. Asegúrese de ajustar el Usuario y el Grupo a su propio usuario/grupo, así como los cambios en las rutas al binario onionshare-cli o las rutas a sus configuraciones y recursos compartidos JSON.

El archivo de la unidad systemd se aparecería como esto:

[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

Tenga en cuenta que, aunque /home/user/my-shared-file.txt se definió en la sección filenames del archivo my-persistent-onion.json, aún es necesario especificarlo como argumento del comando onionshare-cli.

Asegúrese de ejecutar sudo systemctl daemon-reload después de crear el archivo de unidad.

Ahora puedes ejecutar sudo systemctl start onionshare-cli.service. Si tienes journalctl instalado, puede ejecutar sudo journalctl -f -t onionshare-cli y deberías ver el resultado del inicio de su servicio:

[...]
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

Si no desea que sus usuarios no utilicen una Clave Privada, establezca public para ser true en los ajustes ``general``del archivo my-persistent-onion.json.

Atajos del Teclado

La aplicación de escritorio OnionShare contiene algunos atajos de teclado, para mayor comodidad y accesibilidad:

Ctrl T - New Tab
Ctrl X - Closes current tab

Y desde la pantalla principal del selector de modo:

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

Migrar tus datos de OnionShare a otro equipo

Quizás quieras migrar tus datos de OnionShare al cambiar a otro equipo. Esto es especialmente cierto si tenías una dirección cebolla “persistente” y quieres preservarla.

OnionShare almacena todos estos datos en una carpeta específica. Copie la carpeta correspondiente a su sistema operativo a continuación, en su equipo nuevo:

  • Linux: ~/.config/onionshare

  • macOS: ~/Library/Application Support/OnionShare

  • Windows: %APPDATA%\OnionShare

Parámetros del archivo de configuración

OnionShare almacena sus ajustes en un archivo JSON. Ambos el CLI y las versiones del Escritorio utiliza este archivo de configuración. El CLI además de permite especificar una ruta a un archivo de configuración personalizado con --config.

Debajo están los parámetros del archivo de configuración y qué significa. Si su archivo de configuración tiene otros parámetros no listados aquí, puede estar obsoleto desde otras versiones de OnionShare.

Parámetro

Tipo

Explicación

versión

segmento

La versión de OnionShare. No incluso necesitaría cambiar este valor.

connection_type

segmento

La manera en la cual OnionShare conecta a Tor. Las opciones válidas son “bundled”, “automatic” (utiliza conexión de Tor del Navegador Tor), “control-port” o “socket_file”. Por defecto: “bundled”

control_port_address

segmento

La dirección de IP del puerto de Control de Tor, si connection_type está fijado a “control_port”. Por defecto: “127.0.0.1”

control_port_port

integer

El número del puerto del puerto de Control de Tor, si connection_type está fijado a “control_port”. Por defecto: “9051”

socks_address

segmento

La dirección IP del proxy de SOCKS de Tor, si connection_type está fijado para “control_port” o “socket_file”. Por defecto: “127.0.0.1”

socks_port

integer

El número del puerto del proxy SOCKS de Tor, si connection_type está fijado para “control_port” o “socket_file”: Por defecto: “”9050”

socket_file_path

segmento

La ruta para el archivo del zócalo de Tor, si connection_type está establecido a “socket_file”: Por defecto: “/var/run/tor/control”

auth_type

segmento

Si accede al puerto de control de Tor requiere una contraseña, esto puede ser puesto a “password”, en otro caso “no_auth”. Por defecto: “no_auth”

auth_password

segmento

Si acceder al puerto de control de Tor requiere una contraseña, y auth_type está establecido a “password”, especifica la contraseña aquí. Por defecto: “”

auto_connect

boolean

Si OnionShare automáticamente conectaría a Tor cuando comienza. Por defecto: False

use_autoupdate

boolean

Si OnionShare debe buscar actualizaciones automáticamente (a través de Tor). Estos ajustes solo son válidos para instalaciones de macOS o Windows. Valor predeterminado: True.

autoupdate_timestamp

integer

La última vez que OnionShare buscó actualizaciones. Predeterminado: None

bridges_enabled

boolean

Si se conecta a Tor utilizando puentes. Predeterminado: False

bridges_type

segmento

Cuando bridges_enabled es True, desde donde cargar los puentes. Las opciones son integrados, «built-in», (puentes incluidos con OnionShare y que pueden actualizarse desde Tor), «moat» (solicitar puentes desde la API Moat de Tor) o «custom», personalizados, (puentes proporcionados por el usuario). Valor predeterminado: «built-in»

bridges_builtin_pt

segmento

Cuando ``bridges_type``está establecido a «build-in», esto especifica cual tipo del protocolo del puente a utilizar. Las opciones son «obfs4», «meek-azure» o «snowflake». Predeterminado: «obfs4»

bridges_moat

segmento

Cuando ``bridges_type``está establecido a «moat», los puentes devueltos desde el API Moat de Tor son almacenados aquí. Predeterminado: «»

bridges_custom

segmento

Cuando bridges_type se configura como «custom», los puentes especificados por el usuario se almacenan aquí. Separe cada línea de puente en la cadena con “n”. Valor predeterminado: «»

bridges_builtin

dict

Cuando bridges_type se configura a «built-in», OnionShare obtiene los puentes integrados más recientes recomendados por Tor y los almacena aquí. Predeterminado: {}

persistent_tabs

list

Si el usuario ha definido alguna pestaña como ‘guardada’ (es decir, que se mantiene cada vez que se inicia OnionShare y su dirección cebolla no cambia), se le asigna un identificador aleatorio que se alista aquí. La cebolla persistente se almacena como un archivo JSON con el mismo nombre que este identificador, en una subcarpeta de la carpeta de configuración de OnionShare llamada ‘persistent’. Predeterminado: []

local

segmento

La configuración regional utilizada en OnionShare. Valor predeterminado: None (equivale a “en”). Para códigos de región válidos, consulte “available_locales” en https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py

tema

boolean

El tema de la aplicación de escritorio OnionShare. Las opciones válidas son 0 (detectar automáticamente el tema claro u oscuro del equipo del usuario), 1 (claro) o 2 (oscuro).

Configuración de parámetros de archivo para cebollas persistentes

Como se describió anteriormente, cada cebolla persistente tiene sus propios parámetros, los cuales se almacenan en su propio archivo JSON. La ruta a este archivo se puede especificar para la herramienta CLI con --persistent.

A continuación se muestra un ejemplo de configuración 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": {}
}

A continuación se muestran los parámetros del archivo de configuración para una cebolla persistente y lo que significan, para cada sección en el JSON

cebolla

Parámetro

Tipo

Explicación

private_key

segmento

Clave privada codificada en Base64 del servicio Onion

client_auth_priv_key

segmento

La clave privada al usar la Autenticación de Cliente. Envíe esto al usuario.

client_auth_pub_key

segmento

La clave pública al usar la Autenticación de Cliente. Se utiliza en la lado de OnionShare.

persistente

Parámetro

Tipo

Explicación

modo

segmento

El modo utilizado por esta cebolla persistente. Las opciones son «share «receive», «website» o «chat».

habilitado

boolean

Si la persistencia está habilitada para esta cebolla. Cuando la opción de persistencia está desmarcada en el escritorio, se borra todo el archivo JSON. Predeterminado: true

autostart_on_launch

boolean

Si se debe iniciar automáticamente esta cebolla persistente al iniciar OnionShare y una vez que Tor se conecta. Predeterminado: false

general

Parámetro

Tipo

Explicación

título

segmento

Un título personalizado opcional para exhibir en el servicio Onion. Valor predeterminado: null (nulo) (se mostrará «OnionShare» en su lugar)

público

boolean

Si se puede ser accedo al servicio Cebolla con o sin una clave privada (autenticación de cliente). Si es verdadero, no se requiere una Clave Privada.

autostart_timer

boolean

Si el servicio Cebolla está configurado para iniciarse a una hora específica. La hora se puede configurar en la aplicación de escritorio o especificar en segundos con --auto-start-timer en la herramienta CLI. Valor predeterminado: false

autostop_timer

boolean

Si el servicio Onion está configurado para detenerse a una hora específica. El tiempo se puede configurar en la aplicación de escritorio o especificar en segundos con --auto-stop-timer con la herramienta CLI. Predeterminado: false

service_id

segmento

La URL del servicio Onion de 32 caracteres, sin el esquema y sin el sufijo “.onion”.

Las siguientes son ajustes específicos del “modo” especificado en la sección persistent anterior.

compartir

Parámetro

Tipo

Explicación

autostop_sharing

boolean

Si se debe detener automáticamente el uso compartido una vez descargados los archivos por primera vez. Predeterminado: true

ID de archivo

list

Un listado de archivos para compartir. Predeterminado: []

log_filenames

boolean

Si se deben registrar las solicitudes de URL en stdout cuando se utiliza la herramienta CLI. Por defecto: falso

recepcionar

Parámetro

Tipo

Explicación

data_dir

segmento

La ruta donde recibió archivos o mensaje de texto será almacenado. Por defecto: la carpeta “OnionShare” del directorio de inicio del usuario.

webhook_url

segmento

URL de webhook a la que OnionShare enviará mensajes POST cuando reciba archivos o mensajes de texto. Predeterminado: null

disable_text

boolean

Si se inhabilita la recepción de mensajes de texto. Predeterminado: false

disable_files

boolean

Si se deshabilita la recepción de archivos. Predeterminado: false

sitio web

Parámetro

Tipo

Explicación

disable_csp

boolean

Si se establece como true, OnionShare no establecerá su encabezado de Directiva de Seguridad de Contenido predeterminado para el sitio web. Valor predeterminado: false

custom_csp

segmento

Una cabecera personalizada de Directiva de Seguridad del Contenido para enviar en vez de lo predeterminado.

log_filenames

boolean

Si se deben registrar las solicitudes de URL en stdout cuando se utiliza la herramienta CLI. Por defecto: falso

ID de archivo

list

Un listado de archivos para compartir. Predeterminado: []

charla

Actualmente no hay ajustes configurables para el modo Charla.