|About this OnionShare Page|
OnionShare is an open source program that allows a file of any size to be shared securely and anonymously using the Tor network.  OnionShare is installed by default as of Whonix ™ 15. The OnionShare wiki succinctly describes the design: 
It works by starting a web server, making it accessible as a Tor Onion Service, and generating an unguessable URL to access and download the files. It does not require setting up a separate server or using a third party file-sharing service. You host the files on your own computer and use a Tor Onion Service to make it temporarily accessible over the internet. The receiving user just needs to open the URL in Tor Browser to download the file.
As of OnionShare 2 it is also possible to run the program in Receive mode. This means you can receive files via OnionShare after they are uploaded by Tor Browser users; this is a sort of 'SecureDrop Lite' or personal dropbox.
Whonix VM Configuration
Launch OnionShare in Whonix-Workstation ™ by either running the command line interface or GUI version.
On the first run of OnionShare:
- Ignore the initial "Cannot connect to Tor" error which may or may not be shown. 
- Select the settings button/icon (cog symbol) in the GUI.
- Under “How should OnionShare connect to Tor?” choose “Connect using socket file”, and set the socket file to
- Under “Tor authentication options” choose “No authentication, or cookie authentication”.
To test OnionShare is running correctly:
- Click the “Test Settings” button. If all steps were completed correctly, Tor will successfully connect.
- The GUI should say it supports both ephemeral onion services and stealth onion services.
- You can check “Create stealth onion services” (Client Auth) to make OnionShare operations more secure - however, this currently only works with legacy 'v2' (shorter) style onions. Support for Client Auth with v3/prop224/next-gen onions will be possible in a future release.
- Note: Using Stealth mode makes it harder for the end user to connect to the share, because they must first edit their torrc file. Please see the official documentation for further information.
- By default, if the version of Tor in use is 0.3.5.7 or higher (as it is in Whonix ™), OnionShare will use next-gen or 'v3' (sometimes referred to as prop224) onion addresses by default. These are recognizable by their longer address. You can enable Legacy Mode in the settings if for some reason you want to use the shorter (but less secure) v2 onion addresses.
Once OnionShare has been installed correctly and the Tor check is successful, sharing files anonymously is easy: 
Open OnionShare, drag and drop files and folders you wish to share into it, and click Start Sharing. After a moment, it will show you a .onion URL such as http://asxmi4q6i7pajg2b.onion/egg-cain. This is the secret URL that can be used to download the file you're sharing.
Send this URL to the person you're sending the files to. If the files you're sending aren't secret, you can use normal means of sending the URL, like by emailing it, or sending it in a Facebook or Twitter private message. If you're sending secret files then it's important to send this URL securely.
The person who is receiving the files doesn't need OnionShare. All they need is to open the URL you send them in Tor Browser to be able to download the file.
As of OnionShare 2, a new feature exists called 'Receive Mode'. With this mode, you can start an onion service and allow other users to upload files to you via Tor Browser (rather than Share Mode, in which you share files from your OnionShare to others). To learn more about Receive Mode, refer to this OnionShare wiki entry.
A complete user guide, along with advanced topics, hardening options  and development documentation is available on the official website. Do not change settings without fully understanding their function, otherwise onion addresses might be re-used, shares might be left open even after multiple downloads are performed, and so on.
AppArmor profiles are available to better contain OnionShare, but they have not yet been tested in Whonix ™.  Profile development is reported to be lagging behind the master and development branches of the OnionShare git repository. Therefore, willing testers should be knowledgeable about AppArmor profiles before attempting this procedure.
TODO: Test profiles and expand this section.
- By using Whonix ™, additional protections are in place for greater security.
- This application requires access to Tor's control protocol.
- In the Whonix ™ context, Tor's control protocol has dangerous features. The Tor control command GETINFO address reveals the real, external IP of the Tor client.
- Whonix ™ provides onion-grater, a Tor Control Port Filter Proxy - filtering dangerous Tor Control Port commands.
- When this application is run inside Whonix ™ with an onion-grater whitelist extension, this will limit application rights to Tor control protocol access only. Non-whitelisted Tor control commands such as GETINFO address are rejected by onion-grater in these circumstances.
- During the application's normal operations it should not attempt to use dangerous Tor control commands such as GETINFO address. In the event the application or Whonix-Workstation ™ are compromised, this command would be rejected.
- In comparison, if the application is run on a non-Tor focused operating system like Debian, it will have unlimited access to Tor's control protocol (a less secure configuration).
- If the (non-)Whonix platform is used to host onion services, then running applications are more vulnerable to attacks against the Tor network compared to when Tor is solely used as a client; see also Onion Services Security.
/usr/local/etc/onion-grater-merger.d/because that onion-grater settings folder is persistent in Qubes-Whonix ™ TemplateBased ProxyVMs i.e. Whonix-Gateway ™ (commonly called
sys-whonix). Non-Qubes-Whonix ™ users could also utilize
/etc/onion-grater-merger.d/. Qubes-Whonix ™ users could also utilize
/etc/onion-grater-merger.d/must be made persistent, which means doing this procedure inside the Whonix-Gateway ™ TemplateVM (commonly called
whonix-gw-15) and then restarting the Whonix-Gateway ™ ProxyVM or using bind-dirs. Both techniques are more complicated than simply using
/usr/local/etc/onion-grater-merger.d/, since it is persistent either way. Further, it even allows multiple Whonix-Gateway ™ ProxyVMs based on the same Whonix-Gateway ™ TemplateVM; for example, one Whonix-Gateway ™ ProxyVM extending and relaxing onion-grater's whitelist and the other Whonix-Gateway ™ ProxyVM having the default onion-grater whitelist which is more restrictive.
- As per https://labs.riseup.net/code/issues/7870#note-15 OnionShare uses ports 17600 to 17659.
- To create a .deb on Debian, run:
- Will be fixed after upgrades: https://forums.whonix.org/t/feature-request-onionshare-support/300/20
- Such as setting a Shutdown Timer to self-destruct shares if they are not downloaded within an acceptable time window. These topics are beyond the scope of this documentation.
This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation.
Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee of the Open Invention Network. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)