Kostenloser Wireguard VPN-Dienst unter AWS
Die Argumentation
Die Zunahme der Internet-Zensur durch autoritäre Regime erweitert die Blockade nützlicher Internet-Ressourcen und macht die Nutzung des WEB unmöglich. Dies verstößt im Wesentlichen gegen das in der Allgemeinen Erklärung der Menschenrechte verankerte Grundrecht auf Meinungs- und Meinungsfreiheit.
Artikel 19
Jeder hat das Recht auf Meinungs- und Meinungsfreiheit; Dieses Recht beinhaltet die Freiheit, Meinungen ohne Einmischung zu vertreten und Informationen und Ideen über alle Medien und unabhängig von Grenzen zu suchen, zu empfangen und weiterzugeben.
Im Folgenden finden Sie eine detaillierte Anleitung in 6 Schritten für Nicht-IT-Mitarbeiter zum Bereitstellen eines kostenlosen * VPN-Dienstes auf der Wireguard- Technologie in der Cloud-Infrastruktur von Amazon Web Services (AWS) unter Verwendung eines 12-monatigen kostenlosen Kontos auf einer von Ubuntu Server ausgeführten Instanz (virtuelle Maschine) 04/18 LTS.
Ich habe versucht, diese exemplarische Vorgehensweise für Menschen fern von der IT so freundlich wie möglich zu gestalten. Das einzige, was erforderlich ist, ist die Sorgfalt bei der Wiederholung der unten beschriebenen Schritte.
Hinweis
Stufen
- Registrieren Sie das AWS-Konto.
- Erstellen Sie eine AWS-Instanz.
- Stellen Sie eine Verbindung zur AWS-Instanz her.
- Konfigurieren Sie den Wireguard-Server.
- Konfigurieren Sie VPN-Clients.
- Überprüfen Sie die VPN-Verbindung.
Nützliche Links
Die Autoren
1. Registrieren Sie das AWS Free Account
Um ein AWS-Konto zu registrieren, müssen Sie eine gültige Telefonnummer und eine Bankkarte (Visa oder Mastercard) angeben. Ich empfehle die Verwendung von virtuellen Karten, die von Yandex.Money oder Qiwi Wallet kostenlos zur Verfügung gestellt werden.
AWS überprüft die Gültigkeit der Karte, indem 1 $ bei der Registrierung abgezogen und anschließend die Rückerstattung erfolgt.
1.1. Öffnen der AWS Management Console
Folgen Sie dem Link: https://aws.amazon.com/ , klicken Sie auf die Schaltfläche AWS-Konto erstellen .

1.2. AWS-Kontoerstellung
Geben Sie die Daten ein und klicken Sie auf die Schaltfläche Weiter .


Kartennummer, Ablaufdatum und Name des Karteninhabers.

1.5. Kontobestätigung
AWS überprüft Ihre Telefonnummer und belastet Ihre Bankkarte mit 1 USD. Dann sollten Sie einen 4-stelligen Code auf dem Computerbildschirm erhalten und einen Anruf von Amazon erhalten. Während eines Anrufs müssen Sie den 4-stelligen Code wählen, der auf dem Bildschirm angezeigt wird.

1.6. Auswählen eines AWS-Supportplans
Wählen Sie einen Basisplan (kostenlos).

Melden Sie sich bei AWS Management Console an

1.8. Auswählen des Speicherorts des Datencenters

1.8.1. Testen der Internetgeschwindigkeit
Ich habe Ihnen empfohlen, einen Geschwindigkeitstest zu den nächstgelegenen Rechenzentren unter https://speedtest.net/ durchzuführen und die beste Verbindung auszuwählen.
Das Folgende sind die Geschwindigkeitstestergebnisse von meinem Standort:
- Singapur

- Paris

- Frankfurt

- Stockholm

- London

Das Rechenzentrum in London zeigt das beste Geschwindigkeitsergebnis, daher wähle ich es aus, um fortzufahren.
2. Erstellen Sie eine AWS-Instanz
2.1 Erstellen Sie eine virtuelle Maschine (Instanz)
2.1.0 Befolgen Sie die Schritte zur Instanzerstellung
2.1.0.1. Gehen Sie zur Seite Instanzstart und wählen Sie EC-2-Dienst

2.1.0.2. Starten Sie einen virtuellen Server, der als Amazon EC-2-Instanz bezeichnet wird

2.1.0.3. Wählen Sie Amazon Machine Image (Betriebssystem) - den Ubuntu Server 18.04 LTS

2.1.1. Wählen Sie den Instanztyp
Der t2.micro
ist standardmäßig festgelegt und der richtige. Klicken Sie auf die Schaltfläche Weiter: Instanzdetails konfigurieren , um fortzufahren.

Deaktivieren Sie die automatische Zuweisung der öffentlichen IP, da Sie Ihrer Instanz eine statische zuweisen. Klicken Sie auf die Schaltfläche Weiter: Speicher hinzufügen.

2.1.3. Speicher hinzufügen
Geben Sie die Größe des Laufwerks an - die 16 GB reichen aus.
Klicken Sie auf Weiter: Tags hinzufügen.

Wenn Sie mehrere Instanzen haben, können Sie diese nach Tags gruppieren, um eine bessere Verwaltung zu ermöglichen. Diese Funktionalität ist jedoch überschüssig. Wir überspringen dies, indem wir auf die Schaltfläche Weiter: Sicherheitsgruppe konfigurieren klicken.

2.1.5. Ports öffnen
Konfigurieren Sie die Firewall, indem Sie offene Ports zuweisen. Der Satz offener Ports wird als "Sicherheitsgruppe" bezeichnet. Sie müssen eine neue "Sicherheitsgruppe" erstellen, ihr einen Namen, eine Beschreibung und einen UDP-Port geben (benutzerdefinierte UDP-Regel).
Geben Sie im Feld Portbereich eine Portnummer aus dem Bereich 49152 - 65535 der dynamischen Ports an . In meinem Fall wähle ich die 54321-Portnummer.
Klicken Sie auf die Schaltfläche Überprüfen und starten , um diesen Schritt abzuschließen.

2.1.6. Überprüfen Sie die Einstellungen für den Instanzstart
Überprüfen und überprüfen Sie alle Einstellungen für den Instanzstart. Wenn alles in Ordnung ist, klicken Sie auf die Schaltfläche Starten .

2.1.7. Zugriffsschlüssel erstellen
Erstellen oder fügen Sie im Dialogfeld einen vorhandenen SSH-Schlüssel hinzu, den Sie für die Remoteverbindung zu Ihrer Instanz verwenden.
Wählen Sie "Neues Schlüsselpaar erstellen", um einen neuen Schlüssel zu generieren. Geben Sie ihm einen Namen und klicken Sie auf die Schaltfläche Schlüsselpaar herunterladen, um den generierten Schlüssel auf das PC-Laufwerk herunterzuladen. Klicken Sie auf die Schaltfläche Instanzen starten.

2.1.7.1. Speichern Sie private Schlüssel (.pem)
Wenn Sie auf das Download-Schlüsselpaar klicken, speichern Sie den Schlüssel als PEM-Datei.
Zur besseren Verwaltung habe ich der Datei den Namen wireguard-awskey.pem zugewiesen.

2.1.8. Zusammenfassung des Instanzstarts
Als Nächstes sollte eine Meldung über den erfolgreichen Start der von Ihnen erstellten Instanz angezeigt werden. Sie können die Liste Ihrer Instanzen aufrufen, indem Sie auf die Schaltfläche Instanzen anzeigen klicken.

2.2. Erstellen einer externen IP-Adresse
2.2.1. Erstellen Sie eine externe IP
Als Nächstes wird eine externe IP-Adresse erstellt, mit der Sie eine Verbindung zum VPN-Server herstellen.
Suchen Sie die elastischen IPs in der Kategorie NETWORK & SECURITY des Navigationsbereichs. Klicken Sie auf die Schaltfläche Neue Adresse zuweisen.

2.2.2. Externes IP-Setup
Im nächsten Schritt müssen Sie den Amazon-Pool aktivieren (dies ist standardmäßig der Fall ) und auf die Schaltfläche Zuweisen klicken

2.2.3. IP-Adressübersicht
Das nächste Fenster zeigt eine externe IP-Adresse an, die vom Amazon-Pool zugewiesen wurde. Notieren Sie es, da Sie es für den Konfigurationsprozess und für die Einrichtung des VPN-Servers benötigen. In diesem Handbuch verwende ich als Beispiel die IP-Adresse 4.3.2.1 .
Wenn Sie diesen Schritt abgeschlossen haben, klicken Sie auf die Schaltfläche Schließen .

2.2.4. Liste der externen IP-Adressen
Als Nächstes sollten Sie eine Liste Ihrer öffentlichen IP-Adressen (Elastics IPs) erhalten.

2.2.5. Weisen Sie der Instanz eine externe IP zu
Wählen Sie die IP-Adresse aus der Liste (siehe 2.2.3) und klicken Sie mit der rechten Maustaste, um ein Dropdown-Menü aufzurufen.
Wählen Sie in diesem Menü die Adresse zuordnen, um der erstellten Instanz eine IP zuzuweisen.

2.2.6. Adresse mit Instanz verknüpfen
Wählen Sie im Dropdown-Menü die erstellte Instanz aus und klicken Sie auf die Schaltfläche Zuordnen.

2.2.7. Zusammenfassung der externen IP-Zuweisung
Sie sollten jetzt eine erstellte Instanz mit einer zugewiesenen öffentlichen IP-Adresse haben. Auf diese Weise können Sie eine Remote-Verbindung zur Instanz von außen (von Ihrem PC) über SSH herstellen.

3. Stellen Sie eine Verbindung zur AWS-Instanz her
SSH ist ein sicheres Protokoll zur Verwaltung von Remotecomputergeräten.
3.1. Stellen Sie über SSH eine Verbindung von einem Windows-PC her
Laden Sie einen Putty herunter und installieren Sie ihn, um eine Verbindung vom Windows-PC herzustellen.
3.1.1. Importieren Sie den privaten Schlüssel für Putty
3.1.1.1. Importieren Sie den AWS-Schlüssel in Putty
Starten Sie ein PuTTYgen-Dienstprogramm, um Ihren AWS-Schlüssel im PEM-Format mit einem für den Putty geeigneten PPK-Format abzugleichen.
Wählen Sie dazu im oberen Menü Conversions -> Import Key .

Wählen Sie als Nächstes den Schlüssel aus, mit dem Sie sich in 2.1.7.1 befasst haben
In meinem Fall ist es wireguard-awskey.pem .

3.1.1.3. Legen Sie die Schlüsselimportparameter fest
In diesem Schritt müssen Sie die Importparameter des Schlüssels angeben - den Schlüsselkommentar und die Schlüsselpassphrase . Sie benötigen diese bei jeder Verbindung. Außerdem schützt es den Schlüssel selbst mit einem Passwort vor unbefugtem Zugriff.
Sie können die Kennwortzuweisung überspringen. Dadurch wird Ihre Verbindung jedoch weniger sicher, falls der Schlüssel in die falschen Hände gerät.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Privaten Schlüssel speichern .

3.1.1.4. Speichern Sie den importierten PPK-Schlüssel
Sie können Ihren privaten Schlüssel im Dialogfeld "Datei speichern" in einem für Putty geeigneten .ppk
Format speichern.
Geben Sie den Schlüsselnamen an (in meinem Fall wireguard-awskey.ppk
) und klicken Sie auf die Schaltfläche Speichern .

3.1.2.1. Stellen Sie eine Verbindung her
Führen Sie das Putty-Programm aus, wählen Sie die Sitzungskategorie (sie ist standardmäßig geöffnet) und geben Sie im Feld Hostname die öffentliche IP-Adresse des Servers ein. Ich erinnere daran, dass Sie Ihre öffentliche IP-Adresse in Schritt 2.2.3 erhalten haben .
Geben Sie der Verbindung im Feld Gespeicherte Sitzung einen beliebigen Namen (für mich ist es wireguard-aws-london
). Klicken Sie auf die Schaltfläche Speichern .

3.1.2.2. Legen Sie eine automatische Benutzeranmeldung fest
Wählen Sie die Unterkategorie Daten aus der Kategorie Verbindung. Geben Sie den Ubuntu -Benutzernamen für die automatische Anmeldung in das Feld Benutzername für die automatische Anmeldung ein. ( Ubuntu ist der Standardinstanzbenutzer unter AWS mit Ubuntu).

3.1.2.3. Verwenden Sie einen privaten Schlüssel für eine SSH-Verbindung
Folgen Sie dem Pfad Verbindung -> SSH -> Auth- Unterkategorie und klicken Sie auf die Schaltfläche Durchsuchen , um die private Schlüsseldatei auszuwählen.

3.1.2.4. Öffnen Sie die private Schlüsseldatei
Geben Sie den Schlüssel an, den Sie zuvor in Schritt 3.1.1.4 - wireguard-awskey.ppk
importiert wireguard-awskey.ppk
, und klicken Sie auf die Schaltfläche Öffnen .

3.1.2.5. Speichern Sie die Änderungen und starten Sie eine SSH-Remoteverbindung
Klicken Sie im Fenster Sitzungskategorie des Putty-Konfigurationsfensters auf die Schaltfläche Speichern , um alle in ( 3.1.2.2 - 3.1.2.4 ) vorgenommenen Änderungen zu übernehmen.
Klicken Sie auf die Schaltfläche Öffnen , um die sofort einsatzbereite SSH-Remoteverbindung zu starten.

3.1.2.7. Legen Sie eine Vertrauensstellung zwischen Hosts fest
Bei der ersten Verbindung sollten Sie eine Warnung über das mangelnde Vertrauen zwischen zwei Computern (Hosts) erhalten. Das System fragt Sie, ob Sie dem Remote-Host vertrauen. Klicken Sie auf Ja , um den Remote-Host zur Vertrauensliste hinzuzufügen.

3.1.2.8. Geben Sie das Passwort ein, um den Schlüssel zu aktivieren
Geben Sie in einem Putty-Terminalfenster das in Schritt festgelegte Schlüsselkennwort ein
3.1.1.3 . Bei der Eingabe des Passworts wird keine Aktion auf dem Bildschirm angezeigt. Keine Sorge, wenn Sie einen Fehler machen, können Sie die Rücktaste verwenden.

3.1.2.9. Erfolgreiche Verbindung
Sobald Sie das richtige Passwort eingegeben haben, sollten Sie einen Willkommenstext erhalten. Es informiert Sie, dass das Remote-System bereit ist, Ihre Befehle auszuführen.

Unten finden Sie Anweisungen für eine skriptgesteuerte Installation und Verwaltung von Wireguard.
Ich behalte die neueste Version der Anweisung im Repository: https://github.com/isystem-io/wireguard-aws
4.1. Installieren Sie den Drahtschutz
Geben Sie die folgenden Befehle in das Putty-Terminal ein.
Sie können sie in die Zwischenablage kopieren und durch Drücken der rechten Maustaste in das Terminal einfügen.
4.1.1. Klonen Sie das Skript-Repository
Klonen Sie ein Wireguard-Installationsskript-Repository:
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws
4.1.2. Verzeichnis des Skript-Repositorys
Wechseln Sie in das Verzeichnis des geklonten Repositorys:
cd wireguard_aws
4.1.3 Initialisierungsskript
Führen Sie das Wireguard-Installationsskript unter den Rechten admin (Root-Benutzer) aus:
sudo ./initial.sh
Das Skript fordert Sie auf, die folgenden Daten für die Konfiguration von Wireguard anzugeben.
4.1.3.1. Verbindungsendpunkt einstellen (IP: Port)
Geben Sie die externe IP-Adresse (siehe 2.2.3 ) und den offenen Port (siehe 2.1.5 ) des Wireguard-Servers ein. Verwenden Sie das folgende Format IP: port , z. B. 4.3.2.1:54321
. Drücken Sie zur Bestätigung die Eingabetaste.
Enter the endpoint (external ip and port) in format[ipv4:port] (eg 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2. Stellen Sie die interne IP-Adresse ein
Geben Sie die IP-Adresse des Wireguard-Servers in ein sicheres VPN-Subnetz ein. Wenn Sie nicht wissen, was es ist, drücken Sie die Eingabetaste, um den Standardwert ( 10.50.0.1
) 10.50.0.1
.
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3. Geben Sie den DNS-Server an
Geben Sie die IP-Adresse des DNS-Servers ein oder drücken Sie die Eingabetaste, um den Standardwert 1.1.1.1
(Cloudflare Public DNS) festzulegen.
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):
4.1.3.4. Geben Sie die WAN-Schnittstelle an
Geben Sie den Namen der externen Netzwerkschnittstelle ein. Diese Schnittstelle erkennt die interne Netzwerkschnittstelle des VPN.
eth0
Eingabetaste, um die Standardeinstellung für AWS ( eth0
) eth0
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Geben Sie den Kundennamen an
Der Wireguard VPN-Server kann erst gestartet werden, wenn Sie mindestens einen Client hinzugefügt haben. Geben Sie einen VPN-Benutzernamen ein.
In meinem Fall habe ich den Namen Alex @ mobil eingegeben.
Enter VPN user name: Alex@mobile
Danach sollten Sie einen QR-Code einer hinzugefügten Client-Konfiguration erhalten. Dieser QR wendet die Benutzerkonfiguration auf den Wireguard Mobile Client unter Android oder iOS an.
Der Text der Konfigurationsdatei wird auch mit QR angezeigt. Sie benötigen im Falle einer manuellen Konfiguration von Clients wie unten beschrieben.

4.2. Neuen VPN-Benutzer hinzufügen
Um einen neuen Benutzer hinzuzufügen, müssen Sie das Skript add-client.sh
im Terminal add-client.sh
sudo ./add-client.sh
Das Skript fragt nach dem Benutzernamen:
Enter VPN user name:
Der Benutzername kann als Skriptparameter verwendet werden (in meinem Fall lautet der Benutzername Alex @ mobile):
sudo ./add-client.sh Alex@mobile
Die Ausführung des Skripts führt zur Erstellung der Client-Konfigurationsdatei im Client-Verzeichnis.
Client-Konfigurationsdatei: /etc/wireguard/clients/{ClientName}/{ClientName}.conf
.
Client-Verzeichnis:
/etc/wireguard/clients/{ClientName}
4.2.1. Benutzerkonfigurationsdatei
Führen Sie den Befehl cat aus, um den Inhalt der .conf
Datei für die manuelle Konfiguration des Clients .conf
.
sudo cat/etc/wireguard/clients/Alex@mobile/Alex@mobile.conf
Das Ergebnis der Befehlsausführung lautet wie folgt:
[Interface] PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit + jbzT5cshNUi8zlM = Address = 10.50.0.2/32 DNS = 1.1.1.1 [Peer] PublicKey = mLnd + mul15U0EP6jCH5MRhIAjsfKYuIU / j5ml8Z2SEk = PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc = AllowedIPs = 0.0.0.0/0, :: / 0 Endpoint = 4.3.2.1:54321
Beschreibung der Client-Konfigurationsdatei:
[Interface] PrivateKey = Client's private key Address = Client IP Address DNS = DNS used by the client [Peer] PublicKey = Public key server PresharedKey = Shared server and client key AllowedIPs = Allowed addresses for connection (all - 0.0.0.0/0, :: / 0) Endpoint = IP address and port for connection
4.2.2. Client-Konfiguration mit QR-Code
qrencode -t ansiutf8
Befehl qrencode -t ansiutf8
, um den QR einer erstellten Client-Konfiguration qrencode -t ansiutf8
. (In meinem Fall lautet der neue Kundenname Alex @ mobile).
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8
5.1. Android Mobile Client Setup
Laden Sie den Wireguard Mobile Client für Android aus dem offiziellen GooglePlay Store herunter .
Scannen Sie den QR-Code, um die Client-Konfiguration zu importieren (siehe 4.2.2 ) und weisen Sie ihr einen Namen zu.

Nach dem Importieren der Konfiguration können Sie den VPN-Tunnel aktivieren. Ein kleines Schlüsselsymbol im Android-System bestätigt die VPN-Verbindung.

5.2. Windows-Client-Setup
Laden Sie TunSafe herunter und installieren Sie es , einen Wireguard-Client für Windows.
5.2.1. Erstellen Sie eine lokale Textdatei, um die Konfiguration zu importieren
Erstellen Sie eine Dummy-Textdatei auf dem Desktop Ihres PCs.

5.2.2. Kopieren Sie die Konfigurationsdatei vom Server
Kopieren Sie den Inhalt der Konfigurationsdatei vom Server.
Kehren Sie dann zum Putty-Terminal zurück und zeigen Sie den Inhalt der Benutzerkonfigurationsdatei an (siehe 4.2.1 ).
Kopieren Sie den Konfigurationstext mit der rechten Maustaste in das Putty-Terminal.

5.2.3. Fügen Sie den Konfigurationstext in eine lokale Textdatei ein
Fügen Sie den Konfigurationstext aus der Zwischenablage in eine Dummy-Textdatei ein, die wir zuvor auf dem Desktop erstellt haben (siehe 5.2.1 ).

5.2.4. Speichern Sie die lokale Konfigurationsdatei
Speichern Sie die Textdatei im .conf- Format (in meinem Fall als london.conf
).

5.2.5. Lokale Konfigurationsdatei importieren
Importieren Sie die Konfigurationsdatei in das TunSafe-Programm.

5.2.6. Stellen Sie eine VPN-Verbindung her
Wählen Sie im TunSafe-Programm die importierte Konfigurationsdatei aus und klicken Sie auf die Schaltfläche Verbinden .

6. Überprüfen Sie die VPN-Verbindung
Verwenden Sie die Ressource https://2ip.ua/en/ , um die VPN-Tunnelverbindung zu überprüfen. Wenn die angezeigte IP-Adresse mit der in 2.2.3 angegebenen übereinstimmt , ist der VPN-Tunnel betriebsbereit .

In einem Linux-Terminal können Sie Ihre IP-Adresse überprüfen, indem Sie den folgenden Befehl ausführen:
curl http://zx2c4.com/ip