Wofür?
Mit der zunehmenden Zensur des Internets durch autoritäre Regime wird eine zunehmende Anzahl nützlicher Internetressourcen und -seiten blockiert. Einschließlich technischer Informationen.
Somit wird es unmöglich, das Internet vollständig zu nutzen, und das in der Allgemeinen Erklärung der Menschenrechte verankerte Grundrecht auf freie Meinungsäußerung wird verletzt.
§ 19
Jeder hat das Recht auf Meinungs- und Meinungsfreiheit; Dieses Recht umfasst die Freiheit, sich frei an seine Überzeugungen zu halten, und die Freiheit, Informationen und Ideen auf irgendeine Weise und unabhängig von Staatsgrenzen zu suchen, zu empfangen und zu verbreiten
In diesem Handbuch stellen wir in 6 Schritten unseren eigenen kostenlosen * VPN-Dienst basierend auf der Wireguard- Technologie in der Cloud-Infrastruktur von Amazon Web Services (AWS) unter Verwendung eines kostenlosen Kontos (für 12 Monate) auf einer Instanz (virtuelle Maschine) bereit , auf der Ubuntu Server 18.04 ausgeführt wird 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 Ausdauer bei der Wiederholung der unten beschriebenen Schritte.
Hinweis
Stufen
- AWS Free Account Registration
- Erstellen Sie eine AWS-Instanz
- Stellen Sie eine Verbindung zu einer AWS-Instanz her
- Wireguard konfigurieren
- VPN-Clients konfigurieren
- Überprüfen Sie die VPN-Installation
Nützliche Links
1. AWS-Kontoregistrierung
Um ein kostenloses AWS-Konto zu registrieren, benötigen Sie eine echte Telefonnummer und eine zahlbare Visa oder Mastercard Kreditkarte. Ich empfehle die Verwendung virtueller Karten, die Yandex.Money oder Qiwi Wallet kostenlos zur Verfügung stellen. Um die Gültigkeit der Karte zu überprüfen, wird bei der Registrierung 1 US-Dollar abgezogen, der anschließend zurückgegeben wird.
1.1. Öffnen der AWS Management Console
Sie müssen einen Browser öffnen und gehen zu: https://aws.amazon.com/en/
Klicken Sie auf die Schaltfläche "Registrieren"

1.2. Persönliche Daten eingeben
Geben Sie die Daten ein und klicken Sie auf die Schaltfläche "Weiter"

1.3. Kontaktdaten eingeben
Geben Sie die Kontaktdaten ein.

Kartennummer, Ablaufdatum und Name des Karteninhabers.

1.5. Kontobestätigung
Zu diesem Zeitpunkt wird die Telefonnummer bestätigt und 1 USD direkt von der Zahlungskarte abgebucht. Auf dem Computerbildschirm wird ein 4-stelliger Code angezeigt, und auf dem angegebenen Telefon wird ein Anruf von Amazon empfangen. Während des Anrufs müssen Sie den auf dem Bildschirm angezeigten Code wählen.

1.6. Wahl eines Tarifplans.
Wählen Sie - Basisplan (kostenlos)

1.7. Melden Sie sich bei der Verwaltungskonsole an

1.8. Auswählen eines Rechenzentrumsstandorts

1.8.1. Geschwindigkeitstest
Vor der Auswahl eines Rechenzentrums wird empfohlen, die Zugriffsgeschwindigkeit auf die nächstgelegenen Rechenzentren an meinem Standort über https://speedtest.net zu testen. Die folgenden Ergebnisse:
- Singapur

- Paris

- Frankfurt

- Stockholm

- London

Die besten Geschwindigkeitsergebnisse werden vom Rechenzentrum in London angezeigt. Daher habe ich es für die weitere Anpassung ausgewählt.
2. Erstellen einer AWS-Instanz
2.1 Erstellen einer virtuellen Maschine (Instanz)
2.1.0 Starten der exemplarischen Vorgehensweise zum Erstellen von Instanzen
2.1.0.1. Gehen Sie zur Startseite der Instanz

2.1.0.2. Starten der exemplarischen Vorgehensweise zum Erstellen von Instanzen

2.1.0.3. Auswählen eines Instanzbetriebssystemtyps

2.1.1. Wählen Sie den Instanztyp
Standardmäßig ist die t2.micro-Instanz ausgewählt. Wir benötigen sie. Klicken Sie einfach auf die Schaltfläche Weiter: Instanzdetails konfigurieren

2.1.2. Instanzparameter konfigurieren
In Zukunft werden wir eine permanente öffentliche IP mit unserer Instanz verbinden. In diesem Stadium deaktivieren wir die automatische Zuweisung der öffentlichen IP und klicken auf Weiter: Speicher hinzufügen

2.1.3. Speicherverbindung
Geben Sie die Größe der "Festplatte" an. 16 Gigabyte reichen für unsere Zwecke aus, und klicken Sie auf die Schaltfläche Weiter: Tags hinzufügen

2.1.4. Tag-Anpassung
Wenn wir mehrere Instanzen erstellt haben, können diese nach Tags gruppiert werden, um die Verwaltung zu vereinfachen. In diesem Fall ist diese Funktionalität redundant. Klicken Sie sofort auf die Schaltfläche Weiter: Security Gorup konfigurieren

2.1.5. Portöffnung
Zu diesem Zeitpunkt konfigurieren wir die Firewall, indem wir die erforderlichen Ports öffnen. Der Satz offener Ports wird als Sicherheitsgruppe bezeichnet. Wir müssen eine neue Sicherheitsgruppe erstellen, ihr einen Namen und eine Beschreibung geben, einen UDP-Port hinzufügen (benutzerdefinierte UDP-Regel). Im Feld Rort Range müssen Sie eine Portnummer aus dem dynamischen Portbereich 49152–65535 zuweisen. In diesem Fall habe ich die Portnummer 54321 gewählt.

Klicken Sie nach dem Eingeben der erforderlichen Daten auf die Schaltfläche Überprüfen und Starten
2.1.6. Übersicht aller Instanzeinstellungen
Auf dieser Seite finden Sie eine Übersicht aller Einstellungen unserer Instanz. Überprüfen Sie, ob alle Einstellungen in Ordnung sind, und klicken Sie auf die Schaltfläche Starten

2.1.7. Erstellen Sie Passkeys
Als Nächstes wird ein Dialogfeld angezeigt, in dem Sie einen vorhandenen SSH-Schlüssel erstellen oder hinzufügen können, mit dem wir später eine Remoteverbindung zu unserer Instanz herstellen. Wir wählen die Option "Neues Schlüsselpaar erstellen", um einen neuen Schlüssel zu erstellen. Legen Sie den Namen fest und klicken Sie auf die Schaltfläche Schlüsselpaar herunterladen, um die erstellten Schlüssel herunterzuladen. Speichern Sie sie an einem sicheren Ort auf der Festplatte des lokalen Computers. Nach dem Herunterladen klicken Sie auf die Schaltfläche Instanzen starten

2.1.7.1. Passkeys speichern
Hier wird der Schritt zum Speichern der erstellten Schlüssel aus dem vorherigen Schritt gezeigt. Nachdem wir auf die Schaltfläche Download Key Pair geklickt haben, wird der Schlüssel als Zertifikatdatei mit der Erweiterung * .pem gespeichert. In diesem Fall gab ich ihm den Namen wireguard-awskey.pem

2.1.8. Übersicht über die Ergebnisse der Instanzerstellung
Als nächstes sehen wir eine Meldung über den erfolgreichen Start der gerade erstellten Instanz. Sie können zur Liste unserer Instanzen wechseln, 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 müssen wir eine permanente externe IP-Adresse erstellen, über die wir eine Verbindung zu unserem VPN-Server herstellen. Wählen Sie dazu im Navigationsbereich auf der linken Seite des Bildschirms das Element Elastic IPs aus der Kategorie NETWORK & SECTURITY aus und klicken Sie auf die Schaltfläche Neue Adresse zuweisen

2.2.2. Konfigurieren Sie die externe IP-Erstellung
Im nächsten Schritt muss die Amazon-Pool- Option aktiviert sein (standardmäßig aktiviert) und auf die Schaltfläche Zuweisen klicken

2.2.3. Übersicht über die Ergebnisse der Erstellung einer externen IP-Adresse
Der nächste Bildschirm zeigt die externe IP-Adresse an, die wir erhalten haben. Es wird empfohlen, sich daran zu erinnern, und es ist noch besser, es aufzuschreiben. Dies wird sich bei der weiteren Einrichtung und Verwendung des VPN-Servers immer wieder als nützlich erweisen. In diesem Handbuch verwende ich als Beispiel die IP-Adresse 4.3.2.1 . Um die Adresse zu schreiben, klicken Sie auf die Schaltfläche Schließen

2.2.4. Liste der externen IP-Adressen
Als nächstes öffnen wir eine Liste unserer permanenten öffentlichen IP-Adressen (Elastics IP).

2.2.5. Zuweisen einer externen IP-Instanz
In dieser Liste wählen wir die IP-Adresse aus, die wir erhalten haben, und drücken die rechte Maustaste, um ein Dropdown-Menü aufzurufen. Wählen Sie darin das Adresselement zuordnen aus, um es der zuvor erstellten Instanz zuzuweisen.

2.2.6. Konfigurieren Sie die externe IP-Zuweisung
Wählen Sie im nächsten Schritt unsere Instanz aus der Dropdown-Liste aus und klicken Sie auf die Schaltfläche Zuordnen

2.2.7. Übersicht über die Ergebnisse der externen IP-Zuweisung
Danach können wir sehen, dass unsere Instanz und ihre private IP-Adresse mit unserer permanenten öffentlichen IP-Adresse verknüpft sind.

Jetzt können wir von außen über SSH eine Verbindung zu unserer neu erstellten Instanz herstellen.
3. Stellen Sie eine Verbindung zu einer AWS-Instanz her
SSH ist ein sicheres Protokoll zur Fernsteuerung von Computergeräten.
3.1. SSH-Verbindung von einem Windows-Computer
Um eine Verbindung zu einem Windows-Computer herzustellen, müssen Sie zuerst das Putty- Programm herunterladen und installieren.
3.1.1. Importieren Sie einen privaten Schlüssel für Putty
3.1.1.1. Nach der Installation von Putty müssen Sie das mitgelieferte Dienstprogramm PuTTYgen ausführen, um den Zertifikatschlüssel im PEM-Format in ein für die Verwendung in Putty geeignetes Format zu importieren. Wählen Sie dazu im oberen Menü Conversions-> Import Key

Wählen Sie als Nächstes den Schlüssel aus, den wir zuvor in Schritt 2.1.7.1 gespeichert haben. In unserem Fall lautet der Name wireguard-awskey.pem

3.1.1.3. Festlegen der wichtigsten Importoptionen
In diesem Schritt müssen wir einen Kommentar für diesen Schlüssel (Beschreibung) angeben und ein Kennwort und dessen Bestätigung für die Sicherheit festlegen. Es wird jedes Mal angefordert, wenn Sie eine Verbindung herstellen. Daher schützen wir den Schlüssel mit einem Passwort vor unangemessener Verwendung. Sie können kein Passwort festlegen, aber es ist weniger sicher, wenn der Schlüssel in die falschen Hände gerät. Nachdem wir auf die Schaltfläche Privaten Schlüssel speichern geklickt haben

3.1.1.4. Speichern eines importierten Schlüssels
Das Dialogfeld Datei speichern wird geöffnet und wir speichern unseren privaten Schlüssel als Datei mit der Erweiterung .ppk
, die für die Verwendung in Putty geeignet ist.
Geben Sie den Namen des Schlüssels an (in unserem Fall wireguard-awskey.ppk
) und klicken Sie auf die Schaltfläche Speichern .

3.1.2. Erstellen und Konfigurieren einer Verbindung in Putty
3.1.2.1. Verbindung herstellen
Öffnen Sie das Putty-Programm, wählen Sie die Sitzungskategorie aus (sie ist standardmäßig geöffnet) und geben Sie die öffentliche IP-Adresse unseres Servers in das Feld Hostname ein, das wir in Schritt 2.2.3 erhalten haben. Geben Sie im Feld Gespeicherte Sitzung einen beliebigen Namen für unsere Verbindung ein (in meinem Fall wireguard-aws-london ), und klicken Sie dann auf die Schaltfläche Speichern , um die vorgenommenen Änderungen zu speichern.

3.1.2.2. Benutzerautologin-Einstellung
Wählen Sie in der Kategorie Verbindung die Unterkategorie Daten aus und geben Sie im Feld Benutzername für automatische Anmeldung den Ubuntu- Benutzernamen ein. Dies ist der Standardbenutzer der AWS-Instanz mit Ubuntu.

3.1.2.3. Auswählen eines privaten Schlüssels für die SSH-Verbindung
Dann gehen wir zur Unterkategorie Verbindung / SSH / Authentifizierung und klicken neben dem Feld Private Schlüsseldatei zur Authentifizierung auf die Schaltfläche Durchsuchen ... , um eine Datei mit einem Schlüsselzertifikat auszuwählen.

3.1.2.4. Einen importierten Schlüssel öffnen
Wir geben den Schlüssel an, den wir zuvor in Schritt 3.1.1.4 importiert haben. In unserem Fall handelt es sich um die Datei wireguard-awskey.ppk , und klicken auf die Schaltfläche Öffnen .

3.1.2.5. Einstellungen speichern und Verbindung herstellen
Wenn Sie zur Seite Sitzungskategorie zurückkehren , klicken Sie erneut auf die Schaltfläche Speichern , um die Änderungen zu speichern, die wir zuvor in den vorherigen Schritten (3.1.2.2 - 3.1.2.4) vorgenommen haben. Anschließend drücken wir die Schaltfläche Öffnen, um die von uns erstellte und konfigurierte Remote-SSH-Verbindung zu öffnen.

3.1.2.7. Konfigurieren des Vertrauens zwischen Hosts
Im nächsten Schritt, wenn Sie zum ersten Mal versuchen, eine Verbindung herzustellen, wird eine Warnung angezeigt. Wir haben keine Vertrauensstellung zwischen den beiden Computern konfiguriert und fragen, ob Sie dem Remotecomputer vertrauen sollen. Wir klicken auf Ja und fügen es damit der Liste der vertrauenswürdigen Hosts hinzu.

3.1.2.8. Geben Sie das Passwort ein, um auf den Schlüssel zuzugreifen
Danach öffnet sich das Terminalfenster, in dem das Kennwort für den Schlüssel angefordert wird, wenn Sie es zuvor in Schritt 3.1.1.3 installiert haben. Bei der Eingabe des Passworts wird keine Aktion auf dem Bildschirm ausgeführt. Wenn Sie einen Fehler machen, können Sie die Rücktaste verwenden.

3.1.2.9. Willkommensnachricht bei erfolgreicher Verbindung
Nach erfolgreicher Eingabe des Passworts wird im Terminal ein Begrüßungstext angezeigt, der uns darüber informiert, dass das Remote-System bereit ist, unsere Befehle auszuführen.

4. Wireguard Server konfigurieren
Die aktuellsten Anweisungen zum Installieren und Verwenden von Wireguard mithilfe der unten beschriebenen Skripts finden Sie im Repository: https://github.com/isystem-io/wireguard-aws
4.1. Installieren Sie Wireguard
Geben Sie im Terminal die folgenden Befehle ein (Sie können sie in die Zwischenablage kopieren und durch Klicken mit der rechten Maustaste in das Terminal einfügen):
4.1.1. Repository-Klonen
Wir klonen ein Repository mit Wireguard-Installationsskripten
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws
4.1.2. Zum Skriptverzeichnis wechseln
Wechseln Sie in das Verzeichnis mit dem geklonten Repository
cd wireguard_aws
4.1.3 Ausführen des Initialisierungsskripts
Führen Sie das Wireguard-Installationsskript als Administrator (Root-Benutzer) aus.
sudo ./initial.sh
Während der Installation werden Sie aufgefordert, bestimmte Daten einzugeben, die für die Konfiguration von Wireguard erforderlich sind
4.1.3.1. Verbindungspunkt eingeben
Geben Sie die externe IP-Adresse und den offenen Port des Wireguard-Servers ein. Wir haben die externe IP-Adresse des Servers in Schritt 2.2.3 erhalten und den Port in Schritt 2.1.5 geöffnet. Wir geben sie zusammen an, 4.3.2.1:54321
Doppelpunkt, zum Beispiel 4.3.2.1:54321
, und drücken danach die Eingabetaste
Ausgabebeispiel:
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. Geben Sie die interne IP-Adresse ein
Geben Sie die IP-Adresse des Wireguard-Servers in ein sicheres VPN-Subnetz ein. Wenn Sie nicht wissen, um was es sich handelt, drücken Sie einfach die Eingabetaste, um den Standardwert ( 10.50.0.1
) 10.50.0.1
Ausgabebeispiel:
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3. Angeben eines DNS-Servers
Geben Sie die IP-Adresse des DNS-Servers ein oder drücken Sie einfach die Eingabetaste, um den Standardwert auf 1.1.1.1
(Cloudflare Public DNS) festzulegen.
Ausgabebeispiel:
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):
4.1.3.4. Festlegen der WAN-Schnittstelle
Geben Sie als Nächstes den Namen der externen Netzwerkschnittstelle ein, die die interne Netzwerkschnittstelle des VPN überwacht. eth0
einfach die Eingabetaste, um den Standardwert für AWS ( eth0
) eth0
Ausgabebeispiel:
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Kundenname
Geben Sie den Namen des VPN-Benutzers ein. Tatsache ist, dass der Wireguard VPN-Server erst gestartet werden kann, wenn mindestens ein Client hinzugefügt wurde. In diesem Fall habe ich den Namen Alex@mobile
eingegeben
Ausgabebeispiel:
Enter VPN user name: Alex@mobile
Danach sollte auf dem Bildschirm ein QR-Code mit der Konfiguration des neu hinzugefügten Clients angezeigt werden, der mit dem Wireguard Mobile Client auf Android oder iOS gelesen werden muss, um ihn zu konfigurieren. Außerdem wird bei manueller Konfiguration von Clients der Text der Konfigurationsdatei unterhalb des QR-Codes angezeigt. Wie das geht, wird unten beschrieben.

4.2. Hinzufügen eines neuen VPN-Benutzers
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:
Ausgabebeispiel:
Enter VPN user name:
Der Name kann auch als Skriptparameter an Benutzer übergeben werden (in diesem Fall Alex@mobile
):
sudo ./add-client.sh Alex@mobile
Als Ergebnis der Skriptausführung wird in dem Verzeichnis mit dem /etc/wireguard/clients/{}
entlang des Pfads /etc/wireguard/clients/{}
eine Datei mit der /etc/wireguard/clients/{}
CustomerName►.conf erstellt und auf dem Terminalbildschirm angezeigt QR-Code zum Einrichten mobiler Clients und des Inhalts der Konfigurationsdatei.
4.2.1. Benutzerkonfigurationsdatei
Mit dem cat
können Sie den Inhalt der .conf-Datei für die manuelle Client-Konfiguration auf dem Bildschirm anzeigen
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf
Ausführungsergebnis:
[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 = Address = IP DNS = [Peer] PublicKey = PresharedKey = AllowedIPs = ( - 0.0.0.0/0, ::/0) Endpoint = IP
4.2.2. QR-Client-Konfigurationscode
Sie können den QR-Code des Konfigurationscodes für den zuvor erstellten Client auf dem Terminalbildschirm mit dem qrencode -t ansiutf8
(in diesem Beispiel wird der Client mit dem Namen Alex @ mobile verwendet):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8
5. VPN-Clients konfigurieren
5.1. Android Mobile Client-Setup
Der offizielle Wireguard-Client für Android kann im offiziellen GooglePlay-Store installiert werden
Danach müssen Sie die Konfiguration importieren, indem Sie den QR-Code mit der Client-Konfiguration lesen (siehe Abschnitt 4.2.2) und ihm einen Namen geben:

Nach erfolgreichem Import der Konfiguration können Sie den VPN-Tunnel aktivieren. Über die erfolgreiche Verbindung wird der Vorrat des Schlüssels im Android-Systemfenster angezeigt

5.2. Windows-Client-Setup
Zunächst müssen Sie TunSafe für Windows herunterladen und installieren - dies ist ein Wireguard-Client für Windows.
5.2.1. Erstellen einer Konfigurationsdatei für den Import
Klicken Sie mit der rechten Maustaste, um eine Textdatei auf dem Desktop zu erstellen.

5.2.2. Kopieren des Inhalts der Konfigurationsdatei vom Server
Anschließend kehren wir zum Putty-Terminal zurück und zeigen den Inhalt der Konfigurationsdatei des gewünschten Benutzers an, wie in Schritt 4.2.1 beschrieben.
Wählen Sie als Nächstes den Konfigurationstext im Putty-Terminal mit der rechten Maustaste aus. Nach Abschluss der Auswahl wird er automatisch in die Zwischenablage kopiert.

5.2.3. Kopieren Sie die Konfiguration in die lokale Konfigurationsdatei
Dieses Feld kehrt zu der zuvor auf dem Desktop erstellten Textdatei zurück und fügt den Konfigurationstext aus der Zwischenablage ein.

5.2.4. Speichern einer lokalen Konfigurationsdatei
Wir speichern die Datei mit der Erweiterung .conf (in diesem Fall mit dem Namen london.conf
)

5.2.5. Importieren Sie eine lokale Konfigurationsdatei
Als Nächstes müssen Sie die Konfigurationsdatei in das TunSafe-Programm importieren.

5.2.6. Stellen Sie eine VPN-Verbindung her
Wählen Sie diese Konfigurationsdatei aus und stellen Sie eine Verbindung her, indem Sie auf die Schaltfläche Verbinden klicken.

6. Überprüfen des Verbindungserfolgs
Um den Erfolg der Verbindung über den VPN-Tunnel zu überprüfen, müssen Sie einen Browser öffnen und die Website https://2ip.ua/ru/ aufrufen.

Die angezeigte IP-Adresse sollte mit der in Schritt 2.2.3 erhaltenen übereinstimmen.
Wenn ja, funktioniert der VPN-Tunnel erfolgreich.
Von einem Terminal unter Linux aus können Sie Ihre IP-Adresse überprüfen, indem Sie den folgenden Befehl eingeben:
curl http://zx2c4.com/ip
Oder Sie können einfach zum Porno-Hub gehen, wenn Sie in Kasachstan sind.