/ Linux

STREISAND - Automatisierter Gateway-Server zum anonymen surfen

Es gibt in der heutigen Zeit gute Gründe, über VPN, einen Proxy oder über TOR ins Netz zu gehen. Sei es das öffentliche W-Lan im Lieblingscafé oder aber wesentlich relevanter, ihr befindet euch in einem Land, in dem kein freies Internet vorhanden ist bzw. gewisse Inhalte blockiert werden.
Nicht jeder Mensch kann oder möchte sich damit herumschlagen, beispielsweise einen OpenVPN-Server oder Proxy-Server einzurichten. Oft fehlt auch einfach das technische Verständnis bzw. Kenntnis.

Streisand Übersicht

Streisand zeigt wie wundervoll OpenSource im Kampf gegen Unterdrückung und Zensur im Internet helfen kann. Mittels Streisand lassen sich in wenigen Minuten auf Wunsch unzählige Gateway-Server zum anonymen Zugriff einrichten, die euch folgende fertig konfigurierte Dinge bieten:

  • Passwortgeschützte Gateway-Seite mittels NGINX, erreichbar über SSL und Tor als Hidden service
  • Installation folgender Dienste: OpenSSH, OpenConnect / Cisco AnyConnect, OpenVPN, Shadowsocks, sslh, Stunnel, Tor, UFW, unattended-upgrades, WireGuard
  • Schritt-für-Schritt-Anleitungen zur Einrichtung der einzelnen Dienste
  • Sämtliche empfohlene Software wird gemirrored. Die Authentizität wird mittels Checksummen sichergestellt.
  • Alle genutzten Ports wurden so gewählt, dass Port-Blockierungen sich als schwierig erweisen. Als Beispiel verwendet OpenVPN Port 636, der auch von LDAP verwendet wird.

Eine deutlich umfangreichere Auflistung findet ihr in der Readme vom Projekt.

Die Installation ist zur Zeit leider noch mit Mehraufwand verbunden, was in Zukunft aber vereinfacht werden soll.
Der Normalfall sieht vor, dass von eurem Client aus mittels Ansible-Scripts ein neuer Server bei Amazon EC2, Azure, DigitalOcean, Google Compute Engine, Linode und Rackspace angelegt und automatisch eingerichtet wird. Es gibt aber auch die Möglichkeit lokal vorzugehen. Ich beschreibe im folgenden, wie ich vorgegangen bin.

Ausgangslage ist bei mir ein Cloud-Server von Hetzner. Voraussetzung ist - leider noch - ein Ubuntu 16.04-Image. Als erstes sorgt dafür, dass euer Server mittels DNS erreichbar ist, damit ihr später im Verlauf der Installation ein Let´s Encrypt-Zertifikat beantragen könnt.
Bevor wir mit der Installation beginnen, muss - sofern noch nicht vorhanden - mittels ssh-keygen ein SSH-Key erstellt werden. Übernimmt einfach die vorgeschlagenen Standard-Pfade.

Als erstes müssen wir nun ein ein paar benötigte Pakete installieren sowie das Projekt von Github clonen:

apt update
apt-get install git python-pip
git clone https://github.com/StreisandEffect/streisand.git && cd streisand

Mittels folgenden Befehl wird der Installer für Ansible gestartet. Dieser prüft zunächst auf fehlende Pakete und wird euch diese auflisten. Installiert diese wie angegeben.

./util/venv-dependencies.sh ./venv

Anschließend ruft ihr den Befehl erneut auf um die Installation durchzuführen. Ist die Installation durchgelaufen aktiviert ihr mit folgendem Befehl die installierten Ansible-Pakete:

source ./venv/bin/activate

Ein Ausführen von ./streisand startet nun die Installation. Wählt im Installer nun den Punkt 7. localhost (Advanced) aus und bestätigt im weiteren Verlauf die Warnung, dass ggf. Konfigurationen überschrieben werden können.

Wenn ihr gefragt werdet, ob ihr Änderungen an den Standard-Einstellungen vornehmen möchtet, widersprecht ihr mit Eingabe von no.

Ebenfalls werdet ihr im Verlauf der Installation nach Hostnamen des Servers und eurer E-Mail-Adresse gefragt. Beides ist lediglich von Bedeutung, sofern ihr Let's Encrypt nutzen wollt - was sich allerdings gerade bei solch einem Anwendungsfall empfiehlt.

Informationen zum Streisand Zugang

Die Installation wird mit einer Fehlermeldung erfolgreich beendet werden, was daran liegt, dass der Installer versucht euch die HTML-Datei mit dem Zugangsdaten anzuzeigen.
Kopiert euch von eurem System den Ordner generated-docs herunter. Dieser enthält Informationen zur Firewall und die erwähnten Zugangsdaten.

Streisand ist nun eingerichtet und bereit zur Benutzung. :)

Sofern jemand in der anfangs beschriebenen Situation ist und solch eine Installation benötigt, schreibt mir eine E-Mail und ich helfe gerne weiter!