{{Title|title=Non-{{project_name}} Tor Browser}}
{{Header}}
{{#seo:
|description=Installing Tor Browser outside of {{project_name}}. Fallback if {{project name}} breaks. Test Tor connectivity outside of {{project_name}}.
|image=https://www.whonix.org/w/images/b/b8/Tbboutside.jpg
}}
{{Contributor|
|status=stable
|about=About this ''Non-{{project_name}} Tor Browser'' Page
|difficulty=easy
|contributor=[https://forums.whonix.org/users/torjunkie torjunkie]
|support=[[Support]]
}}

= Introduction =

Various wiki sections recommend that a functional Tor Browser instance is maintained outside of the {{project name}} platform. This is useful in various cases:

* Should {{project name}} ever break, it is possible to search for a solution anonymously.
* System-wide Tor problems can be easily detected by testing connectivity outside of {{project_name}}.
* Certain Tor / Tor Browser activities are difficult (or impossible) to configure in {{project_name}}, but are much easier in the standard configuration. <ref>For example, the [[Bridges#Snowflake|Snowflake]] pluggable transport client is currently experimental in {{project_name}}.</ref>

In [[{{non_q_project_name_short}}|{{non_q_project_name}}]], it is recommended to have Tor Browser installed on the Linux / macOS / Windows host platform. In [[{{q_project_name_short}}|{{q_project_name}}]], it is recommended to install Tor Browser in a debian-10 AppVM.

= Easy =

== All Platforms: Manual Tor Browser Download ==

Follow [[Manually_Downloading_Tor_Browser#Manually_Downloading_Tor_Browser |these instructions]] to manually download Tor Browser with Firefox-ESR via the available onion service. This method is not anonymous, unless [[{{q_project_name_short}}|{{q_project_name}}]] users temporarily set <code>sys-whonix</code> as the NetVM for the non-{{project_name}} AppVM.

== Debian Linux Hosts ==

Tor Browser can optionally be downloaded utilizing the [https://github.com/{{project_name_short}}/tb-updater <code>tb-updater</code>] software package by {{project_name}} developers. By default the download <u>does not</u> occur over Tor, meaning it is <u>not</u> anonymous.
{{Box|text=
'''1.''' Add the {{project name}} signing key.

{{gpg_key_download}}

{{CodeSelect|code=
sudo apt-key --keyring /etc/apt/trusted.gpg.d/whonix.gpg adv --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
}}

'''2.''' Add the {{project name}} APT repository.

{{CodeSelect|code=
echo “deb http://deb.whonix.org {{Stable project version based on Debian codename}} main contrib non-free” {{!}} sudo tee /etc/apt/sources.list.d/whonix.list
}}

'''3.''' Update the package lists.

{{CodeSelect|code=
sudo apt-get update
}}

'''4.''' Install <code>tb-updater</code>.

{{CodeSelect|code=
sudo apt-get install tb-updater
}}
}}

= Moderate: {{q_project_name}} =

{{mbox
| image   = [[File:Ambox_notice.png|40px]]
| text    = [[{{q_project_name_short}}|{{q_project_name}}]] R4 only! This method is anonymous.
}}

The [[{{q_project_name_short}}|{{q_project_name}}]] R4 or above instructions using {{project name}} <code>tb-updater</code> are a little more difficult because TemplateVMs are non-networked by default.

These instructions:

# Anonymously retrieve and verify the {{project name}} signing key.
# Copy the {{project name}} signing key to a debian-10 TemplateVM clone (<code>debian-10-tor</code>).
# Add the {{project name}} signing key to a list of trusted keys.
# Install apt-transport-tor in the <code>debian-10-tor</code> TemplateVM.
# Add the {{project name}} onion repository.
# Install <code>tb-updater</code> from the {{project name}} stable repository.
# Create a <code>debian-tor-browser</code> AppVM based on the debian-10 TemplateVM clone.
# Complete the anonymous installation of Tor Browser in the non-{{project_name}} VM.

== Clone the debian-10 TemplateVM ==

{{mbox
| type    = notice
| image   = [[File:Ambox_notice.png|40px|alt=Info]]
| text    = <u>Prerequisite</u>: The Debian 10 TemplateVM must be manually installed first. In <code>dom0</code>, run. {{CodeSelect|code=
sudo qubes-dom0-update --enablerepo=qubes-templates-itl-testing qubes-template-debian-10
}}
}}

In Qube Manager: <code>Right-click debian-10 template</code> &rarr; <code><u>C</u>lone qube</code> &rarr; <code>Rename to debian-10-tor</code>

== anon-whonix Steps ==

Run the following commands in <code>anon-whonix</code> Konsole.
{{Box|text=
'''1.''' Add the {{project name}} signing key.

{{gpg_key_download}}

{{CodeSelect|code=
sudo apt-key adv --keyserver jirk5u4osbsr34t5.onion --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
}}

'''2.''' Display the key fingerprint.

{{CodeSelect|code=
sudo apt-key adv --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
}}

'''3.''' Verify the {{project name}} signing key fingerprint.

Compare the fingerprint to the one found [[{{project name short}}_Signing_Key|here]].

'''4.''' Copy the {{project name}} signing key to a temporary <code>whonix.key</code> file.

{{CodeSelect|code=
sudo apt-key export 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA > /tmp/whonix.key
}}

'''5.''' Copy the <code>whonix.key</code> text file to the <code>debian-10-tor</code> TemplateVM.

{{CodeSelect|code=
qvm-copy /tmp/whonix.key debian-10-tor
}}
}}

== debian-10-tor TemplateVM Steps ==

Complete the following steps in <code>debian-10-tor</code> Konsole.
{{Box|text=
'''1.''' Add the {{project name}} signing key to the list of trusted keys.

{{CodeSelect|code=
sudo apt-key add ~/QubesIncoming/anon-whonix/whonix.key
}}

'''2.''' Install [https://packages.debian.org/stretch/apt-transport-tor <code>apt-transport-tor</code>] from the Debian repository. <ref>For support in downloading APT packages anonymously via the Tor network.</ref>

{{CodeSelect|code=
sudo apt-get install apt-transport-tor
}}

'''3.''' Add the {{project name}} stable onion APT repository.

Note: <code>tor+http</code> does not work in this configuration.

{{CodeSelect|code=
echo "deb http://deb.dds6qkxpwdeubwucdiaord2xgbbeyds25rbsgr73tbfpqpt4a6vjwsyd.onion {{Stable project version based on Debian codename}} main contrib non-free" {{!}} sudo tee /etc/apt/sources.list.d/whonix.list
}}

'''4.''' Update the package lists.

{{CodeSelect|code=
sudo apt-get update
}}

'''5.''' Install <code>tb-updater</code> by {{project_name}}.

{{CodeSelect|code=
sudo apt-get install tb-updater
}}

Note: This step will correctly install <code>tb-updater</code>, but if it tries to automatically download Tor Browser it will fail because the download attempt from The Tor Project is blocked by default.
}}

== debian-tor-browser AppVM Steps ==

{{Box|text=
'''1.''' Create an AppVM based on the debian-10-tor TemplateVM: <code>debian-tor-browser</code>.

In Qube Manager: <code>Left-click <u>Q</u>ube</code> &rarr; <code>Create <u>n</u>ew qube</code>

Use the following settings:

* <u>Name and label:</u> debian-tor-browser
* <u>Type:</u> AppVM
* <u>Template:</u> debian-10-tor
* <u>Networking:</u> default (sys-firewall)

'''2.''' Temporarily set <code>sys-whonix</code> as the NetVM for the Debian AppVM.

In Qube Manager: <code>Right-click ''debian-tor-browser''</code> &rarr; <code>Qube s<u>e</u>ttings</code> &rarr; <code>Networking</code> &rarr; <code>Select ''sys-whonix''</code> &rarr; <code>OK</code>

'''3.''' Download Tor Browser.

In Konsole, run.

{{CodeSelect|code=
update-torbrowser --input gui
}}

'''4.''' Revert the networking setting to <code>sys-firewall</code> in Qube Manager.

'''5.''' Launch Tor Browser from the AppVM menu and check it is functional.

Note: Tor Browser can be kept up-to-date using Tor Browser's internal updater. It is not necessary to run the ''update-torbrowser'' command again.
}}

= Footnotes =
{{reflist|close=1}}

{{Footer}}

[[Category:Documentation]]
