Waarom?
Met de toename van de censuur op internet door autoritaire regimes worden steeds meer nuttige internetbronnen en websites geblokkeerd. Dit omvat ook technische informatie.
Hierdoor wordt het steeds lastiger om internet volledig te gebruiken en wordt het fundamentele recht op vrijheid van meningsuiting, verankerd in de .
Artikel 19
Iedereen heeft recht op vrijheid van gedachten en op de vrije uitdrukking daarvan; dit recht omvat de vrijheid om zijn of haar overtuigingen zonder hinder aan te houden en de vrijheid om informatie en ideeën door elk middel te zoeken, te ontvangen en te verspreiden, ongeacht staatsgrenzen.
In deze gids zullen we in 6 stappen onze eigen gratis* op basis van technologie , in cloudinfrastructuur (AWS), met behulp van een gratis account (voor 12 maanden), op een instantie (virtuele machine) die draait op .
Ik heb geprobeerd deze stap-voor-stap gids zo gebruiksvriendelijk mogelijk te maken voor mensen die niet vertrouwd zijn met IT. Het enige wat nodig is, is geduld bij het herhalen van de onderstaande stappen.
Opmerking
- AWS biedt voor een periode van 12 maanden, met een limiet van 15 gigabyte verkeer per maand.
- De meest actuele versie van deze gids is beschikbaar op
Stappen
- Registratie van een gratis AWS-account
- Creëren van een AWS-instantie
- Verbinden met de AWS-instantie
- Configureren van Wireguard
- Configureren van VPN-klanten
- Controleren of de VPN-installatie correct is
Nuttige links
1. Registratie van een AWS-account
Voor de registratie van een gratis AWS-account is een echt telefoonnummer en een betalende creditcard (Visa of Mastercard) vereist. Ik raad aan om gebruik te maken van virtuele kaarten die gratis worden verstrekt door of . Voor de controle van de geldigheid van de kaart wordt er bij registratie 1$ afgeschreven, dat later wordt teruggestort.
1.1. Openen van de AWS-beheerconsole
Open de browser en ga naar het volgende adres:
Klik op de knop 'Registreren'

1.2. Invullen van persoonlijke gegevens
Vul de gegevens in en klik op de knop 'Doorgaan'

1.3. Invullen van contactgegevens
Vul de contactgegevens in.

1.4. Opgeven van betalingsinformatie.
Kaartnummer, verloopdatum en naam van de kaarthouder.

1.5. Accountverificatie
In deze fase bevestigen we het telefoonnummer en wordt er direct $1 van de betaalkaart afgeschreven. Op het computerscherm verschijnt een 4-cijferige code en er komt een oproep van Amazon naar het opgegeven telefoonnummer. Tijdens het gesprek moet de code die op het scherm staat worden ingetoetst.

1.6. Keuze van het tariefplan.
Kies — Basisplan (gratis)

1.7. Toegang tot het beheerpaneel

1.8. Keuze van de datacenterlocatie

1.8.1. Snelheidstest
Voordat je een datacenter kiest, is het aan te raden om de snelheid te testen via de toegangssnelheid tot de dichtstbijzijnde datacenters. In mijn locatie zijn de resultaten als volgt:
- Singapore

- Parijs

- Frankfurt

- Stockholm

- Londen

Het datacenter in Londen toont de beste snelheidsresultaten. Daarom heb ik het voor verdere configuratie gekozen.
2. AWS-instance aanmaken
2.1 Een virtuele machine aanmaken
2.1.1. Keuze van het type instance
Standaard is de t2.micro instance geselecteerd, wat we nodig hebben, dus we drukken op de knop Volgende: Configureer instance-details

2.1.2. Instance-instellingen configureren
Later zullen we een statisch openbaar IP aan onze instance koppelen. Daarom schakelen we op dit moment de automatische toewijzing van het openbare IP uit en drukken we op de knop Volgende: Opslag toevoegen

2.1.3. Opslag aansluiten
We geven de grootte van de ‘harde schijf’ aan. Voor onze doeleinden is 16 gigabyte voldoende, dus drukken we op de knop Volgende: Tags toevoegen

2.1.4. Tags configureren
Als we meerdere instances zouden aanmaken, zouden we deze naar tags kunnen groeperen voor een gemakkelijker beheer. In dit geval is deze functionaliteit overbodig, dus drukken we direct op de knop Volgende: Beveiligingsgroep configureren

2.1.5. Poorten openen
In deze fase configureren we de firewall door de benodigde poorten te openen. De set open poorten wordt een ‘Beveiligingsgroep’ (Security Group) genoemd. We moeten een nieuwe beveiligingsgroep aanmaken, deze een naam en beschrijving geven, port UDP (Custom UDP Rule) toevoegen en in het veld Rort Range moet een poortnummer uit het bereik 49152—65535. In dit geval heb ik poortnummer 54321 gekozen.

Na het invullen van de benodigde gegevens, drukken we op de knop Review and Launch
2.1.6. Overzicht van alle instellingen
Op deze pagina is er een overzicht van alle instellingen van onze instance. Controleer of alle instellingen in orde zijn en druk op de knop Lanceer

2.1.7. Toegangssleutels aanmaken
Daarna verschijnt er een dialoogvenster waarin wordt aangeboden om een bestaande SSH-sleutel te maken of toe te voegen, waarmee we op afstand verbinding kunnen maken met onze instantie. We selecteren de optie "Create a new key pair" om een nieuwe sleutel te creëren. We geven een naam op en drukken op de knop Download Key Pair, om de gemaakte sleutels te downloaden. Bewaar ze op een veilige plek op de lokale computer. Nadat je hebt gedownload, druk je op de knop Launch Instances

2.1.7.1. Sleutels opslaan
Hier wordt de stap getoond voor het opslaan van de gemaakte sleutels uit de vorige stap. Nadat we op de knop hebben gedrukt Download Key Pair, wordt de sleutel opgeslagen als een certificaatbestand met de extensie *.pem. In dit geval heb ik het de naam gegeven wireguard-awskey.pem

2.1.8. Overzicht van de resultaten van het maken van een instantie
Daarna zien we een bericht over het succesvolle starten van de zojuist gemaakte instantie. We kunnen naar de lijst van onze instanties gaan door op de knop te drukken View instances

2.2. Een extern IP-adres aanmaken
2.2.1. Starten van de creatie van een extern IP
We moeten nu een permanent extern IP-adres aanmaken waarmee we verbinding zullen maken met onze VPN-server. Hiervoor moeten we in de navigatiebalk aan de linkerkant van het scherm het volgende kiezen Elastic IPs uit de categorie NETWORK & SECURITY en drukken we op de knop Allocate new address

2.2.2. Instellingen voor het aanmaken van een extern IP
In de volgende stap moeten we ervoor zorgen dat de optie Amazon pool (standaard ingeschakeld) is ingeschakeld, en drukken we op de knop Allocate

2.2.3. Overzicht van de resultaten van het maken van een extern IP-adres
Op het volgende scherm zal ons het verkregen externe IP-adres worden weergegeven. Het is aan te raden het te onthouden, beter nog om het op te schrijven. We zullen het nog vaak nodig hebben tijdens de verdere configuratie en het gebruik van de VPN-server. In deze gids gebruik ik als voorbeeld het IP-adres 4.3.2.1. Zodra je het adres hebt genoteerd, druk je op de knop Close

2.2.4. Lijst met externe IP-adressen
Daarna wordt de lijst van onze permanente openbare IP-adressen (elastische IP) geopend.

2.2.5. Toewijzing van een extern IP aan een instantie
In deze lijst kiezen we het verkregen IP-adres en drukken we met de rechtermuisknop om het dropdownmenu te openen. We kiezen het item Associate address, om het toe te wijzen aan de eerder gemaakte instantie.

2.2.6. Instellingen voor de toewijzing van een extern IP
In de volgende stap kiezen we onze instantie uit de dropdownlijst en drukken we op de knop Associate

2.2.7. Overzicht van de resultaten van de toewijzing van een extern IP
Hierna kunnen we zien dat ons instance is gekoppeld aan ons vaste publieke IP-adres en zijn privé IP-adres.

Nu kunnen we verbinding maken met ons nieuw aangemaakte instance van buitenaf, vanaf onze computer via SSH.
3. Verbinding maken met AWS-instance
— dit is een veilige protocol voor remote beheer van computers.
3.1. Verbinding maken via SSH vanaf een Windows-computer
Om verbinding te maken met een computer met Windows, moet eerst het programma .
3.1.1. Importeren van de privésleutel voor Putty
3.1.1.1. Na de installatie van Putty moet u de bijgeleverde PuTTYgen-tool starten om de certificaatsleutel in PEM-formaat te importeren in een formaat dat geschikt is voor gebruik in het programma Putty. Hiervoor kiest u in het bovenste menu de optie Conversions->Import Key

3.1.1.2. Selectie van de AWS-sleutel in PEM-formaat
Daarna kiezen we de sleutel die we eerder op stap 2.1.7.1 hebben opgeslagen, in ons geval heeft deze de naam wireguard-awskey.pem

3.1.1.3. Instellen van importparameters voor de sleutel
In deze stap moeten we een commentaar voor deze sleutel (beschrijving) opgeven en voor de veiligheid een wachtwoord en bevestiging instellen. Dit wachtwoord zal bij elke verbinding gevraagd worden. Hiermee beschermen we de sleutel met een wachtwoord tegen ongeautoriseerd gebruik. Het is mogelijk om geen wachtwoord in te stellen, maar dit is minder veilig, mocht de sleutel in verkeerde handen vallen. Vervolgens drukken we op de knop Save private key

3.1.1.4. Opslaan van de geïmporteerde sleutel
Er opent een dialoogvenster voor het opslaan van het bestand, en we slaan onze privésleutel op als een bestand met de extensie .ppk, geschikt voor gebruik in het programma Putty.
Geef de naam van de sleutel op (in ons geval wireguard-awskey.ppk) en druk op de knop Opslaan.

3.1.2. Aanmaken en configureren van de verbinding in Putty
3.1.2.1. Verbinding maken
Open het programma Putty, kies de categorie Session (deze is standaard geopend) en in het veld Host Name voeren we het publieke IP-adres van onze server in, dat we hebben ontvangen in stap 2.2.3. In het veld Saved Session geef een willekeurige naam voor onze verbinding op (in mijn geval wireguard-aws-london), en druk daarna op de knop Opslaan om de gemaakte wijzigingen op te slaan.

3.1.2.2. Instellen van automatische inlog voor de gebruiker
Ga verder naar de categorie Verbinden, kies de subcategorie Data en in het veld Auto-login username voer je gebruikersnaam in ubuntu — dit is de standaard gebruiker van de instance op AWS met Ubuntu.

3.1.2.3. Selectie van de privésleutel voor verbinding via SSH
Ga vervolgens naar de subcategorie Connection/SSH/Auth en naast het veld Privésleutelbestand voor authenticatie klik op de knop Bladeren… om het bestand met de sleutelcertificaat te selecteren.

3.1.2.4. Importeren van de sleutel
Geef de sleutel op die we eerder hebben geïmporteerd in stap 3.1.1.4, in ons geval is dit het bestand wireguard-awskey.ppk, en klik op de knop Openen.

3.1.2.5. Instellingen opslaan en verbinding starten
Terug op de categoriewebpagina Session klik nogmaals op de knop Opslaan, om de eerder gemaakte wijzigingen van de voorgaande stappen (3.1.2.2 — 3.1.2.4) op te slaan. En druk vervolgens op de knop Open om de SSH-verbinding die we hebben gecreëerd en geconfigureerd te openen.

3.1.2.7. Vertrouwen tussen hosts instellen
In de volgende stap, bij de eerste poging om verbinding te maken, krijgen we een waarschuwing dat er geen vertrouwen is ingesteld tussen de twee computers en er wordt gevraagd of we de externe computer willen vertrouwen. We drukken op de knop Yes, waardoor deze aan de lijst van vertrouwde hosts wordt toegevoegd.

3.1.2.8. Wachtwoord invoeren voor toegang tot de sleutel
Daarna verschijnt er een terminalvenster waarin om het wachtwoord van de sleutel wordt gevraagd, als je dit eerder hebt ingesteld in stap 3.1.1.3. Bij het invoeren van het wachtwoord gebeurt er visueel niets op het scherm. Als je een fout maakt, kun je de toets Backspace.

3.1.2.9. Welkomstbericht bij succesvolle verbinding
Na succesvolle invoer van het wachtwoord zien we in de terminal een welkomstbericht dat aangeeft dat het externe systeem klaar is om onze commando's uit te voeren.

4. Configuratie van de Wireguard-server
De meest actuele instructies voor het installeren en gebruiken van Wireguard met behulp van de onderstaande scripts kunnen worden bekeken in de repository:
4.1. Installatie van Wireguard
Voer in de terminal de volgende opdrachten in (je kunt ze kopiëren naar het klembord en plakken in de terminal met een klik met de rechtermuisknop):
4.1.1. Repository klonen
Kloon de repository met de installatie-scripts voor Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Ga naar de catalogus met scripts
Ga naar de catalogus met de gekloonde repository
cd wireguard_aws4.1.3. Initiatiescript uitvoeren
Voer als administrator (root-gebruiker) het installatie-script voor Wireguard uit
sudo ./initial.shTijdens de installatie worden bepaalde gegevens gevraagd die nodig zijn voor de configuratie van Wireguard
4.1.3.1. Invoeren van de aansluitpunt
Voer het externe IP-adres en de poort van de Wireguard-server in. Het externe IP-adres van de server hebben we verkregen in stap 2.2.3 en de poort hebben we geopend in stap 2.1.5. Voer ze samen in, gescheiden door een dubbele punt, bijvoorbeeld 4.3.2.1:54321, en druk daarna op de toets Enter
Voorbeelduitvoer:
Voer het eindpunt (extern ip en poort) in formaat [ipv4:poort] (bijv. 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Invoer van het interne IP-adres
Voer het IP-adres van de Wireguard-server in het beveiligde VPN-subnet in; als je niet weet wat dit is, druk dan gewoon op de toets Enter om de standaardwaarde in te stellen (10.50.0.1)
Voorbeelduitvoer:
Voer het serveradres in het VPN-subnet (CIDR-formaat) ([ENTER] ingesteld op standaard: 10.50.0.1):4.1.3.3. Opgeven van de DNS-server
Voer het IP-adres van de DNS-server in, of druk gewoon op de toets Enter om de standaardwaarde in te stellen 1.1.1.1 (Cloudflare publieke DNS)
Voorbeelduitvoer:
Voer het IP-adres van de DNS-server in (CIDR-formaat) ([ENTER] ingesteld op standaard: 1.1.1.1):4.1.3.4. Opgeven van de WAN-interface
Vervolgens moet je de naam van de externe netwerkinterface invoeren die het interne VPN-netwerk zal aanhoren. Druk gewoon op Enter om de standaardwaarde voor AWS in te stellen (eth0)
Voorbeelduitvoer:
Voer de naam van de WAN-netwerkinterface in ([ENTER] ingesteld op standaard: eth0):4.1.3.5. Opgeven van de naam van de client
Voer de naam van de VPN-gebruiker in. Het VPN-server van Wireguard kan niet worden gestart totdat ten minste één client is toegevoegd. In dit geval heb ik de naam ingevoerd Alex@mobile
Voorbeelduitvoer:
Voer de VPN-gebruikersnaam in: Alex@mobileNa dit moet er een QR-code op het scherm verschijnen met de configuratie van de zojuist toegevoegde client, die moet worden gescand met de mobiele Wireguard-client op Android of iOS om deze in te stellen. Ook zal de tekst van het configuratiebestand onder de QR-code worden weergegeven voor handmatige configuratie van clients. Hoe dit te doen zal hieronder worden uitgelegd.

4.2. Toevoegen van een nieuwe VPN-gebruiker
Om een nieuwe gebruiker toe te voegen, moet je het script in de terminal uitvoeren add-client.sh
sudo ./add-client.shHet script vraagt om een gebruikersnaam:
Voorbeelduitvoer:
Voer de VPN-gebruikersnaam in: De gebruikersnaam kan ook als parameter aan het script worden doorgegeven (in dit geval Alex@mobile):
sudo ./add-client.sh Alex@mobileAls resultaat van de uitvoering van het script, zal er een bestand met de configuratie van de client worden aangemaakt in de map met de naam van de client op het pad /etc/wireguard/clients/{ИмяКлиента} er wordt een bestand met de configuratie van de client aangemaakt /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, en op het terminalscherm verschijnt een QR-code voor het instellen van mobiele clients en de inhoud van het configuratiebestand.
4.2.1. Bestand van de gebruikersconfiguratie
Om de inhoud van het .conf-bestand voor handmatige clientconfiguratie op het scherm weer te geven, kan je de volgende opdracht gebruiken cat
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.confresultaat van de uitvoering:
[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:54321Beschrijving van het configuratiebestand van de client:
[Interface]
PrivateKey = Privé sleutel van de client
Address = IP-adres van de client
DNS = DNS gebruikt door de client
[Peer]
PublicKey = Publieke sleutel van de server
PresharedKey = Gedeelde sleutel tussen server en client
AllowedIPs = Toegestane adressen voor verbinding (alles - 0.0.0.0/0, ::/0)
Endpoint = IP-adres en poort voor verbinding4.2.2. QR-code van de configuratie van de client
Je kunt de QR-code van de configuratie voor de eerder gemaakte client op het terminalscherm tonen met behulp van het commando qrencode -t ansiutf8 (in dit voorbeeld wordt de client met de naam Alex@mobile gebruikt):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Configuratie van VPN-clients
5.1. Configuratie van de mobiele Android-client
De officiële Wireguard-client voor Android kan
Daarna moet je de configuratie importeren door de QR-code van de clientconfiguratie te scannen (zie punt 4.2.2) en geef het een naam:

Na succesvolle import van de configuratie kan de VPN-tunnel worden ingeschakeld. Een succesvolle verbinding wordt aangegeven door het sleutelicoon in de systeemstatusbalk van Android.

5.2. Configuratie van de Windows-client
Eerst moet het programma worden gedownload en geïnstalleerd — dit is de Wireguard-client voor Windows.
5.2.1. Aanmaken van een configuratiebestand voor import
Klik met de rechtermuisknop en maak een tekstbestand op het bureaublad.

5.2.2. Kopiëren van de inhoud van het configuratiebestand vanaf de server
Vervolgens gaan we terug naar de Putty-terminal en worden de inhoud van het configuratiebestand van de gewenste gebruiker weergegeven, zoals beschreven in stap 4.2.1.
Daarna markeer je met de rechtermuisknop de configuratietekst in de Putty-terminal, deze wordt automatisch gekopieerd naar het klembord na het markeren.

5.2.3. Kopiëren van de configuratie naar het lokale configuratiebestand
Na dit keer keren we terug naar het eerder aangemaakte tekstbestand op ons bureaublad en plakken we de configuratietekst vanuit het klembord.

5.2.4. Opslaan van het lokale configuratiebestand
We slaan het bestand op met de extensie .conf (in dit geval met de naam london.conf)

5.2.5. Importeren van het lokale configuratiebestand
Vervolgens moet het configuratiebestand in het programma TunSafe worden geïmporteerd.

5.2.6. Instellen van de VPN-verbinding
Kies dit configuratiebestand en verbind door op de knop te drukken. Verbinden.

6. Controle van de verbindingssucces
Om de succes van de verbinding via de VPN-tunnel te controleren, moet je een browser openen en de website bezoeken

Het weergegeven IP-adres moet overeenkomen met het IP-adres dat we in stap 2.2.3 hebben ontvangen.
Als dat het geval is, werkt de VPN-tunnel succesvol.
In de Linux-terminal kun je je IP-adres controleren door het commando in te voeren:
curl http://zx2c4.com/ipOf je kunt gewoon naar een pornosite gaan, als je in Kazachstan bent.
Bron: habr.com





