Here are steps I took to install tinyproxy for linux, a very light HTTP proxy with as little as 2MB memory footprint. It was intended for use by Iranian protesters, but I believe my twitter contacts either ignored me (the server available to me wasn't terribly fast), or they were not who they said they were, probably resulting in my IP finding its way to the ban list. I hope these steps are useful to someone else. 1. Download & install tinyproxy On Ubuntu/Debian, you can do this with the command "sudo apt-get install tinyproxy" or use the Synaptic package manager in Ubuntu. Other flavors of linux may have tinyproxy available via their own package system (rpm, yum), or you can download the source here: https://www.banu.com/tinyproxy/download/ 2. Configure tinyproxy Use a text editor (e.g. nano, vi) change these lines in the tinyproxy config file. /etc/tinyproxy/tinyproxy.conf Code: # Change loglevel to connect, or even Warning to limit log traffic LogLevel Connect # Port to listen on. Select a random 4-digit number. Well-known ports are being filtered. Port 7562 # Filter based on URLs rather than domains. FilterURLs On # Comment out any other Allow statements, replace with these below Allow 127.0.0.1 # The IP below should should be your computer's external IP Allow x.x.x.x # Allow these Iranian IPs. IP list from http://bit.ly/10f1ai Allow 184.108.40.206/17 Allow 220.127.116.11/19 Allow 18.104.22.168/19 Allow 22.214.171.124/17 Allow 126.96.36.199/18 Allow 188.8.131.52/18 Allow 184.108.40.206/19 Allow 220.127.116.11/19 Allow 18.104.22.168/20 Allow 22.214.171.124/15 Allow 126.96.36.199/20 Allow 188.8.131.52/20 Allow 184.108.40.206/20 Allow 220.127.116.11/19 Allow 18.104.22.168/19 Allow 22.214.171.124/19 Allow 126.96.36.199/17 Allow 188.8.131.52/19 Allow 184.108.40.206/21 Allow 220.127.116.11/18 Allow 18.104.22.168/20 Allow 22.214.171.124/20 Allow 126.96.36.199/20 Allow 188.8.131.52/20 Allow 184.108.40.206/16 Allow 220.127.116.11/20 Allow 18.104.22.168/20 Allow 22.214.171.124/20 Allow 126.96.36.199/17 Allow 188.8.131.52/20 Allow 184.108.40.206/20 Allow 220.127.116.11/20 Allow 18.104.22.168/20 Allow 22.214.171.124/20 Allow 126.96.36.199/20 Allow 188.8.131.52/20 Allow 184.108.40.206/18 Allow 220.127.116.11/19 Allow 18.104.22.168/18 Allow 22.214.171.124/18 Allow 126.96.36.199/18 Allow 188.8.131.52/18 Allow 184.108.40.206/18 Allow 220.127.116.11/17 Allow 18.104.22.168/16 Allow 22.214.171.124/18 Allow 126.96.36.199/19 Allow 188.8.131.52/16 Allow 184.108.40.206/19 Allow 220.127.116.11/19 Allow 18.104.22.168/18 Allow 22.214.171.124/17 Allow 126.96.36.199/20 Allow 188.8.131.52/18 Allow 184.108.40.206/15 Allow 220.127.116.11/19 Allow 18.104.22.168/19 Allow 22.214.171.124/23 Allow 126.96.36.199/24 Allow 188.8.131.52/24 Allow 184.108.40.206/24 Allow 220.127.116.11/24 Allow 18.104.22.168/24 Allow 22.214.171.124/21 Allow 126.96.36.199/18 Allow 188.8.131.52/20 Allow 184.108.40.206/20 Allow 220.127.116.11/19 Allow 18.104.22.168/16 Allow 22.214.171.124/21 Allow 126.96.36.199/18 Allow 188.8.131.52/20 Allow 184.108.40.206/20 Allow 220.127.116.11/20 Allow 18.104.22.168/19 Allow 22.214.171.124/15 Allow 126.96.36.199/17 Allow 188.8.131.52/21 Allow 184.108.40.206/18 Allow 220.127.116.11/16 Allow 18.104.22.168/18 Allow 22.214.171.124/18 Allow 126.96.36.199/18 Allow 188.8.131.52/18 Allow 184.108.40.206/21 Allow 220.127.116.11/21 Allow 18.104.22.168/16 Allow 22.214.171.124/21 Allow 126.96.36.199/19 Allow 188.8.131.52/19 Allow 184.108.40.206/17 Allow 220.127.116.11/15 Allow 18.104.22.168/23 Allow 22.214.171.124/16 Allow 126.96.36.199/19 Allow 188.8.131.52/19 Allow 184.108.40.206/19 Allow 220.127.116.11/19 Allow 18.104.22.168/19 Allow 22.214.171.124/19 Allow 126.96.36.199/19 Allow 188.8.131.52/19 Allow 184.108.40.206/19 Allow 220.127.116.11/18 Allow 18.104.22.168/18 Allow 22.214.171.124/18 Allow 126.96.36.199/19 Allow 188.8.131.52/19 Allow 184.108.40.206/20 Allow 220.127.116.11/20 Allow 18.104.22.168/20 Allow 22.214.171.124/20 Allow 126.96.36.199/20 Allow 188.8.131.52/20 Allow 184.108.40.206/20 Allow 220.127.116.11/19 Allow 18.104.22.168/20 Allow 22.214.171.124/15 Now create/edit the filter file, which will contain addresses to block for the proxy. This file may be blank, but I just added a well-known useless address for demonstration. /etc/tinyproxy/tinyproxy.conf Code: goatse.cx 3. Set up a cron job to restart tinyproxy daily. This is can help tinyproxy clear any memory leaks if it sees lots of heavy load. Note that I had to use separate start/stop jobs, since the restart script wouldn't restart the proxy reliably. Add these lines to /etc/tinyproxy/tinyproxy.conf Code: 0 15 * * * root /etc/init.d/tinyproxy stop 1 15 * * * root /etc/init.d/tinyproxy start You will want to change the hour value (15 in the example above, i.e. 3pm) to something that is sympathetic to Tehran's timezone. I.e. don't restart the proxy at 12pm Tehran time. 4. Restart tinyproxy to make the new settings take effect. Do these 2 commands one after another at the shell prompt: Code: sudo /etc/init.d/tinyproxy stop sudo /etc/init.d/tinyproxy start 5. Pass only your new proxy address to where it's needed. The address for your new proxy to pass along will be... http://x.x.x.x:7562 ...where x.x.x.x is your computer's external IP address (or your router's external IP), and 7562 is the random 4-digit number you selected for the proxy port. Please note that if you computer/server resides behind a firewall router of some sort, you will need to configure that router to forward the port 7562 to your computer inside the LAN. If you want to test this proxy, add the external IP address from which you be browsing to the list in step #2 above (i.e. "Allow y.y.y.y") and then configure your browser to use IP address x.x.x.x, port 7562, for its proxy.