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.
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.
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.
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
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 |
|
La versión de OnionShare. No incluso necesitaría cambiar este valor. |
connection_type |
|
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 |
|
La dirección de IP del puerto de Control de Tor, si |
control_port_port |
|
El número del puerto del puerto de Control de Tor, si |
socks_address |
|
La dirección IP del proxy de SOCKS de Tor, si |
socks_port |
|
El número del puerto del proxy SOCKS de Tor, si |
socket_file_path |
|
La ruta para el archivo del zócalo de Tor, si |
auth_type |
|
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 |
|
Si acceder al puerto de control de Tor requiere una contraseña, y |
auto_connect |
|
Si OnionShare automáticamente conectaría a Tor cuando comienza. Por defecto: False |
use_autoupdate |
|
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 |
|
La última vez que OnionShare buscó actualizaciones. Predeterminado: None |
bridges_enabled |
|
Si se conecta a Tor utilizando puentes. Predeterminado: False |
bridges_type |
|
Cuando |
bridges_builtin_pt |
|
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 |
|
Cuando ``bridges_type``está establecido a «moat», los puentes devueltos desde el API Moat de Tor son almacenados aquí. Predeterminado: «» |
bridges_custom |
|
Cuando |
bridges_builtin |
|
Cuando |
persistent_tabs |
|
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 |
|
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 |
|
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 |
|
Clave privada codificada en Base64 del servicio Onion |
client_auth_priv_key |
|
La clave privada al usar la Autenticación de Cliente. Envíe esto al usuario. |
client_auth_pub_key |
|
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 |
|
El modo utilizado por esta cebolla persistente. Las opciones son «share «receive», «website» o «chat». |
habilitado |
|
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 |
|
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 |
|
Un título personalizado opcional para exhibir en el servicio Onion. Valor predeterminado: null (nulo) (se mostrará «OnionShare» en su lugar) |
público |
|
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 |
|
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 |
autostop_timer |
|
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 |
service_id |
|
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.
recepcionar
Parámetro |
Tipo |
Explicación |
|---|---|---|
data_dir |
|
La ruta donde recibió archivos o mensaje de texto será almacenado. Por defecto: la carpeta “OnionShare” del directorio de inicio del usuario. |
webhook_url |
|
URL de webhook a la que OnionShare enviará mensajes POST cuando reciba archivos o mensajes de texto. Predeterminado: null |
disable_text |
|
Si se inhabilita la recepción de mensajes de texto. Predeterminado: false |
disable_files |
|
Si se deshabilita la recepción de archivos. Predeterminado: false |
sitio web
Parámetro |
Tipo |
Explicación |
|---|---|---|
disable_csp |
|
Si se establece como |
custom_csp |
|
Una cabecera personalizada de Directiva de Seguridad del Contenido para enviar en vez de lo predeterminado. |
log_filenames |
|
Si se deben registrar las solicitudes de URL en stdout cuando se utiliza la herramienta CLI. Por defecto: falso |
ID de archivo |
|
Un listado de archivos para compartir. Predeterminado: [] |
charla
Actualmente no hay ajustes configurables para el modo Charla.