Situation: I'm in the EU, living under its Big State ethos and enduring its General Data Protection Regulation (GDPR). Web presences with an EU market have largely complied in some fashion, but many without have simply denied access to requests appearing to originate in the EU. I wanted to read an article on a site in the second category.You'll need tor and a proxy. I use privoxy.

## Update and Install:

apt update && apt upgrade -y
apt install tor tor-geoipdb privoxy

## Configure:

# Edit /etc/privoxy/config adding the following:</

forward-socks5t / 127.0.0.1:9050 . #required
debug 9 #optional

* This tells privoxy to listen on local port 9050 (127.0.0.1:9050), and all urls (/) are to be sent via socks5 gateway directly to the web (.). Debug is the verbosity of output. I find 9 useful to get some header info without being overwhelmed.

# Edit /etc/tor/torrc adding the following:

ExitNodes {us} #required for geo selecting exit nodes

* Can also provide a list like {us,ch}

#NB. Under most Debian Linux distributions both tor and privoxy will be setup as system services, causing them to autostart. After modifying the config files ensure you've restarted them. I'd advise you disable them both - via your system management - for basic use, and start them both manually when needed.  Why arbitrarily run web services eh?

# Disable services the systemd way:

systemctl disable tor.service privoxy.service

Okay! Let's launch Firefox and try it out. Navigate to FF's preferences, and change the proxy to manual configuration with 'localhost' for host, and '8118' for port. Set this as proxy for all protocols, and ensure SOCKSv5 is selected.

Now try navigating to a site which wants a geographically US-based request!

Further Tidbits:

If you live in the west, the result of setting replacing the 'us' in the ExitNodes directive with 'ch' and doing a little Googling (eg. Tiananmen square) might be eye opening.

Finally, as I really just play with Tor, i use the following invocation (via script) to keep output contained, and help me remember when they're running:

tor &
privoxy --no-daemon /etc/privoxy/config

* this forks tor, but keeps the current tty for output. Then calls privoxy in foreground with a specified config file. Both tor and privoxy will write to the same tty, and killing the session kills both processes!

It should also be noted that I'm calling this an abuse because it to some extent handicaps Tor. Despite the typically CS-like winging over its name, the Tor project is awesome, and I agree wholeheartedly with their constant hammering of the open-security ethos of "Tools can't help you if you don't help yourself, and that starts by using the tool correctly." Reducing the number of potential circuits by enforcing a geographical requirement on the exit node MAY adversely effect the security of an operation, however circumventing GDPR for legal, personal pleasure isn't one of them.

# Reads: 2784