De ce?
Odată cu creșterea cenzurii internetului de către regimurile autoritare, tot mai multe resurse și site-uri utile de pe internet sunt blocate, inclusiv cele cu informații tehnice.
Astfel, devine imposibil să folosești internetul în mod corespunzător, iar dreptul fundamental la libertatea de exprimare este încălcat, așa cum este stipulat în .
Articolul 19
Orice persoană are dreptul la libertatea de opinie și la libertatea de exprimare; acest drept include libertatea de a deține opiniile sale fără interferență și libertatea de a căuta, primi și difuza informații și idei prin orice mijloace, indiferent de frontierele statelor.
În acest ghid, vom desfășura propriul nostru serviciu gratuit* bazat pe tehnologia , în infrastructura cloud (AWS), folosind un cont gratuit (valabil 12 luni), pe o instanță (virtual machine) care rulează .
Am încercat să fac acest ghid pas cu pas cât mai prietenos pentru cei care sunt departe de IT. Singurul lucru necesar este răbdarea de a repeta pașii descriși mai jos.
Notă
- AWS oferă pe o perioadă de 12 luni, cu o limită de 15 gigabytes de trafic pe lună.
- Cea mai recentă versiune a acestui ghid se găsește la adresa
Etape
- Înregistrarea unui cont gratuit AWS
- Crearea unei instanțe AWS
- Conectarea la instanța AWS
- Configurarea Wireguard
- Configurarea clienților VPN
- Verificarea corectitudinii instalării VPN
Linkuri utile
1. Înregistrarea unui cont AWS
Pentru a înregistra un cont gratuit AWS, este necesar un număr de telefon real și o carte de credit Visa sau Mastercard funcțională. Îți recomand să folosești cardurile virtuale care sunt oferite gratuit de sau . Pentru a verifica validitatea cardului, la înregistrare se rețin 1$, sumă ce va fi returnată ulterior.
1.1. Deschiderea consolei de management AWS
Este necesar să deschizi un browser și să accesezi adresa:
Apasă pe butonul „Înregistrare”

1.2. Completarea datelor personale
Completează informațiile și apasă pe butonul „Continuați”

1.3. Completarea informațiilor de contact
Completează datele de contact.

1.4. Introducerea informațiilor de plată.
Numărul cardului, data expirării și numele titularului cardului.

1.5. Confirmarea contului
În această etapă se confirmă numărul de telefon și se deduce suma de 1$ de pe cardul de plată. Pe ecranul computerului apare un cod de 4 cifre, iar pe telefonul specificat se primește un apel din partea Amazon. În timpul apelului, este necesar să introduceți codul afișat pe ecran.

1.6. Alegerea planului tarifar.
Alegem — Planul de bază (gratuit)

1.7. Accesarea consolei de management

1.8. Alegerea locației centrului de date

1.8.1. Testarea vitezei
Înainte de a alege centrul de date, se recomandă testarea prin viteza de acces la cele mai apropiate centre de date, în locația mea rezultatele sunt următoarele:
- Singapore

- Paris

- Frankfurt

- Stokholm

- Londra

Centrul de date din Londra oferă cele mai bune rezultate de viteză. De aceea, l-am ales pentru configurarea ulterioară.
2. Crearea unei instanțe AWS
2.1 Crearea unei mașini virtuale
2.1.1. Alegerea tipului de instanță
Implicit, este selectată instanța t2.micro, care ne este necesară, deci apăsăm butonul Next: Configure Instance Details

2.1.2. Configurarea parametrilor instanței
Mai departe vom conecta un IP public permanent la instanța noastră, prin urmare în acest moment dezactivăm alocarea automată a IP-ului public și apăsăm butonul Next: Add Storage

2.1.3. Conectarea stocării
Specificăm dimensiunea „hard disk-ului”. Pentru scopurile noastre, 16 gigabyți sunt suficiente, și apăsăm butonul Next: Add Tags

2.1.4. Configurarea etichetelor
Dacă am crea mai multe instanțe, le-am putea grupa după etichete pentru a ușura administrarea. În acest caz, această funcționalitate este redundantă, așa că apăsăm imediat butonul Next: Configure Security Group

2.1.5. Deschiderea porturilor
În această etapă configurăm firewall-ul, deschizând porturile necesare. Setul de porturi deschise se numește „Grup de securitate”. Trebuie să creăm un nou grup de securitate, să-i dăm un nume, o descriere, să adăugăm port UDP (Custom UDP Rule), în câmpul Rort Range trebuie să specificăm numărul portului din intervalul 49152—65535. În acest caz, am ales numărul portului 54321.

După completarea datelor necesare, apăsăm pe butonul Review and Launch
2.1.6. Revizuirea tuturor setărilor
În această pagină avem o revizuire a tuturor setărilor instanței noastre, verificăm dacă toate setările sunt în regulă și apăsăm butonul Lansează

2.1.7. Crearea cheilor de acces
Următorul apare un dialog care oferă opțiunea de a crea sau de a adăuga o cheie SSH existentă, care ulterior ne va permite să ne conectăm la instanța noastră de la distanță. Alegem opțiunea „Creează un nou set de chei” pentru a crea o cheie nouă. Îi atribuim un nume și facem clic pe butonul Descarcă setul de chei, pentru a descărca cheile generate. Salvați-le într-un loc sigur pe hard diskul computerului local. După ce le-ați descărcat, apăsați butonul Lansați instanțele

2.1.7.1. Salvarea cheilor de acces
Aici este prezentat pasul de salvare a cheilor create din etapa anterioară. După ce am apăsat butonul Descarcă setul de chei, cheia este salvată ca un fișier certificat cu extensia *.pem. În acest caz, i-am dat numele wireguard-awskey.pem

2.1.8. Revizuirea rezultatelor creării instanței
Apoi vedem un mesaj de succes pentru lansarea instanței pe care tocmai am creat-o. Putem accesa lista instanțelor noastre apăsând pe butonul Vizualizați instanțele

2.2. Crearea unei adrese IP externe
2.2.1. Inițierea creării unei adrese IP externe
Apoi trebuie să creăm o adresă IP externă statică, prin care ne vom conecta la serverul nostru VPN. Pentru aceasta, în bara de navigare din partea stângă a ecranului, trebuie să selectăm opțiunea Elastic IPs din categoria REȚEA & SECURITATE și facem clic pe butonul Atribuie o nouă adresă

2.2.2. Configurarea creării unei adrese IP externe
În pasul următor, trebuie să ne asigurăm că opțiunea Amazon pool (activată implicit), este selectată, și facem clic pe butonul Atribuie

2.2.3. Revizuirea rezultatelor creării unei adrese IP externe
Pe ecranul următor va apărea adresa IP externă obținută. Este recomandat să o rețineți, iar mai bine chiar să o notați. Ne va fi utilă din nou în procesul de configurare și utilizare a serverului VPN. În acest ghid, folosesc ca exemplu adresa IP 4.3.2.1. După ce ați notat adresa, faceți clic pe butonul Închide

2.2.4. Lista adreselor IP externe
Apoi ne deschide o listă cu adresele noastre IP publice permanente (IP elastice).

2.2.5. Atribuirea adresei IP instanței
În această listă, selectăm adresa IP obținută și facem clic dreapta pentru a deschide un meniu derulant. Acolo alegem opțiunea Atribuie adresă, pentru a o aloca instanței create anterior.

2.2.6. Configurarea alocării adresei IP externe
În pasul următor, alegem din lista derulantă instanța noastră și facem clic pe butonul Asociază

2.2.7. Revizuirea rezultatelor asocierii adresei IP externe
După aceasta, putem observa că instanța noastră este asociată cu adresa noastră IP publică statică și cu adresa sa IP privată.

Acum putem să ne conectăm la noua noastră instanță de afară, de pe computerul nostru prin SSH.
3. Conectarea la instanța AWS
— este un protocol sigur de gestionare la distanță a dispozitivelor informatice.
3.1. Conectarea prin SSH de pe un computer Windows
Pentru a ne conecta de pe un computer cu Windows, trebuie să descărcăm și să instalăm programul .
3.1.1. Importarea cheii private pentru Putty
3.1.1.1. După instalarea Putty, trebuie să lansăm utilitarul PuTTYgen care vine împreună cu acesta, pentru a importa cheia certificatului din format PEM, într-un format utilizabil în programul Putty. Pentru aceasta, în meniul de sus selectăm opțiunea Conversions->Import Key

3.1.1.2. Selectarea cheii AWS în format PEM
Apoi, selectăm cheia pe care am salvat-o anterior în etapa 2.1.7.1, în cazul nostru denumirea ei este wireguard-awskey.pem

3.1.1.3. Setarea parametrilor pentru importul cheii
În acest pas, trebuie să specificăm un comentariu pentru această cheie (descriere) și să setăm o parolă pentru securitate și confirmarea acesteia. Aceasta va fi solicitată la fiecare conectare. Astfel, protejăm cheia cu o parolă împotriva utilizării necorespunzătoare. Parola poate fi omisă, dar aceasta este mai puțin sigură, în cazul în care cheia ajunge în mâinile altora. Apoi, apăsăm butonul Save private key

3.1.1.4. Salvarea cheii importate
Se deschide o fereastră de dialog pentru salvarea fișierului, și salvăm cheia noastră privată ca un fișier cu extensia .ppk, utilizabil în programul Putty.
Specificăm denumirea cheii (în cazul nostru wireguard-awskey.ppk) și apăsăm butonul Salvați.

3.1.2. Crearea și configurarea unei conexiuni în Putty
3.1.2.1. Crearea conexiunii
Deschidem programul Putty, alegem categoria Sesiune (care este deschisă implicit) și în câmpul Host Name introducem adresa IP publică a serverului nostru, pe care am obținut-o în pasul 2.2.3. În câmpul Saved Session introducem un nume aleatoriu pentru conexiunea noastră (în cazul meu wireguard-aws-london), și apoi apăsăm butonul Salvează pentru a salva modificările efectuate.

3.1.2.2. Configurarea autentificării automate a utilizatorului
Apoi, în categoria Connection, alegem subcategoria Data și în câmpul Auto-login username introducem numele utilizatorului ubuntu — acesta este utilizatorul standard al instanței pe AWS cu Ubuntu.

3.1.2.3. Selectarea cheii private pentru conexiunea prin SSH
Apoi, trecem la subcategoria Connection/SSH/Auth și lângă câmpul Fișierul cheii private pentru autentificare apăsați pe buton Răsfoiți… pentru a selecta fișierul cu certificatul cheii.

3.1.2.4. Deschiderea cheii importate
Indicați cheia, importată anterior la etapa 3.1.1.4; în cazul nostru, acesta este fișierul wireguard-awskey.ppk, și apăsăm butonul Deschideți.

3.1.2.5. Salvarea setărilor și inițierea conexiunii
Întorcându-ne pe pagina categoriei Sesiune apăsați din nou butonul Salvează, pentru a salva modificările efectuate anterior în pașii anteriori (3.1.2.2 — 3.1.2.4). Apoi, apăsați butonul Open pentru a deschide conexiunea la distanță creată și configurată de noi prin SSH.

3.1.2.7. Configurarea încrederii între gazde
La următorul pas, la prima tentativă de conectare, primim un avertisment, că nu avem configurată încrederea între cele două calculatoare, și ne cere să acceptăm încrederea în calculatorul la distanță. Vom apăsa butonul Da, adăugând astfel la lista gazdelor de încredere.

3.1.2.8. Introducerea parolei pentru accesul la cheie
După aceea, se deschide o fereastră de terminal, unde se solicită parola pentru cheie, dacă a fost setată anterior la pasul 3.1.1.3. La introducerea parolei, nu se va vedea nimic pe ecran. Dacă ați greșit, puteți folosi tasta Backspace.

3.1.2.9. Mesaj de bun venit privind conectarea reușită
După introducerea cu succes a parolei, în terminal vedem un text de bun venit, care ne informează că sistemul la distanță este pregătit să execute comenzile noastre.

4. Configurarea serverului Wireguard
Cea mai actualizată instrucțiune pentru instalarea și utilizarea Wireguard cu scripturile descrise mai jos poate fi consultată în repository:
4.1. Instalarea Wireguard
În terminal, introducem următoarele comenzi (puteți copia în clipboard și lipi în terminal apăsând click dreapta):
4.1.1. Clonarea repository-ului
Clonăm repository-ul cu scripturile de instalare Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Accesarea directorului cu scripturi
Accesăm directorul cu repository-ul clonat
cd wireguard_aws4.1.3. Pornirea scriptului de inițializare
Pornim scriptul de instalare Wireguard cu drepturi de administrator (utilizator root)
sudo ./initial.shÎn timpul instalării, vor fi solicitate anumite date necesare pentru configurarea Wireguard
4.1.3.1. Introducerea punctului de conectare
Introduceți adresa IP externă și portul deschis al serverului Wireguard. Adresa IP externă a serverului a fost obținută la pasul 2.2.3, iar portul a fost deschis la pasul 2.1.5. Indicați-le împreună, separându-le prin doi puncte, de exemplu 4.3.2.1:54321, și după aceea apasați tasta Enter
Exemplu de ieșire:
Introduceți punctul final (IP extern și port) în formatul [ipv4:port] (de exemplu 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Introducerea adresei IP interne
Introduceți adresa IP a serverului Wireguard în subrețeaua VPN protejată, dacă nu știți ce este, pur și simplu apăsați tasta Enter pentru a seta valoarea implicită (10.50.0.1)
Exemplu de ieșire:
Introduceți adresa serverului în subrețeaua VPN (format CIDR) ([ENTER] setată pe implicit: 10.50.0.1):4.1.3.3. Specificarea serverului DNS
Introduceți adresa IP a serverului DNS, sau pur și simplu apăsați tasta Enter pentru a seta valoarea implicită 1.1.1.1 (DNS public Cloudflare)
Exemplu de ieșire:
Introduceți adresa IP a serverului DNS (format CIDR) ([ENTER] setată pe implicit: 1.1.1.1):4.1.3.4. Specificarea interfeței WAN
Apoi, trebuie să introduceți numele interfeței de rețea externe, care va asculta interfața de rețea internă VPN. Pur și simplu apăsați Enter pentru a seta valoarea implicită pentru AWS (eth0)
Exemplu de ieșire:
Introduceți numele interfeței de rețea WAN ([ENTER] setată pe implicit: eth0):4.1.3.5. Specificarea numelui clientului
Introduceți numele utilizatorului VPN. Problema este că serverul VPN Wireguard nu poate porni, până când nu este adăugat cel puțin un client. În acest caz, am introdus numele Alex@mobile
Exemplu de ieșire:
Introduceți numele utilizatorului VPN: Alex@mobileDupă aceasta, pe ecran ar trebui să apară un cod QR cu configurația clientului adăugat, care trebuie scanat cu aplicația mobilă Wireguard pe Android sau iOS, pentru configurare. De asemenea, sub codul QR va apărea textul fișierului de configurare în cazul în care doriți configurare manuală a clienților. Cum se va face acest lucru va fi explicat mai jos.

4.2. Adăugarea unui nou utilizator VPN
Pentru a adăuga un nou utilizator, trebuie să executați scriptul în terminal add-client.sh
sudo ./add-client.shScriptul solicită numele utilizatorului:
Exemplu de ieșire:
Introduceți numele utilizatorului VPN: De asemenea, numele utilizatorului poate fi transmis ca parametru al scriptului (în acest caz Alex@mobile):
sudo ./add-client.sh Alex@mobileÎn urma executării scriptului, în directorul cu numele clientului pe calea /etc/wireguard/clients/{ИмяКлиента} va fi creat un fișier cu configurația clientului /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, iar pe ecranul terminalului va apărea un cod QR pentru configurarea clienților mobili și conținutul fișierului de configurare.
4.2.1. Fișierul de configurare a utilizatorului
Pentru a afișa pe ecran conținutul fișierului .conf, pentru configurarea manuală a clientului, puteți folosi comanda cat
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.confrezultatul execuției:
[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:54321Descrierea fișierului de configurare a clientului:
[Interface]
PrivateKey = Cheia privată a clientului
Address = Adresa IP a clientului
DNS = DNS utilizat de client
[Peer]
PublicKey = Cheia publică a serverului
PresharedKey = Cheia comună a serverului și a clientului
AllowedIPs = Adrese permise pentru conectare (toate - 0.0.0.0/0, ::/0)
Endpoint = Adresa IP și portul pentru conexiune4.2.2. Cod QR al configurației clientului
Pentru a afișa codul QR al configurației pentru clientul creat anterior, se poate utiliza comanda qrencode -t ansiutf8 (în acest exemplu se folosește un client numit Alex@mobile):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Configurarea clienților VPN
5.1. Configurarea clientului mobil Android
Clientul oficial Wireguard pentru Android poate fi
După aceea, trebuie importată configurația, citind codul QR cu configurația clientului (vezi punctul 4.2.2) și dându-i un nume:

După importarea cu succes a configurației, se poate activa tunelul VPN. O notificare de succes va apărea în bara de sistem Android.

5.2. Configurarea clientului Windows
În primul rând, trebuie să descărcați și să instalați programul — acesta este clientul Wireguard pentru Windows.
5.2.1. Crearea fișierului de configurare pentru import
Faceți clic dreapta pentru a crea un fișier text pe desktop.

5.2.2. Copierea conținutului fișierului de configurație de pe server
Apoi, reveniți la terminalul Putty și vizualizați conținutul fișierului de configurare pentru utilizatorul dorit, așa cum este descris în pasul 4.2.1.
Apoi, selectați cu butonul din dreapta textul configurației în terminalul Putty, iar la terminarea selecției se va copia automat în clipboard.

5.2.3. Copierea configurației în fișierul local de configurare
După aceea, revenim la fișierul text creat anterior pe desktop și inserăm în el textul configurației din clipboard.

5.2.4. Salvarea fișierului local de configurare
Salvăm fișierul cu extensia .conf (în acest caz cu numele london.conf)

5.2.5. Importarea fișierului local de configurare
Apoi este necesar să importați fișierul de configurare în programul TunSafe.

5.2.6. Stabilirea conexiunii VPN
Selectați acest fișier de configurare și conectați-vă, apăsând butonul Conectare.

6. Verificarea succesului conexiunii
Pentru a verifica succesul conexiunii prin tunel VPN, trebuie să deschideți un browser și să accesați site-ul

Adresa IP afișată trebuie să coincidă cu cea pe care am obținut-o la etapa 2.2.3.
Dacă este așa, atunci tunelul VPN funcționează cu succes.
Din terminalul Linux, puteți verifica adresa IP, introducând comanda:
curl http://zx2c4.com/ipSau pur și simplu puteți accesa un site pentru adulți, dacă vă aflați în Kazahstan.
Sursa: habr.com





