Wofür?
Mit der zunehmenden Zensur des Internets durch autoritäre Regierungen werden immer mehr nützliche Internetressourcen und Webseiten blockiert. Dazu gehören auch technische Informationen.
Daher wird es unmöglich, das Internet vollständig zu nutzen, und das Grundrecht auf Meinungsfreiheit, das in der .
Artikel 19
Jeder Mensch hat das Recht auf die Freiheit der Überzeugungen und auf deren freie Äußerung; dieses Recht umfasst die Freiheit, seine Überzeugungen ungehindert zu haben und die Freiheit, Informationen und Ideen durch alle verfügbaren Mittel zu suchen, zu erhalten und zu verbreiten, unabhängig von staatlichen Grenzen.
In diesem Leitfaden werden wir in 6 Schritten unser eigenes kostenloses* auf Basis der Technologie , in der Cloud-Infrastruktur (AWS), mit Hilfe eines kostenlosen Kontos (für 12 Monate), auf einer Instanz (virtuellen Maschine) mit dem Betriebssystem .
Ich habe versucht, dieses schrittweise Handbuch so benutzerfreundlich wie möglich zu gestalten, auch für diejenigen ohne IT-Hintergrund. Das einzige, was erforderlich ist, ist Ausdauer beim Wiederholen der nachstehenden Schritte.
Hinweis
- AWS bietet für 12 Monate an, mit einer Begrenzung von 15 Gigabyte Datenverkehr pro Monat.
- Die aktuellste Version dieses Leitfadens finden Sie unter
Schritte
- Registrierung eines kostenlosen AWS-Kontos
- Erstellen einer AWS-Instanz
- Verbindung zur AWS-Instanz
- Konfiguration von Wireguard
- Konfiguration der VPN-Clients
- Überprüfung der VPN-Installation
Nützliche Links
1. Registrierung eines AWS-Kontos
Für die Registrierung eines kostenlosen AWS-Kontos benötigen Sie eine gültige Telefonnummer und eine belastbare Visa- oder Mastercard-Kreditkarte. Ich empfehle die Nutzung von virtuellen Karten, die kostenlos von oder . Zur Überprüfung der Gültigkeit der Karte wird bei der Registrierung 1$ von Ihrem Konto abgebucht, der später zurückerstattet wird.
1.1. Öffnen der AWS-Verwaltungskonsole
Öffnen Sie einen Browser und gehen Sie zu der Adresse:
Klicken Sie auf die Schaltfläche „Registrieren“

1.2. Ausfüllen der persönlichen Daten
Geben Sie die Daten ein und klicken Sie auf die Schaltfläche „Fortfahren“

1.3. Ausfüllen der Kontaktdaten
Geben Sie die Kontaktdaten ein.

1.4. Eingabe der Zahlungsinformationen.
Kartennummer, Ablaufdatum und Name des Karteninhabers.

1.5. Bestätigung des Kontos
In diesem Schritt erfolgt die Bestätigung der Telefonnummer und die Abbuchung von 1 $ von der Zahlungskarte. Auf dem Computerbildschirm wird ein 4-stelliger Code angezeigt, und es gibt einen Anruf von Amazon auf die angegebene Telefonnummer. Während des Anrufs muss der angezeigte Code eingegeben werden.

1.6. Auswahl des Tarifs.
Wir wählen - Basisplan (kostenlos)

1.7. Zugang zur Verwaltungs-Konsole

1.8. Auswahl des Standorts des Rechenzentrums

1.8.1. Geschwindigkeitstest
Bevor wir ein Rechenzentrum auswählen, empfiehlt es sich, die Verbindungsgeschwindigkeit zu den nächstgelegenen Rechenzentren über die Geschwindigkeit des Zugangs zu den nächstgelegenen Rechenzentren zu testen. In meinem Standort sind die Ergebnisse wie folgt:
- Singapur

- Paris

- Frankfurt

- Stockholm

- London

Das Rechenzentrum in London zeigt die besten Geschwindigkeitsergebnisse. Daher habe ich es für die weitere Konfiguration ausgewählt.
2. Erstellung einer AWS-Instanz
2.1 Erstellung einer virtuellen Maschine
2.1.1. Auswahl des Instanztyps
Standardmäßig ist die instanz t2.micro ausgewählt, die brauchen wir, wir drücken einfach die Taste Weiter: Instanzdetails konfigurieren

2.1.2. Konfiguration der Instanzparameter
Wir werden unserer Instanz später eine permanente öffentliche IP-Adresse zuweisen, daher deaktivieren wir an dieser Stelle die automatische Zuweisung einer öffentlichen IP und drücken die Taste Weiter: Speicher hinzufügen

2.1.3. Anbindung des Speichers
Wir geben die Größe der 'Festplatte' an. Für unsere Zwecke sind 16 Gigabyte ausreichend, und wir drücken die Taste Weiter: Tags hinzufügen

2.1.4. Konfiguration der Tags
Wenn wir mehrere Instanzen erstellen würden, könnten wir sie nach Tags gruppieren, um die Verwaltung zu erleichtern. In diesem Fall ist diese Funktionalität überflüssig, wir drücken sofort die Taste Weiter: Sicherheitsgruppe konfigurieren

2.1.5. Öffnen von Ports
In diesem Schritt konfigurieren wir die Firewall, indem wir die benötigten Ports öffnen. Die Gruppe offener Ports wird als 'Sicherheitsgruppe' (Security Group) bezeichnet. Wir müssen eine neue Sicherheitsgruppe erstellen, ihr einen Namen und eine Beschreibung geben, den UDP-Port (benutzerdefinierte UDP-Regel) hinzufügen und im Feld 'Rort Range' die Portnummer aus dem Bereich 49152—65535. In diesem Fall habe ich die Portnummer 54321 ausgewählt.

Nachdem die erforderlichen Daten eingegeben sind, drücken wir die Taste Überprüfen und Starten
2.1.6. Übersicht aller Einstellungen
Auf dieser Seite erhalten wir eine Übersicht aller Einstellungen unserer Instanz, wir überprüfen, ob alle Einstellungen in Ordnung sind, und drücken die Taste Starten

2.1.7. Erstellung der Zugangsschlüssel
Anschließend erscheint ein Dialogfeld, das entweder anbietet, einen neuen SSH-Schlüssel zu erstellen oder einen vorhandenen hinzuzufügen, mit dem wir uns später remote mit unserer Instanz verbinden werden. Wir wählen die Option „Create a new key pair“, um einen neuen Schlüssel zu erstellen. Wir geben einen Namen ein und klicken auf die Schaltfläche Download Key Pair, um die erstellten Schlüssel herunterzuladen. Speichern Sie sie an einem sicheren Ort auf der Festplatte des lokalen Computers. Nachdem Sie heruntergeladen haben, klicken Sie auf die Schaltfläche Launch Instances

2.1.7.1. Speichern der Zugangsschlüssel
Hier sehen wir den Schritt, an dem die erstellten Schlüssel aus dem vorherigen Schritt gespeichert werden. Nachdem wir auf die Schaltfläche Download Key Pair, wird der Schlüssel als Zertifikatsdatei mit der Erweiterung *.pem gespeichert. In diesem Fall habe ich ihm den Namen wireguard-awskey.pem

2.1.8. Überblick über die Ergebnisse der Instanzenerstellung
Als Nächstes sehen wir eine Nachricht über den erfolgreichen Start der gerade von uns erstellten Instanz. Wir können zur Liste unserer Instanzen gehen, indem wir auf die Schaltfläche View instances

2.2. Erstellung einer externen IP-Adresse
2.2.1. Start der Erstellung einer externen IP
Nun müssen wir eine permanente externe IP-Adresse erstellen, über die wir uns mit unserem VPN-Server verbinden werden. Dazu müssen wir im Navigationsbereich auf der linken Seite des Bildschirms den Punkt auswählen Eingehende IPs aus der Kategorie NETWORK & SECURITY und klicken auf die Schaltfläche Allocate new address

2.2.2. Einstellungen zur Erstellung einer externen IP
Im nächsten Schritt muss die Option Amazon pool aktiviert sein (standardmäßig aktiviert), und wir klicken auf die Schaltfläche Allocate

2.2.3. Überblick über die Ergebnisse der Erstellung einer externen IP-Adresse
Auf dem nächsten Bildschirm wird die von uns erhaltene externe IP-Adresse angezeigt. Es wird empfohlen, sie sich zu merken, oder besser noch, sie aufzuschreiben. Wir werden sie im weiteren Verlauf der Konfiguration und Nutzung des VPN-Servers noch oft benötigen. In diesem Leitfaden verwende ich als Beispiel die IP-Adresse 4.3.2.1. Sobald die Adresse notiert ist, klicken wir auf die Schaltfläche Close

2.2.4. Liste der externen IP-Adressen
Daraufhin wird uns die Liste unserer permanenten öffentlichen IP-Adressen (Elastic IP) angezeigt.

2.2.5. Zuordnung einer externen IP zur Instanz
In dieser Liste wählen wir die von uns erhaltene IP-Adresse aus und klicken mit der rechten Maustaste, um das Dropdown-Menü aufzurufen. Darin wählen wir den Punkt Associate address, um sie der gerade erstelleten Instanz zuzuordnen.

2.2.6. Einstellungen zur Zuordnung einer externen IP
Im nächsten Schritt wählen wir im Dropdown-Menü unsere Instanz aus und klicken auf die Schaltfläche Associate

2.2.7. Überblick über die Ergebnisse der Zuordnung einer externen IP
Nach diesem Schritt können wir sehen, dass unsere Instanz mit unserer festen öffentlichen IP-Adresse und ihrer privaten IP-Adresse verbunden ist.

Jetzt können wir uns von unserem Computer aus über SSH mit unserer neu erstellten Instanz verbinden.
3. Verbindung zu AWS-Instanz
— dies ist ein sicherer Protokoll für die Fernverwaltung von Computergeräten.
3.1. Verbindung über SSH von einem Windows-Computer
Um sich mit einem Windows-Computer zu verbinden, muss zuerst das Programm heruntergeladen und installiert werden .
3.1.1. Import des privaten Schlüssels für Putty
3.1.1.1. Nach der Installation von Putty müssen wir das mitgelieferte Tool PuTTYgen starten, um den Zertifikatsschlüssel im PEM-Format in ein Format zu importieren, das für die Nutzung in Putty geeignet ist. Dazu wählen wir im oberen Menü den Punkt Conversions->Import Key

3.1.1.2. Auswahl des AWS-Schlüssels im PEM-Format
Danach wählen wir den Schlüssel aus, den wir zuvor im Schritt 2.1.7.1 gespeichert haben, in unserem Fall heißt er wireguard-awskey.pem

3.1.1.3. Festlegung der Importparameter für den Schlüssel
In diesem Schritt müssen wir einen Kommentar für diesen Schlüssel (eine Beschreibung) angeben und sicherheitshalber ein Passwort sowie dessen Bestätigung festlegen. Es wird bei jeder Verbindung angefordert. So schützen wir den Schlüssel mit einem Passwort vor unsachgemäßer Verwendung. Es ist nicht erforderlich, ein Passwort festzulegen, aber das ist weniger sicher, falls der Schlüssel in die falschen Hände gerät. Nachdem wir auf die Schaltfläche Save private key

3.1.1.4. Speicherung des importierten Schlüssels
Ein Dialogfeld zum Speichern der Datei öffnet sich, und wir speichern unseren privaten Schlüssel als Datei mit der Endung .ppk, die für die Verwendung in dem Programm geeignet ist Putty.
Wir geben den Namen des Schlüssels an (in unserem Fall wireguard-awskey.ppk) und drücken die Schaltfläche Speichern.

3.1.2. Erstellung und Konfiguration der Verbindung in Putty
3.1.2.1. Erstellung der Verbindung
Wir öffnen das Programm Putty, wählen die Kategorie Sitzung (diese ist standardmäßig geöffnet) und geben unter Host Name die öffentliche IP-Adresse unseres Servers ein, die wir im Schritt 2.2.3 erhalten haben. Im Feld Saved Session geben wir einen beliebigen Namen für unsere Verbindung ein (in meinem Fall wireguard-aws-london), und anschließend drücken wir die Taste Speichern um die von uns vorgenommenen Änderungen zu speichern.

3.1.2.2. Konfiguration des automatischen Logins des Benutzers
Weiter in der Kategorie Verbindung, wählen wir die Unterkategorie Daten und geben im Feld Auto-login username den Benutzernamen ein ubuntu — dies ist der Standardbenutzer der Instanz auf AWS mit Ubuntu.

3.1.2.3. Auswahl des privaten Schlüssels für die Verbindung über SSH
Dann wechseln wir zur Unterkategorie Connection/SSH/Auth und neben dem Feld Privater Schlüsseldatei zur Authentifizierung wir klicken auf die Schaltfläche Durchsuchen… um die Datei mit dem Zertifikat des Schlüssels auszuwählen.

3.1.2.4. Importierten Schlüssel öffnen
Wir geben den Schlüssel an, den wir zuvor in Schritt 3.1.1.4 importiert haben, in unserem Fall ist das die Datei wireguard-awskey.ppk, und klicken wir auf die Schaltfläche Öffnen.

3.1.2.5. Einstellungen speichern und Verbindung starten
Nachdem wir zur Kategorieseite zurückgekehrt sind Sitzung klicken wir erneut auf die Schaltfläche Speichern, um die zuvor vorgenommenen Änderungen in den vorherigen Schritten (3.1.2.2 – 3.1.2.4) zu speichern. Dann klicken wir auf die Schaltfläche Offen , um die erstellte und konfigurierte Remote-Verbindung über SSH zu öffnen.

3.1.2.7. Vertrauen zwischen Hosts einrichten
Im nächsten Schritt, beim ersten Versuch, uns zu verbinden, erhalten wir eine Warnung, dass kein Vertrauen zwischen den beiden Computern eingerichtet wurde, und es wird gefragt, ob wir dem Remote-Computer vertrauen wollen. Wir klicken auf die Schaltfläche Ja, wodurch wir ihn zur Liste der vertrauenswürdigen Hosts hinzufügen.

3.1.2.8. Passwort für den Zugriff auf den Schlüssel eingeben
Daraufhin öffnet sich ein Terminalfenster, in dem das Passwort für den Schlüssel abgefragt wird, wenn Sie dies zuvor in Schritt 3.1.1.3 eingerichtet haben. Beim Eingeben des Passworts erscheinen keine Aktionen auf dem Bildschirm. Wenn ein Fehler aufgetreten ist, können Sie die Taste Backspace.

3.1.2.9. Begrüßungsnachricht über erfolgreiches Verbinden
Nach erfolgreicher Eingabe des Passworts wird uns im Terminal ein Begrüßungstext angezeigt, der uns mitteilt, dass das Remote-System bereit ist, unsere Befehle auszuführen.

4. Konfiguration des Wireguard-Servers
Die aktuellste Anleitung zur Installation und Verwendung von Wireguard mithilfe der unten beschriebenen Skripte finden Sie im Repository:
4.1. Installation von Wireguard
Geben Sie im Terminal die folgenden Befehle ein (kann in die Zwischenablage kopiert und im Terminal durch einen Rechtsklick eingefügt werden):
4.1.1. Repository klonen
Wir klonen das Repository mit den Wireguard-Installationsskripten
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. In das Verzeichnis mit den Skripten wechseln
Wir wechseln in das Verzeichnis des geklonten Repositories
cd wireguard_aws4.1.3 Initialisierungsskript ausführen
Wir führen das Wireguard-Installationsskript als Administrator (Root-Benutzer) aus
sudo ./initial.shWährend der Installation werden bestimmte Daten abgefragt, die für die Konfiguration von Wireguard erforderlich sind
4.1.3.1. Verbindungspunkt eingeben
Geben Sie die externe IP-Adresse und den geöffneten Port des Wireguard-Servers ein. Die externe IP-Adresse des Servers haben wir in Schritt 2.2.3 erhalten, und den Port haben wir in Schritt 2.1.5 geöffnet. Geben Sie diese zusammenhängend ein, getrennt durch einen Doppelpunkt, zum Beispiel 4.3.2.1:54321, und drücken Sie danach die Taste Enter
Beispielausgabe:
Geben Sie den Endpunkt (externe IP und Port) im Format [ipv4:port] ein (z. B. 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Eingabe der internen IP-Adresse
Geben Sie die IP-Adresse des Wireguard-Servers im geschützten VPN-Subnetz ein. Wenn Sie nicht wissen, was das ist, drücken Sie einfach die Eingabetaste, um den Standardwert zu setzen (10.50.0.1)
Beispielausgabe:
Geben Sie die Serveradresse im VPN-Subnetz (CIDR-Format) ein ([ENTER] auf Standard setzen: 10.50.0.1):4.1.3.3. Angabe des DNS-Servers
Geben Sie die IP-Adresse des DNS-Servers ein, oder drücken Sie einfach die Eingabetaste, um den Standardwert zu setzen 1.1.1.1 (Cloudflare öffentlicher DNS)
Beispielausgabe:
Geben Sie die IP-Adresse des DNS-Servers (CIDR-Format) ein ([ENTER] auf Standard setzen: 1.1.1.1):4.1.3.4. Angabe des WAN-Interfaces
Als nächstes müssen Sie den Namen des externen Netzwerkschnittstellen eingeben, die das interne VPN-Netzwerk-Schnittstelle überwachen wird. Drücken Sie einfach die Eingabetaste, um den Standardwert für AWS zu setzen (eth0)
Beispielausgabe:
Geben Sie den Namen des WAN-Netzwerkinterfaces ein ([ENTER] auf Standard setzen: eth0):4.1.3.5. Angabe des Clientnamens
Geben Sie den Namen des VPN-Benutzers ein. Der Wireguard-VPN-Server kann nicht gestartet werden, solange nicht mindestens ein Client hinzugefügt wurde. In diesem Fall habe ich den Namen eingegeben Alex@mobile
Beispielausgabe:
Geben Sie den VPN-Benutzernamen ein: Alex@mobileDanach sollte auf dem Bildschirm ein QR-Code mit der Konfiguration des gerade hinzugefügten Clients angezeigt werden, der mit dem mobilen Wireguard-Client auf Android oder iOS gescannt werden muss, um ihn einzurichten. Außerdem wird unter dem QR-Code der Text der Konfigurationsdatei angezeigt, falls eine manuelle Konfiguration der Clients erforderlich ist. Wie das geht, wird weiter unten erklärt.

4.2. Hinzufügen eines neuen VPN-Benutzers
Um einen neuen Benutzer hinzuzufügen, muss das Skript im Terminal ausgeführt werden add-client.sh
sudo ./add-client.shDas Skript fragt nach dem Benutzernamen:
Beispielausgabe:
Geben Sie den VPN-Benutzernamen ein: Der Benutzername kann auch als Parameter an das Skript übergeben werden (in diesem Fall Alex@mobile):
sudo ./add-client.sh Alex@mobileNach der Ausführung des Skripts wird im Verzeichnis mit dem Namen des Clients unter dem Pfad /etc/wireguard/clients/{ИмяКлиента} eine Datei mit der Konfiguration des Clients erstellt /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, und auf dem Bildschirm des Terminals wird ein QR-Code zur Einrichtung der mobilen Clients und der Inhalt der Konfigurationsdatei angezeigt.
4.2.1. Datei der Benutzerspezifischen Konfiguration
Um den Inhalt der .conf-Datei für die manuelle Konfiguration des Clients anzuzeigen, kann der Befehl verwendet werden cat
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.confErgebnis der Ausführung:
[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:54321Beschreibung der Konfigurationsdatei des Clients:
[Interface]
PrivateKey = Privater Schlüssel des Clients
Address = IP-Adresse des Clients
DNS = DNS, den der Client verwendet
[Peer]
PublicKey = Öffentliches Schlüssel des Servers
PresharedKey = Gemeinsamer Schlüssel von Server und Client
AllowedIPs = Erlaubte Adressen für die Verbindung (alle - 0.0.0.0/0, ::/0)
Endpoint = IP-Adresse und Port für die Verbindung4.2.2. QR-Code der Client-Konfiguration
Um den QR-Code der Konfiguration für den vorherigen Client im Terminal anzuzeigen, kann der Befehl verwendet werden qrencode -t ansiutf8 (In diesem Beispiel wird ein Client mit dem Namen Alex@mobile verwendet):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Konfiguration der VPN-Clients
5.1. Konfiguration des mobilen Clients Android
Der offizielle Wireguard-Client für Android kann
Anschließend muss die Konfiguration importiert werden, indem der QR-Code mit der Client-Konfiguration gescannt wird (siehe Punkt 4.2.2) und ihm ein Name gegeben wird:

Nach dem erfolgreichen Import der Konfiguration kann der VPN-Tunnel aktiviert werden. Über die Systemleiste von Android wird das erfolgreiche Verbinden durch das Symbol des Schlüssels angezeigt.

5.2. Konfiguration des Windows-Clients
Zunächst muss das Programm heruntergeladen und installiert werden — dies ist der Wireguard-Client für Windows.
5.2.1. Erstellung der Konfigurationsdatei zum Importieren
Erstellen Sie mit der rechten Maustaste eine Textdatei auf dem Desktop.

5.2.2. Kopieren des Inhalts der Konfigurationsdatei vom Server
Kehren Sie zum Putty-Terminal zurück und zeigen Sie den Inhalt der Konfigurationsdatei des benötigten Benutzers an, wie in Schritt 4.2.1 beschrieben.
Markieren Sie anschließend den Konfigurationstext im Putty-Terminal mit der rechten Maustaste; nach der Auswahl wird der Text automatisch in die Zwischenablage kopiert.

5.2.3. Kopieren der Konfiguration in die lokale Konfigurationsdatei
Gehen Sie danach zurück zu der von uns zuvor auf dem Desktop erstellten Textdatei und fügen Sie den Konfigurationstext aus der Zwischenablage ein.

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

5.2.5. Importieren der lokalen Konfigurationsdatei
Anschließend muss die Konfigurationsdatei in das TunSafe-Programm importiert werden.

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

6. Überprüfung des Verbindungsstatus
Um den Verbindungsstatus über ein VPN-Tunnel zu überprüfen, öffnen Sie den Browser und gehen Sie auf die Webseite

Die angezeigte IP-Adresse sollte mit der übereinstimmen, die wir in Schritt 2.2.3 erhalten haben.
Wenn dem so ist, funktioniert der VPN-Tunnel erfolgreich.
Im Terminal unter Linux kann man seine IP-Adresse überprüfen, indem man den Befehl eingibt:
curl http://zx2c4.com/ipAlternativ können Sie einfach eine Pornoseite besuchen, wenn Sie sich in Kasachstan befinden.
Quelle: habr.com





