Hvorfor?
Med den stigende censur af internettet fra autoritære regimer, blokeres der stadig flere nyttige internetsider og ressourcer, herunder dem med teknisk information.
Dermed bliver det umuligt at bruge internettet fuldt ud, og der krænkes den fundamentale ret til ytringsfrihed, som er sikret i .
Artikel 19
Enhver har ret til at have frit valg af overbevisninger samt til frit at ytre dem; denne ret inkluderer friheden til uforhindret at fastholde sine overbevisninger og friheden til at søge, modtage og sprede information og idéer med ethvert middel og uafhængigt af statsgrænser.
I denne guide vil vi på 6 trin opsætte vores egen gratis* baseret på teknologi , i cloud-infrastruktur (AWS), ved hjælp af en gratis konto (i 12 måneder), på en instans (virtuel maskine) drevet af .
Jeg har forsøgt at gøre denne trin-for-trin vejledning så brugervenlig som muligt for folk, der er langt fra IT. Det eneste, der kræves, er tålmodighed til at gentage de nedenstående trin.
Bemærk
- AWS tilbyder i 12 måneder, med en grænse på 15 gigabyte trafik om måneden.
- Den mest opdaterede version af denne guide findes på adressen
Trin
- Registrering af en gratis AWS-konto
- Oprettelse af en AWS-instans
- Tilslutning til AWS-instansen
- Konfiguration af Wireguard
- Konfiguration af VPN-klienter
- Kontrol af korrekt installation af VPN
Nyttige links
1. Registrering af AWS-konto
For at registrere en gratis AWS-konto kræves et rigtig telefonnummer og et betalingsdygtigt kreditkort fra Visa eller Mastercard. Jeg anbefaler at bruge virtuelle kort, som gratis tilbydes af eller . For at verificere kortets gyldighed, trækkes der 1$, som senere refunderes.
1.1. Åbning af AWS administrationskonsol
Åbn en browser og gå til adressen:
Klik på knappen 'Registrering'

1.2. Udfyldelse af personlige oplysninger
Udfyld oplysningerne og klik på knappen 'Fortsæt'

1.3. Udfyldelse af kontaktoplysninger
Udfyld kontaktoplysningerne.

1.4. Angivelse af betalingsoplysninger.
Kortnummer, udløbsdato og kortindehaverens navn.

1.5. Kontobekræftelse
I dette trin bekræftes telefonnummeret, og der trækkes direkte 1$ fra betalingskortet. På computerskærmen vises en 4-siffret kode, og det angivne telefonnummer modtager et opkald fra Amazon. Under opkaldet skal koden, der vises på skærmen, indtastes.

1.6. Valg af tarifplan.
Vi vælger — Basisplan (gratis)

1.7. Login til kontrolpanelet

1.8. Valg af datacenterplacering

1.8.1. Test af hastighed
Før vi vælger datacentret, anbefales det at teste hastigheden til de nærmeste datacentre gennem adgangshastigheden til de nærmeste datacentre. Resultaterne i min lokation er:
- Singapore

- Paris

- Frankfurt

- Stockholm

- London

Det datacenter i London viser de bedste hastighedsresultater. Derfor valgte jeg det til den videre opsætning.
2. Oprettelse af AWS-instans
2.1 Oprettelse af virtuel maskine
2.1.1. Valg af instanstype
Som standard er instansen t2.micro valgt, og den er det, vi har brug for, så vi klikker blot på knappen Næste: Konfigurér instansdetaljer

2.1.2. Konfiguration af instansparametre
Vi vil i fremtiden tilslutte vores instans en permanent offentlig IP, så på dette trin frakobler vi automatisk tildeling af offentlig IP og klikker på knappen Næste: Tilføj lager

2.1.3. Tilslutning af lager
Vi angiver størrelsen på "harddisken". 16 gigabyte er tilstrækkeligt til vores behov, og vi klikker på knappen Næste: Tilføj tags

2.1.4. Konfiguration af tags
Hvis vi skulle oprette flere instanser, kunne de grupperes efter tags for at lette administrationen. I dette tilfælde er denne funktionalitet unødvendig, så vi klikker straks på knappen Næste: Konfigurér sikkerhedsgruppe

2.1.5. Åbning af porte
I dette trin konfigurerer vi firewall'en ved at åbne de nødvendige porte. Sættet af åbne porte kaldes "Sikkerhedsgruppe". Vi skal oprette en ny sikkerhedsgruppe, give den et navn, en beskrivelse, tilføje en UDP-port (Brugerdefineret UDP-regel), og i feltet Portområde skal nummeret på porten tildeles fra intervallet 49152—65535. I dette tilfælde valgte jeg portnummeret 54321.

Når de nødvendige oplysninger er udfyldt, klikker vi på knappen Review and Launch
2.1.6. Gennemgang af alle indstillinger
På denne side gennemgås alle indstillinger for vores instans, kontroller om alt er i orden, og klik på knappen Lancér

2.1.7. Oprettelse af adgangsnøgler
Here a dialog box appears, offering either to create or add an existing SSH key, which we will use later to connect remotely to our instance. We select the option "Create a new key pair" to create a new key. We set its name and press the button Download Key Pair, to download the created keys. Save them in a secure location on your local computer's disk. After downloading — press the button Launch Instances

2.1.7.1. Saving Access Keys
This shows the stage of saving the created keys from the previous step. After we click the button Download Key Pair, the key is saved as a certificate file with the extension *.pem. In this case, I named it wireguard-awskey.pem

2.1.8. Review of Instance Creation Results
Next, we see a message about the successful launch of the instance we just created. We can go to the list of our instances by clicking the button View instances

2.2. Creating an External IP Address
2.2.1. Starting External IP Creation
Next, we need to create a permanent external IP address through which we will connect to our VPN server. For this, in the navigation panel on the left side of the screen, we need to select the item Elastic IPs from the category NETWORK & SECURITY and click the button Allocate new address

2.2.2. Configuring External IP Creation
In the next step, we need to ensure that the option Amazon pool (enabled by default) is selected, and we click the button Allocate

2.2.3. Review of External IP Creation Results
On the next screen, we will see the external IP address we received. It is recommended to remember it, or better yet, to write it down. We will need it repeatedly during the further configuration and use of the VPN server. In this guide, as an example, I use the IP address 4.3.2.1. Once we have recorded the address, we click the button Close

2.2.4. List of External IP Addresses
Next, we see a list of our permanent public IP addresses (elastic IP).

2.2.5. Assigning an External IP to an Instance
In this list, we select the obtained IP address and right-click to bring up the dropdown menu. In it, we select the item Associate address, to assign it to the instance we created earlier.

2.2.6. Configuring External IP Assignment
In the next step, we select our instance from the dropdown list and click the button Associate

2.2.7. Review of External IP Assignment Results
Efter dette kan vi se, at vores instans er knyttet til vores faste offentlige IP-adresse og dens private IP-adresse.

Nu kan vi forbinde til vores nyoprettede instans udefra, fra vores computer via SSH.
3. Forbindelse til AWS-instansen
— en sikker protokol til fjernstyring af computerudstyr.
3.1. Forbindelse via SSH fra en Windows-computer
For at forbinde fra en Windows-computer skal du først downloade og installere programmet .
3.1.1. Import af privat nøgle til Putty
3.1.1.1. Efter installation af Putty skal du starte værktøjet PuTTYgen, der følger med, for at importere certifikatnøglen i PEM-format til et format, der kan bruges i Putty. Vælg punktet i den øverste menu Conversions->Import Key

3.1.1.2. Valg af AWS-nøgle i PEM-format
Vælg nu nøglen, som vi tidligere gemte i trin 2.1.7.1, i vores tilfælde hedder den wireguard-awskey.pem

3.1.1.3. Angivelse af importindstillinger for nøglen
I dette trin skal vi angive en kommentar til denne nøgle (beskrivelse) og angive et kodeord og dets bekræftelse for sikkerhedens skyld. Det vil blive anmodet om ved hver forbindelse. På denne måde beskytter vi nøglen med et kodeord mod utilsigtet brug. Det er muligt ikke at angive et kodeord, men det er mindre sikkert, hvis nøglen skulle komme i de forkerte hænder. Tryk derefter på knappen Gem privat nøgle

3.1.1.4. Gemme den importerede nøgle
Der vises et dialogvindue til filgemning, og vi gemmer vores private nøgle som en fil med udvidelsen .ppk, der kan bruges i programmet Putty.
Angiv navnet på nøglen (i vores tilfælde wireguard-awskey.ppk) og tryk på knappen Save.

3.1.2. Oprettelse og konfiguration af forbindelsen i Putty
3.1.2.1. Oprettelse af forbindelse
Åbn programmet Putty, vælg kategorien Session (den er åbnet som standard) og indtast den offentlige IP-adresse på vores server i feltet Værtsnavn , som vi fik i trin 2.2.3. Indtast et vilkårligt navn til vores forbindelse i feltet Gemte session (i mit tilfælde wireguard-aws-london), og tryk derefter på knappen Gem for at gemme de ændringer, vi har foretaget.

3.1.2.2. Konfiguration af automatisk login for brugeren
Derefter i kategorien Connection, vælg underkategorien Data og indtast brugernavnet i feltet Auto-login brugernavn , det er standardbrugeren for instansen på AWS med Ubuntu. ubuntu 3.1.2.3. Valg af privat nøgle til SSH-forbindelsen

Derefter går vi til underkategorien
Connection/SSH/Auth og ved siden af feltet og ved siden af feltet Privat nøglefil til godkendelse klik på knappen Gennemse… for at vælge filen med nøglecertifikatet.

3.1.2.4. Åbning af den importerede nøgle
Angiv den nøgle, vi importerede tidligere i trin 3.1.1.4, i vores tilfælde er det filen wireguard-awskey.ppk, og klik på knappen Åbn.

3.1.2.5. Gemme indstillinger og starte opkobling
Når vi returnerer til kategorisiden Session klik endnu en gang på knappen Gem, for at gemme de ændringer, vi tidligere har foretaget i de forrige trin (3.1.2.2 — 3.1.2.4). Og så klikker vi på knappen Åben for at åbne den fjernforbindelse, vi har oprettet og konfigureret via SSH.

3.1.2.7. Opsætning af tillid mellem værter
Ved næste skridt, ved første forsøg på at forbinde, får vi en advarsel, fordi tilliden mellem de to computere ikke er konfigureret, og der bliver spurgt, om vi vil stole på den fjerntliggende computer. Vi vil trykke på knappen Ja, hvilket tilføjer den til listen over betroede værter.

3.1.2.8. Indtastning af adgangskode til nøglen
Herefter åbner terminalvinduet, hvor adgangskoden til nøglen bliver anmodet, hvis du har oprettet en tidligere i trin 3.1.1.3. Når adgangskoden indtastes, sker der ingen handlinger på skærmen. Hvis du laver en fejl, kan du bruge tasten Backspace.

3.1.2.9. Velkomstbesked om vellykket forbindelse
Efter en vellykket indtastning af adgangskoden vises en velkomsttekst i terminalen, der fortæller, at det fjerntliggende system er klar til at udføre vores kommandoer.

4. Konfiguration af Wireguard-serveren
Den mest relevante vejledning til installation og brug af Wireguard med nedenstående scripts kan ses i repositoryet:
4.1. Installation af Wireguard
I terminalen indtaster vi følgende kommandoer (du kan kopiere dem til udklipsholderen og indsætte dem i terminalen ved at højreklikke):
4.1.1. Kloning af repository
Vi kloner repositoryet med installationsscripts til Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Skift til mappen med scripts
Skift til mappen med det klonede repository
cd wireguard_aws4.1.3. Kørsel af initialiseringsscriptet
Kør installationsscriptet for Wireguard som administrator (root-bruger)
sudo ./initial.shUnder installationen vil der blive anmodet om bestemte oplysninger, der er nødvendige for at konfigurere Wireguard
4.1.3.1. Indtastning af tilslutningspunkt
Indtast den eksterne IP-adresse og den åbne port på Wireguard-serveren. Den eksterne IP-adresse fik vi i trin 2.2.3, og porten åbnede vi i trin 2.1.5. Angiv dem samlet adskilt af et kolon, for eksempel 4.3.2.1:54321, og derefter tryk på tasten Enter
Eksempel på output:
Indtast endpoint (ekstern IP og port) i formatet [ipv4:port] (f.eks. 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Indtast intern IP-adresse
Indtast IP-adressen på Wireguard-serveren i det beskyttede VPN-subnet. Hvis du ikke ved, hvad det er, skal du blot trykke på Enter for at bruge standardværdien (10.50.0.1)
Eksempel på output:
Indtast serveradressen i VPN-subnettet (CIDR-format) ([ENTER] sætter til standard: 10.50.0.1):4.1.3.3. Angiv DNS-server
Indtast IP-adressen på DNS-serveren, eller tryk blot på Enter for at bruge standardværdien 1.1.1.1 (Cloudflare offentlig DNS)
Eksempel på output:
Indtast IP-adressen på DNS-serveren (CIDR-format) ([ENTER] sætter til standard: 1.1.1.1):4.1.3.4. Angiv WAN-interface
Dernæst skal du indtaste navnet på det eksterne netværksinterface, der skal lytte til det interne VPN-netværksinterface. Tryk blot på Enter for at bruge standardværdien for AWS (eth0)
Eksempel på output:
Indtast navnet på WAN-netværksinterfacet ([ENTER] sætter til standard: eth0):4.1.3.5. Angiv klientnavn
Indtast VPN-brugerens navn. Wireguard VPN-serveren kan ikke starte, før der er tilføjet mindst én klient. I dette tilfælde indtastede jeg navnet Alex@mobile
Eksempel på output:
Indtast VPN-brugernavn: Alex@mobileEfter dette bør QR-koden med konfigurationen af den lige tilføjede klient vises på skærmen, som skal scannes med Wireguard-mobilklienten på Android eller iOS for at konfigureres. Derudover vil teksten i konfigurationsfilen blive vist under QR-koden til manuel konfiguration af klienter. Hvordan man gør dette vil blive forklaret nedenfor.

4.2. Tilføjelse af ny VPN-bruger
For at tilføje en ny bruger skal du køre skriptet i terminalen add-client.sh
sudo ./add-client.shSkriptet beder om brugernavnet:
Eksempel på output:
Indtast VPN-brugernavn: Brugernes navne kan også gives som et parameter til skriptet (i dette tilfælde Alex@mobile):
sudo ./add-client.sh Alex@mobileSom resultat af at skriptet kører, vil der i mappen med klientens navn blive oprettet en fil med klientens konfiguration /etc/wireguard/clients/{ИмяКлиента} , og der vil blive vist en QR-kode på terminalskærmen til konfiguration af mobile klienter samt indholdet af konfigurationsfilen. /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf4.2.1. Filen med brugerens konfiguration
Du kan vise indholdet af .conf-filen på skærmen til manuel konfiguration af klienten ved hjælp af kommandoen
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf cat
resultatet af udførelsen:udførelsesresultat:
[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:54321Beskrivelse af klientkonfigurationsfilen:
[Interface]
PrivateKey = Klientens private nøgle
Address = Klientens IP-adresse
DNS = DNS brugt af klienten
[Peer]
PublicKey = Serverens offentlige nøgle
PresharedKey = Fælles nøgle for server og klient
AllowedIPs = Tilladte adresser for tilslutning (alle - 0.0.0.0/0, ::/0)
Endpoint = IP-adresse og port for tilslutning4.2.2. QR-kode for klientkonfiguration
QR-koden for konfigurationen af den tidligere oprettede klient kan vises på terminalen ved hjælp af kommandoen qrencode -t ansiutf8 (i dette eksempel bruges klienten med navnet Alex@mobile):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Konfiguration af VPN-klienter
5.1. Opsætning af mobilklient til Android
Den officielle Wireguard-klient til Android kan
Efterfølgende skal konfigurationen importeres ved at scanne QR-koden med klientkonfigurationen (se punkt 4.2.2) og give den et navn:

Efter en vellykket import af konfigurationen kan VPN-tunnelen aktiveres. En succesfuld forbindelse vil blive angivet af et ikon i systemstatuslinjen på Android.

5.2. Opsætning af Windows-klienten
Først skal du downloade og installere programmet — det er Wireguard-klienten til Windows.
5.2.1. Oprettelse af konfigurationsfil til import
Højreklik for at oprette en tekstfil på skrivebordet.

5.2.2. Kopiering af indholdet af konfigurationsfilen fra serveren
Derefter vender vi tilbage til Putty-terminalen og viser indholdet af konfigurationsfilen for den ønskede bruger, som beskrevet i trin 4.2.1.
Derefter markerer du teksten i konfigurationen i Putty-terminalen med højre musetast; når markeringen er afsluttet, kopieres den automatisk til udklipsholderen.

5.2.3. Kopiering af konfigurationen til lokal konfigurationsfil
Efter dette vender vi tilbage til den tekstfil, vi tidligere oprettede på skrivebordet, og indsætter teksten fra udklipsholderen.

5.2.4. Gemme den lokale konfigurationsfil
Gem filen med filtypen .conf (i dette tilfælde med navnet london.conf)

5.2.5. Importere den lokale konfigurationsfil
Derefter skal konfigurationsfilen importeres i programmet TunSafe.

5.2.6. Oprettelse af VPN-forbindelse
Vælg denne konfigurationsfil og forbind ved at trykke på knappen Forbind.

6. Kontrol af tilslutningssucces
For at kontrollere tilslutningssucces gennem VPN-tunnelen skal du åbne din browser og gå til hjemmesiden

Den viste IP-adresse skal være den samme som den, vi fik i trin 2.2.3.
Hvis det er tilfældet, fungerer VPN-tunnelen korrekt.
Fra terminalen i Linux kan du kontrollere din IP-adresse ved at indtaste kommandoen:
curl http://zx2c4.com/ipEller du kan bare gå på en pornosite, hvis du befinder dig i Kasakhstan.
Kilde: habr.com





