Internet censorship is an unfortunate reality. There are dozens of countries around the world that restrict access to torrents, pornography, political media, and social media. But just because there are powerful governments fighting against Internet freedom doesn’t mean that you can’t fight back. Streisand, a script created by a programmer named Joshua Lund, gives you the tools you need to fight against Internet censorship.
Who Is Josh Lund?
I got in touch with Lund after hearing about Streisand to learn more about who was behind this great tool, and I found out that he’s been a privacy and security enthusiast since he was a beginning programmer; one of his first programs was a simple Caesar cipher. He continued through high school, when he organized a PGP key-signing party that was “just three of us in the computer lab fighting against PGP’s awkward interface in a quest to join the fabled web of trust.”
Since then, however, he’s done more work in the field, including publishing a detailed comparison of secure mobile messaging apps earlier this year, much like our own comparison of messaging apps after Facebook’s acquisition of WhatsApp.
Lund is also involved in Open Whisper Systems, a group that produces open-source messaging and calling apps that provide encrypted communication and storage. A co-worker at Whisper inspired Lund to start work on Streisand after his tweets about the censorship of Twitter in Turkey. That really got him thinking: “it forced me to think about the fact that people in China and Iran had already been dealing with this for years.”
Though he had been running Tor relays and working on OpenVPN projects, Lund decided that it was time to take a step further. Streisand was born.
What Is Streisand?
In short, Streisand is a script that automates much of the setup process of creating an anti-censorship server. It uses a number of technologies that allow users in censored countries to securely connect with the outside world, to use social media, read and contribute to political discussions, or access torrents. (Wondering why it’s called Streisand? Because of the Streisand effect: when someone attempts to censor, hide, or remove something from the Internet, they inevitably draw more attention to it.)
The script sets up a new server on one of four providers (Amazon, DigitalOcean, Linode, or Rackspace) running L2TP/IPsec, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, and a Tor bridge; it also generates a simple HTML file that contains instructions on how to access the server that can be given to friends, family, or other activists. Lund choose these technologies for the sake of redundancy; “I love the idea of someone sitting in a coffee shop, not being able to connect to L2TP/IPsec, and realizing that they have five other connection methods available, all with full documentation.”
In addition to ensuring the ability to connect, the use of these different methods ensures that Streisand will be able to create a server that will get around the censorship efforts of almost any country. Shadowsocks, for example, was developed almost entirely by Chinese developers to get around the Great Firewall of China. In addition to Shadowsocks, three other connection methods are known to work in China and Iran.
Those aren’t the only countries in which Streisand has helped people escape Internet censorship, though. Lund has received thank-you notes from all over the world, including Iran, Israel, Romania, Uruguay, Austria, and the United States. Although there’s no tracking built into Streisand, and no central server to monitor connections, it’s clear that the script is in widespread use in all corners of the globe.
In creating Streisand, one of Lund’s main priorities was ease of use. Before Streisand, “setting up even a subset of these services used to require quite a bit of expertise about Linux system administration, and an enormous amount of patience.” Now, however, users can set up the connections in about fifteen minutes, even if they have little command-line experience.
And to ensure that the documentation on how to connect to the servers was easily understandable, Lund recruited friends without any VPN software experience to see if they could use the instructions to get up and running. The experiment was a success: all of them were able to connect to at least one of the services on their first try.
If you’re interested in setting up Streisand to get around censorship in your own country, to help others escape the oppression of censorship, or just to have a solid secure server, you can head over to GitHub to get the necessary instructions in Streisand’s readme file.
To get the server up and running, you’ll need a BSD, Linux, or OS X system, as well as a package installation program, like Homebrew. The instructions take you through the necessary package installations, and when you’re done, you can use Git, a piece of version control software, to clone the Streisand repository and run the script.
After that, all you need to do is follow the prompts to choose your server provider, the region for the server, and its name; you’ll also need to provide some API information. When you’re done, you’ll end up with an HTML file ready for distribution to anyone who wants access to the server.
Although having some experience with the command line and VPN software will help the setup process, the whole thing has been designed to be as easy as possible, and the vast majority of the setup is automated.
What Does the Future Hold?
While a number of great features have already been added to the original version of Streisand by the community, Lund hopes that the project will continue to advance. High on his list is getting the instructions translated into languages other than English, as there are “probably people who could really use Streisand who might not be able to follow the instructions right now.” With Streisand reaching so many countries, he’s probably right.
Also in the works is additional support for more cloud providers, like Microsoft Azure and Google Compute Engine. A new Streisand pip package may also be created, making the setup of all dependencies significantly easier. Users have been integral to the process of improving and growing Streisand, and it’s easy to see just how many people are interested by looking at this thread on Hacker News.
Fortunately, Lund says that he’s committed to the Streisand project for the long term, so you can expect to continue to see it to grow.
Internet censorship and surveillance are wide-reaching issues that affect all of us, even if we don’t live in a place like Turkey or Iran. And having the proper tools to ensure online anonymity and restriction-free access to the internet is something that we can all do to help make a difference.
For instructions on how to download and use Streisand, see the Streisand readme file on GitHub. To learn more about the project, check out this post on Josh’s blog. And to learn more about Josh Lund, check out his website, MissingM, or follow him on Twitter.