Voraussetzung für den Tor Betrieb ist OpenSSL.
Unter Linux ist OpenSSL meistens als Bestanteil jeder Distribution bereits vorhanden. Unter Windows sind die OpenSSL Bibliotheken im Tor Installer enthalten. Man braucht also OpenSSL nicht gesondert zu installieren, kann aber alternativ auch ein bereits installiertes OpenSSL Archiv mit Tor verwenden.
Alternativ werden libevent und Tor über die jeweiligen Software-Repositories der Distributionen als fertige Binarypakete installiert.
Für Distributionen mit RPM Paketverwaltung sind z. B. RPM Pakete für Tor verfügbar. Bei der RPM Installation wird auch ein Tor Initscript angelegt und aktiviert. Das Initscript findet sich auch im contrib Verzeichnis des Quelltextes als Datei tor.sh. Die Konfigurationdatei torrc wird im /etc/tor/ Verzeichnis angelegt.
Der Tor Proxy wird unter Linux am besten über das Initscript mit dem Tor User _tor gestartet.
Unter Windows kann Tor entweder im Paket mit Privoxy und dem grafischen Tor Kontrollprogramm Vidalia installiert werden oder alle Komponenten werden eigenständig installiert, was den Nutzer unabhängig von der Aktualität der Komponenten eines Gesamtpaketes macht.
Um Tor eigenständig zu installieren, wird der aktuelle Tor Installer tor-version-win32.exe und die entsprechende GnuPG Signaturdatei tor-version-win32.exe.asc heruntergeladen, die Signatur mit gpg --verify tor-version-win32.exe.asc mit GnuPG oder mit PGPmail überprüft und danach der Installer ausgeführt.
Im Fenster zur Komponentenauswahl alle Optionen aktivieren. Ist OpenSSL bereits installiert (s. o.), kann die OpenSSL Option deaktiviert werden.
Nach der Installation legt Tor im Benutzerprofil im Verzeichnis C:\Dokumente und Einstellungen\Benutzer\Anwendungsdaten\tor die Tor Konfigurationsdatei torrc an. Im gleichen Verzeichnis wird auch das Verzeichnis der aktiven Tor Nodes in der Datei cached-directory zwischengespeichert.
Unter Windows wird bei der Installation per Installer automatisch eine Verknüpfung im Autostartordner für den Tor Start erstellt, wenn die Option Run at startup aktiviert ist. Um Tor mit minimiertem Konsolefenster zu starten, ruft man die Eigenschaften der Autostartverknüpfung auf und aktiviert dort Minimiert starten.
Wird zusätzlich ein grafisches Tor Kontrollprogramm wie Vidalia verwendet, ist die Option Run at startup nicht nötig, da das Kontrollprogramm den Start von Tor übernimmt.
Um Tor unter Windows ab Windows 2000 als Dienst Tor Win32 Service einzurichten, damit Tor automatisch bei jedem Windowsstart im Hintergrund gestartet wird, muss die Tor Konfigurationsdatei torrc in das Tor Programmverzeichnis kopiert und als Administrator im Programmverzeichnis der Befehl tor -install ausgeführt werden. Um den Diensteintrag wieder zu entfernen – auch bei einer Deinstallation von Tor – muss in diesem Fall zuvor der Befehl tor -remove ausgeführt werden.



Für Privoxy sind keine Anpassungen nötig – es sei denn, man möchte Privoxy mit einer eigenen Privoxy Konfiguration betreiben, da die Privoxy Konfigurationsdatei des Komplettpakets bereits die Weiterleitung an Tor beinhaltet und Privoxy durch die Startanweisung in der Startdatei im Privoxy Programmverzeichnis gestartet wird, um die Konfigurationsdateien auszulesen.
In Zukunft werden über den Start der torstart.cmd, zu der man eine Verknüpfung in Startmenüprogramme für USB-Sticks anlegen kann, automatisch Privoxy, Vidalia und über Vidalia Tor gestartet. Alle Dateien werden im Tor und Vidalia Verzeichnis auf dem USB-Stick angelegt und nicht auf der Festplatte des Rechners.
Ein fertiges Komplettpaket für die Installation und Nutzung mit einem USB-Stick ist das TorBrowser Paket des Tor Projekts. Es enthält Tor, den Firefox Webbrowser mit der Torbutton Erweiterung, das Tor Kontrollprogramm Vidalia und den Webproxy Polipo (statt Privoxy). Auf der TorBrowser Seite gibt es auch eine Installationsanleitung mit Grafiken. Ein weiteres Komplettpaket mit einem Tor-Starter Programm bietet das PortableTor Projekt, zusätzliche Informationen dazu stehen im Portable Tor Artikel des Noreply Wiki.
Fertige USB-Sticks in verschiedenen Speichergrößen mit vorkonfiguriertem Tor und für Tor eingestelltem Firefox Browser bietet der FoeBuD e. V. mit dem PrivacyDongle USB-Stick, den man an Rechnern mit Windows, Linux oder Mac OS X nutzen kann.
Vidalia ist ein grafisches Kontrollprogramm für Tor. Da es das QT Toolkit verwendet, läuft Vidalia auf allen Betriebssystemen.
Mit Vidalia kann man Tor starten lassen und anhalten, die Tormeldungen im Torlog verfolgen, die Bandbreitennutzung beobachten und Tor entweder als lokalen Proxy oder Server konfigurieren.
Vidalia kann unter Windows und Mac OS entweder im Rahmen des Komplettpakets mit Tor und dem Privoxy Proxy oder separat installiert werden.



Die wichtigsten Einstellungen in Vidalia, um Tor über Vidalia zu nutzen:


Die Funktionen sind nicht ausschlaggebend für den Betrieb von Vidalia und Tor aber informativ.


Ein weiteres grafisches Tor Kontrollprogramm ist TorK für den *nix KDE Desktop.
TorK bietet wie Vidalia umfangreiche Möglichkeiten, Tor zu konfigurieren, Tor zu steuern und Informationen zum Tor Netzwerk abzurufen. Mit TorK ist es im Gegensatz zu Vidalia auch möglich, Tor für hinter Tor verborgene Internetdienste einzurichten.


In der torrc kann Tor detailliert konfiguriert und abgestimmt werden.
Es ist generell nicht nötig, Tor extra zu konfigurieren, denn die mit der Installation angelegte torrc enthält bereits die nötigen Mindesteinstellungen, um Tor sofort zu nutzen.
Unter Linux werden bei Verwendung des Initstartscripts einige Einstellungen bereits in dem Script festgelegt.
| SocksPort 9050 | Port, auf dem der Tor Proxy lauscht |
| SocksListenAddress 127.0.0.1 | IP-Adresse, auf dem der Tor lauscht, bzw. für die Anfragen entgegengenommen werden (hier: Nur für localhost) |
| ControlListenAddress 127.0.0.1 ControlPort 9051 | Adresse und Port, auf dem der Tor Proxy auf Kontroll- und Steuerbefehle von externen Kontrollprogrammen wie Vidalia oder TorK lauscht. Wird kein Kontrollprogramm benutzt, sollten beide Optionen mit # auskommentiert werden. Wird ein Kontrollprogramm verwendet, sollte eine der beiden folgenden Authentifikationmethoden angewendet werden. |
| HashedControlPassword hash_von_passwort oder CookieAuthentication 0|1 CookieAuthFile LW:\Verzeichnis\Cookie_Dateiname | Mit HashedControlPassword werden Verbindungen zum Kontrollport durch ein Kontrollprogramm nur zugelassen, wenn das Kontrollprogramm das richtige Passwort an Tor sendet. Der Hash des Passworts wird mit dem Kommando tor(.exe) --hash-password password im Tor Programmverzeichnis erzeugt. Mit CookieAuthentication und Wert 1 werden Verbindungen zum Kontrollport durch ein Kontrollprogramm nur zugelassen, wenn das Kontrollprogramm den Inhalt der Cookie Datei control_auth_cookie auslesen kann, die bei jedem Tor Start mit anderem Inhalt erneuert wird. Mit CookieAuthFile kann der Pfad zur und der Dateiname der Cookie Datei verändert werden. |
| DataDirectory /pfad (Linux) DataDirectory LW:\Verzeichnis (Windows) | Verzeichnis, in dem die zwischengespeicherten Informationen der Verzeichnisserver, die Cookie-Datei und bei Tor Onion Routern die Fingerprint-Datei und die Verzeichnisse für die Schlüssel abgespeichert werden. |
| Log info file /var/log/tor/tor.log (Linux) Log info file c:\tor\verzeichnis\tor.log (Windows) | Logdatei für Stufe Info und höher führen |
| SafeLogging 0|1 | Ersetzt in der Logdatei die Adressen der angeforderten Inhalte bzw. Server mit dem String [scrubbed]. |
| RunAsDaemon 1 | um den Tor Proxy Prozess im Hintergrund laufen zu lassen |
Die folgenden Node Optionen sind optional und müssen nicht unbedingt definiert werden, es sei denn, man wünscht eine Feineinstellung der zu verwendenden Nodes und ihres Zwecks, z. B. um Onion Router im eigenen Land von der Benutzung auszuschließen.
Für die Feineinstellung sind die Listen aktiver Tor Router bzw. Exit Nodes hilfreich. Man kann dazu auch die lokal gespeicherte Datei des Tor-Verzeichnisses heranziehen.
Mit or-name ist der Kurzname eines Tor Routers gemeint. Für den Tor Router anonymizer.ccc.de des Chaos Computer Clubs wäre z. B. or-name = chaoscomputerclub23.
| EntryNodes or1-name,or2-name… | Namen der Onion Router, die bevorzugt als erste Router in der Verbindungskette verwendet werden sollen |
| StrictEntryNodes 0|1 | 1 = Es werden nur die Onion Router als erste Router in der Verbindungskette verwendet, die mit EntryNodes festgelegt wurden |
| ExitNodes or1-name,or2-name… | Namen der Onion Router, die bevorzugt als letzte Router in der Verbindungskette verwendet werden sollen |
| StrictExitNodes 0|1 | 1 = Es werden nur die Onion Router als letzte Router in der Verbindungskette verwendet, die mit ExitNodes festgelegt wurden |
| ExcludeNodes or1-name,or2-name… | Namen der Onion Router, die überhaupt nicht innerhalb der Verbindungskette verwendet werden sollen |
| RendNodes or1-name,or2-name… | Namen der Onion Router, die bevorzugt als Rendezvous Punkte in der Verbindungskette verwendet werden sollen |
| RendExcludeNodes or1-name,or2-name | Namen der Onion Router, die nicht als Rendezvous Ponts verwendet werden sollen. |
Die folgenden Optionen dienen dazu, Tor trotz eines Zwangs-Proxys oder einer Zwangs-Firewall (des Internetproviders, Arbeitgebers oder Staats) benutzen zu können.
| ReachableAddresses accept *:Port1,accept *:PortN | Angabe der Ports, auf die eine Firewall zu allen IP-Adressen Verbindungen nach außen zulässt. Tor nimmt dann auch nur Verbindungen zu den Onion Routern auf, die auf den hier angegebenen Ports lauschen. Mit reject *:Port und reject *:* am Ende der Aufzählung können Ports ausgeschlossen werden. Syntax entpricht der ExitPolicy für Tor Router. |
| Http[s]Proxy host[:port] | Tor sendet alle Anfragen über den HTTP oder HTTPS Proxy mit der Adresse host und dem Port port. |
| Http[s]ProxyAuthenticator username:password | Username und Passwort, die für die Authentifizierung beim Zwangsproxy nötig sind. |
| KeepalivePeriod n Sekunden | Sende alle n Sekunden ein keepalive Paket, um den Proxy davon abzuhalten, die Verbindung verfallen zu lassen. |
Die folgenden Optionen beeinflussen die Tor Verbindungen und benutzten Tor Exit Router für bestimmte Zielrechner und Zielports.
Da hiermit die zufällige Auswahl von Nodes eingeschränkt wird, kann die Verwendung der Optionen auch zu einer Beschränkung der Anonymisierung beitragen.
| LongLivedPorts Port1, Port2, … | Liste von Ports für Dienste mit langlebigen Verbindungen wie Jabber-Chats, IRC, FTP- oder SSH-Sitzungen, für die Tor Nodes mit einer hohen Erreichbarkeit bzw. guten Laufzeit auswählt. Ohne Angabe der List wird standardmäßig 21, 22, 706, 1863, 5050, 5190, 5222, 5223, 6667, 8300, 8888 verwendet. |
| MapAddress Adresse Adresse.TorExitNodeNick.exit | Für Verbindung zu einem Zielrechner wird immer ein bestimmter Tor Exit Node verwendet. Zur Angabe des Exit Nodes wird dessen Nickname benutzt. Beispiel: MapAddress hp.kairaven.de hp.kairaven.de.onionizer.exit Zu hp.akiraven.de wird immer der Tor Exit Netzknoten verwendet, der sich hinter dem Nicknamen onionizer verbirgt. |
| TrackHostExits host,.domain,... | Tor speichert die Angaben zum verwendeten Tor Exit Node bei Verbindungen zu den hier aufgeführten Zielrechnern oder -domains und verwendet bei zukünftigen Verbindungen immer den gleichen Exit Node, um das Verfallen eines Authentifizierungs-Cookies zu verhindern, weil der ständige Wechsel der Exit Nodes eine dauernde Änderung der IP-/Host-Adresse bedingt. |
| TrackHostExitsExpire n Sekunden | Die feste Zuordnung zwischen Exit Node und Zielrechner/-domain wird nach n Sekunden aufgelöst, weil ansonsten die Zuordnung aufrecht erhalten wird, obwohl der Exit Node schon längst offline ist. D. h. nach Ablauf der Zeitdauer ist u. U. eine erneute Authentifizierung nötig. Ohne Angabe der Sekunden standardmäßig 1800 Sekunden (30 Minuten). |
Weitere Optionen finden sich in der der Tor Handbuchseite für die stabile Tor Version und Entwicklerversion.
Nach Einrichtung und Start von Privoxy, Tor und Webbrowser überprüft man am besten zuerst mit den Browser- und Servertests, ob wirklich die eigene IP-Adresse nicht mehr übertragen wird, bzw. welche Informationen an die Webserver übertragen werden.
Kann man die eigene IP-Adresse nicht selbst in Erfahrung bringen, ist die IP-Adresse zum Beispiel über den Current IP Check mit deaktivierten Proxys abzufragen.