In diesem Tutorial werden wir Sie durch die Einrichtung von Obfsproxy mit einem hausgemachten OpenVPN-Server und einem Windows-PC führen. Auf diese Weise wird verhindert, dass Zensoren und Firewalls die Deep Packet Inspection verwenden, um festzustellen, ob Sie den Datenverkehr mithilfe von OpenVPN verschlüsseln.
In diesem Lernprogramm wird davon ausgegangen, dass Sie bereits einen funktionierenden OpenVPN-Server und einen Windows-Client auf einer Amazon Web Services EC2-Instanz eingerichtet haben. Lesen Sie in unserem vorherigen OpenVPN-Server-Tutorial nach, wie das geht.
Obfsproxy sollte verhindern, dass Ihr VPN in Ländern wie China von Zensoren blockiert wird. Wir haben bestätigt, dass es auch das VPN-Verbot für Netflix umgeht.
Bevor wir anfangen
Obfsproxy, kurz für Obfuscation Proxy, wurde von der Tor-Community adoptiert. In ihren Worten:
„Obfsproxy ist ein Tool, mit dem versucht wird, die Zensur zu umgehen, indem der Tor-Verkehr zwischen Client und Bridge transformiert wird. Auf diese Weise sehen Zensoren, die normalerweise den Verkehr zwischen dem Client und der Brücke überwachen, unschuldig aussehenden transformierten Verkehr anstelle des tatsächlichen Tor-Verkehrs. “
Obfsproxy ist jedoch tatsächlich unabhängig von Tor, sodass es auch zum Verschleiern von OpenVPN-Verkehr verwendet werden kann.
Damit Obfsproxy mit OpenVPN funktioniert, müssen wir es sowohl auf der Client- als auch auf der Serverseite konfigurieren. Einige VPN-Anbieter, einschließlich NordVPN und AirVPN, bieten vorkonfigurierte Server an, sodass Sie nur die Clientseite konfigurieren müssen. Dieses Tutorial erklärt beides.
Nachfolgend finden Sie eine Liste der benötigten Komponenten:
- Ein funktionsfähiger OpenVPN-Server auf einer Amazon Linux EC2-Instanz, ähnlich wie in unserem vorherigen Lernprogramm
- Die OpenVPN Connect GUI (clientseitige App)
- Kitt
- Python 2.7
- Microsoft C ++ Compiler für Python 2.7
- OpenSSL Light für Windows
- ProxySwitchy Sharp oder eine gleichwertige Proxy-Software
Clientseitige Obfsproxy-Konfiguration unter Windows
Wir beginnen mit der clientseitigen Konfiguration, da einige Benutzer die serverseitige Einrichtung nicht durchführen müssen, wenn ihr VPN-Anbieter bereits vorkonfigurierte Server anbietet.
Vorbereitende Einrichtung
Zum Glück hat NordVPN Ihnen bereits die Möglichkeit gegeben, die meisten erforderlichen Abhängigkeiten in einer einzigen ZIP-Datei zu bündeln. Hier herunterladen.
Beginnen Sie mit der Installation von Python 2.7 im Standardverzeichnis mit den Standardeinstellungen. Obfsproxy ist ein Python-Programm, das Sie zur Installation benötigen. Wenn Sie eine neuere Version von Python haben, z. B. 3.3 oder 3.4, empfehlen wir, trotzdem 2.7 zu installieren. Sie finden die Installationsdatei im Ordner “Step 3” der NordVPN-Zip-Datei (die Ordner “Step 1” und “Step 2” werden übersprungen)..
Als nächstes müssen wir den Microsoft C ++ Compiler für Python 2.7 aus dem Step 4-Ordner installieren. Es gibt keinen solchen Compiler für spätere Versionen von Python. Möglicherweise können Sie mit MS Visual Studio oder dem Numby-Paket eine Problemumgehung finden, aber wir haben festgestellt, dass die Installation von Python 2.7 viel weniger mühsam ist.
Nachdem Sie den C ++ – Compiler mit den Standardeinstellungen und dem Verzeichnis installiert haben, fahren Sie mit dem Schritt 5-Ordner fort. Installieren Sie OpenSSL Light erneut mit allen Standardeinstellungen. Möglicherweise werden Sie nach der Installation zu einer Spende aufgefordert. Klicken Sie auf “Fertig stellen” und schließen Sie das Popup-Fenster, wenn Sie nicht spenden möchten.
Setzen Sie ein Lesezeichen für diese Seite, starten Sie Ihren Computer neu und öffnen Sie diese Seite erneut.
Obfsproxy- und OpenVPN-Setup
Sie haben jetzt alles, was Sie brauchen, um Obfsproxy auszuführen, aber wir müssen es noch konfigurieren, damit es mit OpenVPN verwendet werden kann. Zunächst ändern wir unsere vorhandenen .ovpn-Dateien im OpenVPN-Verzeichnis. Wenn Sie OpenVPN noch nicht eingerichtet haben, lesen Sie bitte unser vorheriges Tutorial. Wenn Sie OpenVPN im Standardverzeichnis installiert haben, finden Sie die Konfigurationsdateien unter C: / Programme / OpenVPN / config.
Suchen Sie Notepad oder einen anderen Texteditor, klicken Sie mit der rechten Maustaste darauf und wählen Sie “Als Administrator ausführen”. Öffnen Sie die Konfigurationsdatei, mit der Sie eine normale Verbindung zu Ihrem OpenVPN-Server herstellen. Klicken Sie auf Datei > Speichern unter und benennen Sie es unter einem anderen Namen, damit wir eine Kopie haben, mit der wir arbeiten können, ohne das Original zu beschädigen.
Die Konfigurationsdatei wird folgendermaßen geändert:
proto tcp-client
Remote 8080
Port 1194
dev tun1
geheime ovpn.key
Redirect-Gateway def1
ifconfig 10.4.0.2 10.4.0.1
Socken-Proxy-Wiederholung
socks-proxy 127.0.0.1 10194
Beachten Sie das Hinzufügen von zwei Zeilen am unteren Rand und einer Portnummer am Ende der Remote-Leitung. Ersetzen Sie durch die IP-Adresse Ihrer Amazon EC2-Instanz. Sofern Sie bei Amazon keine elastische IP-Adresse eingerichtet haben, ändert sich diese Adresse jedes Mal, wenn Sie Ihre Instanz stoppen und starten. Denken Sie also daran, sie bei Bedarf zu ändern. Auf der Remote-Leitung kann die Portnummer außerhalb des reservierten Portbereichs liegen. Wir verwenden 8080, da es mit fast allen Webservern kompatibel ist. Im OpenVPN-Wiki wird jedoch 21194 empfohlen. Denken Sie daran, dass alles, was Sie hier eingeben, mit dem übereinstimmen muss, was wir später auf der Serverseite konfigurieren.
Wenn Sie eine Verbindung zu einem vorkonfigurierten Server Ihres VPN-Anbieters herstellen, sollten die Konfigurationsdateien für Sie bereitgestellt werden (der Schritt 2-Ordner für NordVPN-Benutzer)..
Speichern Sie Ihre neue Konfigurationsdatei und achten Sie darauf, die alte nicht zu überschreiben. Stellen Sie außerdem sicher, dass Ihr Texteditor den Dateinamen nicht automatisch mit .txt anfügt. Es sollte eine .ovpn-Datei sein.
Nachdem OpenVPN konfiguriert ist, müssen wir Obfsproxy installieren und ausführen. Hier kommt Ihre neue Python-Installation ins Spiel. Geben Sie in der Windows-Suchleiste “Eingabeaufforderung” ein. Klicken Sie mit der rechten Maustaste auf die Anwendung “Eingabeaufforderung” und klicken Sie auf “Als Administrator ausführen”. Geben Sie im Terminal zeilenweise die folgenden Befehle ein: Drücken Sie nach jedem die Eingabetaste.
cd C: \ Python27 \ Scripts
pip install –upgrade pip
pip obfsproxy installieren
obfsproxy –log-min-severity = info obfs2 –shared-secret = socks 127.0.0.1:10194
Nach dem zweiten Befehl werden möglicherweise einige Fehler oder Warnungen angezeigt. Ignoriere sie jetzt.
Hier müssen Sie durch ein Passwort Ihrer Wahl ersetzen. Notieren Sie sich dieses Passwort oder merken Sie es sich, da Sie es später benötigen. Wenn Sie eine Verbindung zu vorkonfigurierten Servern herstellen, die von Ihrem VPN-Dienst bereitgestellt werden, wird dieser Befehl für Sie bereitgestellt.
Nach der letzten Zeile sollte die Eingabeaufforderung anzeigen, dass der obfsproxy-Verkehr abgehört wird (siehe Screenshot). Beachten Sie im Screenshot, dass ich beim ersten Versuch vergessen habe, mein eigenes Passwort einzugeben.
Sie müssen zum Skriptverzeichnis navigieren (erster Befehl), den Befehl Obfsproxy (letzter Befehl) eingeben und die Eingabeaufforderung geöffnet lassen, wenn Sie Obfsproxy verwenden möchten.
Proxy-Setup (optional)
Bearbeiten: Dieser Schritt ist nicht erforderlich, damit Obfsproxy funktioniert. Er ist jedoch erforderlich, wenn Sie Ihre Obfsproxy + VPN-Verbindung verwenden möchten, um Netflix und andere Streaming-Video-Sites von außerhalb der USA (oder in einem anderen Land, in dem sich Ihr VPN-Server befindet) anzusehen. Andernfalls wird Netflix auf die falsche Region eingestellt.
Das letzte, was wir auf der Client-Seite tun müssen, ist eine Proxy-Verbindung einzurichten. Dies ist für jede Anwendung unterschiedlich. Sie können es in den Windows-Interneteinstellungen einrichten, aber ich bevorzuge es, App für App zu tun. Bei nativen Apps, die das Internet verwenden, können Sie normalerweise irgendwo in den Einstellungen einen Proxy einrichten. Die Felder sind wie folgt:
- SOCKS-Host: 127.0.0.1
- Port: 8080 (oder was auch immer Sie in Ihrer OpenVPN-Konfigurationsdatei auf der Remote-Leitung einfügen)
- SOCKS Version 5 (SOCKS5)
In einem Browser lässt sich dies am einfachsten mit einer Proxy-Erweiterung einrichten. Wir zeigen Ihnen, wie Sie Proxy Switchy Sharp in Chrome verwenden.
Erstellen Sie in den ProxySwitchy-Einstellungen ein neues Profil. Geben Sie bei Auswahl von Manuelle Konfiguration die obigen Einstellungen wie unten abgebildet ein. Nennen Sie es, was Sie wollen. Wir werden dies erst aktivieren, wenn wir eine Verbindung zum Server hergestellt haben.
Obfsproxy-Serverkonfiguration auf Linux EC2-Instanz
Ihr PC kann nun eine Verbindung herstellen. Nun müssen wir den Server vorbereiten.
AWS-Sicherheitsgruppe
Bevor Sie obfsproxy auf dem Server installieren und ausführen, müssen Sie möglicherweise eine neue Regel zur Sicherheitsgruppe Ihres Servers hinzufügen, um sicherzustellen, dass die Firewall der EC2-Instanz den Datenverkehr nicht blockiert. Melden Sie sich dazu in Ihrem AWS-Konto an und klicken Sie auf EC2. Wechseln Sie unter Netzwerk und Sicherheit zu Sicherheitsgruppen.
Hier können Sie eine neue Sicherheitsgruppe erstellen und zu Ihrem Server hinzufügen oder eine vorhandene ändern. Klicken Sie mit der rechten Maustaste auf eine Regel und wählen Sie “Eingehende Regeln bearbeiten”. Wählen Sie unter Typ den gesamten TCP-Datenverkehr aus (Hinweis: Ignorieren Sie die benutzerdefinierte Regel im Screenshot, da wir dieses Lernprogramm seither aktualisiert haben), und legen Sie als Quelle “Meine IP” oder die IP der Geräte fest, mit denen Sie eine Verbindung herstellen möchten mit. Klicken Sie dann mit der rechten Maustaste und gehen Sie zu “Ausgehende Regeln bearbeiten”. Wählen Sie unter “Typ” einfach die Dropdown-Option für “Gesamter Datenverkehr” aus.
Wenn Sie eine neue Sicherheitsgruppe erstellt haben, klicken Sie in der linken Seitenleiste auf Instanzen, klicken Sie mit der rechten Maustaste auf Ihre VPN-Instanz, blättern Sie nach unten zu Netzwerk und klicken Sie auf Sicherheitsgruppen ändern. Überprüfen Sie Ihre neue Sicherheitsgruppe und klicken Sie auf Speichern.
Obfsproxy Server Setup
Verwenden Sie PuTTy, um über SSH eine Verbindung zu Ihrem Server herzustellen. Wenn Sie sich nicht mehr an die Vorgehensweise erinnern oder kein Profil gespeichert haben, lesen Sie bitte unser vorheriges Tutorial. Denken Sie daran, dass in der Amazon Linux AMI-Serververteilung der Benutzername “ec2-user” lautet. Führen Sie OpenVPN mit folgendem Befehl aus:
sudo service openvpn starten
Stellen Sie sicher, dass in Ihrer OpenVPN-Konfigurationsdatei auf dem Server (etc / openvpn / openvpn.conf) Port 1194 geöffnet ist, wie in unserem vorherigen Lernprogramm beschrieben.
Python sollte bereits installiert sein, wenn Sie die Linux 14.04-Serververteilung verwenden. Geben Sie im PuTTy-Terminal zeilenweise die folgenden Befehle ein und drücken Sie jeweils die Eingabetaste:
sudo yum installiere gcc
sudo pip obfsproxy installieren
obfsproxy –log-min-severity = info obfs2 –dest = 127.0.0.1: 1194 –shared-secret = server 0.0.0.0:8080
Für den ersten Befehl verwenden ältere Linux-Versionen möglicherweise “apt-get” anstelle von “yum”..
Denken Sie daran, im letzten Befehl dasselbe Kennwort zu verwenden, das Sie auf der Clientseite verwendet haben.
Auf diesem Terminal sollte eine ähnliche Meldung wie auf Ihrer Eingabeaufforderung angezeigt werden, die darauf hinweist, dass der Server den Port 8080 auf obfsproxy-Datenverkehr überwacht.
Verbindung über Obfsproxy
Sie sind bereit, eine Verbindung herzustellen. Wenn Obfsproxy sowohl auf Ihrem lokalen Computer (Eingabeaufforderung) als auch auf Ihrem Server (PuTTy) ausgeführt wird, führen Sie die OpenVPN-GUI aus. Rechtsklicke darauf und verbinde dich mit deiner neuen Konfiguration. Das OpenVPN-Symbol sollte grün werden und eine Benachrichtigung mit Ihrer zugewiesenen IP sollte angezeigt werden.
Wenn Sie Netflix oder andere geoblockte Inhalte anzeigen möchten, aktivieren Sie die Proxy-Einstellungen in Ihren Anwendungen. Klicken Sie für Proxy Switchy on Chrome auf das Symbol in der oberen rechten Ecke und wählen Sie das Profil aus, das Sie im optionalen Abschnitt oben erstellt haben. Sie können den Proxy auch in den Windows-Interneteinstellungen hinzufügen.
Herzliche Glückwünsche! Ihr OpenVPN-Verkehr ist jetzt dank Obfsproxy nicht mehr vom normalen HTTP-Verkehr zu unterscheiden.
Prozess automatisieren
Wie Sie vielleicht festgestellt haben, kann es etwas langweilig werden, obfsproxy jedes Mal auf dem Client auszuführen, wenn Sie es verwenden möchten. Um den Prozess zu automatisieren, hat ein Benutzer ein Windows-Installationsprogramm erstellt, mit dem Obfsproxy als Dienst ausgeführt wird, der beim Start gestartet wird. Sie können es hier herunterladen und Anweisungen finden.
“Disguise-glasses.jpg” von r. nial bradshaw lizenziert unter CC BY 2.0
ür diese Seite, falls Sie später darauf zurückkommen müssen.
Obfsproxy- und OpenVPN-Setup
Als nächstes müssen wir Obfsproxy und OpenVPN auf dem Windows-Client einrichten. Beginnen Sie damit, die OpenVPN Connect GUI zu installieren. Sie finden die Installationsdatei im Ordner “Step 6” der NordVPN-Zip-Datei. Installieren Sie es mit den Standardeinstellungen.
Als nächstes müssen wir Obfsproxy installieren. Gehen Sie zum Ordner “Step 7” und extrahieren Sie die Dateien in einen Ordner Ihrer Wahl. Öffnen Sie die Eingabeaufforderung und navigieren Sie zum Ordner, in dem Sie die Dateien extrahiert haben. Geben Sie den Befehl “python setup.py install” ein, um Obfsproxy zu installieren.
Als nächstes müssen wir die Konfigurationsdateien für Obfsproxy und OpenVPN erstellen. Gehen Sie zum Ordner “Step 8” und kopieren Sie die Dateien “obfsproxy.conf” und “openvpn.obfs.conf” in den Ordner “config” von OpenVPN.
Öffnen Sie nun die Datei “openvpn.obfs.conf” mit einem Texteditor und ändern Sie die IP-Adresse und den Port des OpenVPN-Servers entsprechend.
Proxy-Setup (optional)
Wenn Sie einen Proxy verwenden möchten, um auf das Internet zuzugreifen, müssen Sie ProxySwitchy Sharp oder eine ähnliche Proxy-Software installieren. Gehen Sie zum Ordner “Step 9” und installieren Sie ProxySwitchy Sharp mit den Standardeinstellungen.
Öffnen Sie nun die Einstellungen von ProxySwitchy Sharp und erstellen Sie einen neuen Proxy mit den folgenden Einstellungen:
– Name: Obfsproxy
– Proxy-Typ: SOCKS5
– Host: 127.0.0.1
– Port: 1050
Klicken Sie auf “Speichern” und aktivieren Sie den Proxy.
Obfsproxy-Serverkonfiguration auf Linux EC2-Instanz
Wenn Sie bereits einen funktionierenden OpenVPN-Server auf einer Amazon Linux EC2-Instanz eingerichtet haben, können Sie mit der Einrichtung des Obfsproxy-Servers fortfahren.