Installing Tor on FreeBSD 11
Tor is a piece of free software and an open network that enables anonymous communication. Combined, these two components help defend against various forms of traffic analysis and network surveillance. Trying to re-explain Tor in a comprehensive way is outside the scope of this post, but please read about it via the literature provided by the project site and The Electronic Frontier Foundation (EFF) before installing.
Installation
The first step toward installing Tor on FreeBSD is deciding whether you want to install the precompiled package with pkg
, or you want to compile it yourself from the FreeBSD Ports Collection. The tradeoffs between these two approaches are well-explained within the FreeBSD Handbook. I chose the package because customizing the installation configuration beyond the defaults didn’t seem necessary.
With all of that said, from inside a root
shell install the Tor package with:
# pkg install tor
Configuration
From there, copy the sample Tor configuration file into its default location and open it inside your editor:
# cp /usr/local/etc/tor/torrc.sample /usr/local/etc/tor/torrc
# vim /usr/local/etc/tor/torrc
Once inside the file, there are three settings that we want to make explicit. All should be commented out by default (SOCKSPort
,Log
, and Log
again), so we simply need to uncomment them. Below is a diff
of the changes between the sample and our desired configuration file:
18c18
< SOCKSPort 9050
---
> #SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections.
38c38
< Log notice file /var/log/tor/notices.log
---
> #Log notice file /var/log/tor/notices.log
42c42
< Log notice syslog
---
> #Log notice syslog
The SOCKSPort
setting ensures that we’re binding Tor to 127.0.0.1
on its default port of 9050
. The two Log
settings ensure that notice
level log messages are written to a specific log file, as well as syslog
.
Now, we can launch Tor using the tor
command to see if things are working properly:
% tor
[notice] Tor v0.2.8.9 running on FreeBSD with Libevent 2.0.22-stable, OpenSSL 1.0.2j-freebsd and Zlib 1.2.8.
[notice] Tor cant help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
[notice] Read configuration file "/usr/local/etc/tor/torrc".
[notice] Opening Socks listener on 127.0.0.1:9050
[notice] Parsing GEOIP IPv4 file /usr/local/share/tor/geoip.
[notice] Parsing GEOIP IPv6 file /usr/local/share/tor/geoip6.
[notice] Bootstrapped 0%: Starting
[notice] Bootstrapped 80%: Connecting to the Tor network
[notice] Bootstrapped 85%: Finishing handshake with first hop
[notice] Bootstrapped 90%: Establishing a Tor circuit
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
Once satisfied, CTRL+C
the process so that control is returned to your shell.
Lastly, let’s enable the Tor service so that it starts on its own after the system boots. To achieve that, all we have to do is ensure that /etc/rc.conf
contains the following line:
tor_enable="YES"
Afterwards, launch the Tor service through the service manager if you want it running prior to the next boot cycle:
# service tor start
That’s it. You should now have a fully functional installation of Tor running on FreeBSD.