Configure anonymous Internet browsing on Fedora Linux with tor and privoxy

The intention of this config is to provide simple to follow steps on how to configure anonymous Internet browsing on Fedora Linux using privoxy and tor. Both services tor and privoxy are standalone services where tor provides anonymity using onion routing techniques and privoxy is a proxy server with content filtering and advertisement blocking.

Let’s start by installation of both services:

# yum install privoxy tor

After the install start tor:

# service tor start
Redirecting to /bin/systemctl start  tor.service

To persistent startup of tor after the reboot run:

# systemctl enable tor
ln -s '/usr/lib/systemd/system/tor.service' '/etc/systemd/system/multi-user.target.wants/tor.service'

Make sure that tor has started properly:

# service tor status
Redirecting to /bin/systemctl status  tor.service
tor.service - Anonymizing overlay network for TCP
   Loaded: loaded (/usr/lib/systemd/system/tor.service; disabled)
   Active: active (running) since Fri 2015-04-10 06:04:03 AEST; 21s ago
 Main PID: 13717 (tor)
   CGroup: /system.slice/tor.service
           └─13717 /usr/bin/tor --runasdaemon 0 --defaults-torrc /usr/share/tor/defaults-torrc -f /etc/tor/torrc

Apr 10 06:04:18 localhost.localdomain Tor[13717]: Bootstrapped 55%: Loading relay descriptors
Apr 10 06:04:19 localhost.localdomain Tor[13717]: Bootstrapped 60%: Loading relay descriptors
Apr 10 06:04:19 localhost.localdomain Tor[13717]: Bootstrapped 65%: Loading relay descriptors
Apr 10 06:04:19 localhost.localdomain Tor[13717]: Bootstrapped 70%: Loading relay descriptors
Apr 10 06:04:19 localhost.localdomain Tor[13717]: Bootstrapped 75%: Loading relay descriptors
Apr 10 06:04:20 localhost.localdomain Tor[13717]: We now have enough directory information to build circuits.
Apr 10 06:04:20 localhost.localdomain Tor[13717]: Bootstrapped 80%: Connecting to the Tor network
Apr 10 06:04:20 localhost.localdomain Tor[13717]: Bootstrapped 90%: Establishing a Tor circuit
Apr 10 06:04:22 localhost.localdomain Tor[13717]: Tor has successfully opened a circuit. Looks like client functionality is working.
Apr 10 06:04:22 localhost.localdomain Tor[13717]: Bootstrapped 100%: Done

Next, edit /etc/privoxy/config and uncomment line:

forward-socks5   /               127.0.0.1:9050 .

Start privoxy proxy server:

# service privoxy start
Redirecting to /bin/systemctl start  privoxy.service

Enable privoxy to start after reboot:

# systemctl enable privoxy
ln -s '/usr/lib/systemd/system/privoxy.service' '/etc/systemd/system/multi-user.target.wants/privoxy.service'

At this point privoxy should be listening on port 8118:

# netstat -ant | grep 8118
tcp        0      0 127.0.0.1:8118          0.0.0.0:*               LISTEN

Next, use wget to confirm the entire tor and privoxy privacy stack by extracting our external IP address:

$ export http_proxy="http://localhost:8118"
$ wget -q -O out http://www.ipchicken.com/; grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' out
85.214.11.209

If the above output shows IP address which was not assigned to you by your Internet provider you have correctly configured both tor and privoxy. All what remains is to configure your browser to use proxy:

HTTP Proxy: localhost
Port: 8118

to start browsing anonymously.