Kaip nustatyti „WireGuard“ VPN serverį ir klientą „Ubuntu 20.04“.

Nustatykite savarankiškai priglobtą VPN naudodami „Wireguard“.

A VPN (virtualus privatus tinklas) leidžia vartotojui nuotoliniu būdu prisijungti prie privataus tinklo, tarsi vartotojo kompiuteris būtų tiesiogiai prijungtas prie privataus tinklo. Iš pradžių ši technologija buvo sukurta siekiant suteikti nuotolinę prieigą prie įmonės vidinio privataus tinklo darbuotojams, kurie iš tikrųjų nėra vidinio tinklo vietoje.

VPN serveris yra įdiegtas vidinio tinklo vietoje. Šis serveris yra viešajame tinkle ir darbuotojas gali pasiekti jį naudodamas VPN klientą. Norint prisijungti prie VPN serverio, reikalingas autentifikavimas. Ryšys tarp VPN serverio ir VPN kliento yra apsaugotas naudojant tuneliavimo protokolą. Atminkite, kad šis ryšys gali būti arba nešifruotas, tačiau dažniausiai daugelyje VPN protokolų jis yra užšifruotas.

Kitas VPN naudojimo būdas yra gauti anonimiškumą prisijungdami prie interneto arba apeiti geografinius apribojimus, taikomus prisijungiant prie kai kurių svetainių. Tokiais atvejais tinklas, prie kurio vartotojas nori prisijungti, nėra privatus tinklas, o internetas.

Per daugelį metų buvo sukurta daug VPN protokolų. Šie protokolai naudoja skirtingus tuneliavimo protokolus ir šifravimo algoritmus ryšiui tarp serverio ir kliento.

Vienas iš tokių protokolų, kuris pastaruoju metu plačiai naudojamas, yra Vielos apsauga. „Wireguard“ yra lengvesnis, paprastesnis ir našesnis nei gerai žinomi tradiciškai naudojami VPN protokolai, tokie kaip „OpenVPN“, „IPSec“. Jis jau įdiegtas Windows, Mac OS ir daugeliui Linux platinimų. Linux sistemoje jis įgyvendinamas kaip branduolio modulis. Jį galima rasti oficialiose Ubuntu 20.04 saugyklose.

Šiame straipsnyje pamatysime, kaip nustatyti Wireguard VPN serverį ir klientą Ubuntu 20.04.

Montavimas

Šiam straipsniui nustatau Wireguard serverį Ubuntu 20.04 Linode ir Wireguard Client vietiniame kompiuteryje su Ubuntu 20.04.

Paketas vielos apsauga įdiegia ir „Wireguard Server“, ir „Client“. Vykdykite šią komandą tiek serverio, tiek kliento kompiuteryje.

sudo apt install wireguard

Serverio konfigūracija

Saugos raktai

Turime sugeneruoti viešųjų/privačių raktų porų rinkinį siekiant autentifikuoti ir apsaugoti Wireguard ryšį. Tai galima padaryti naudojant šias komandas:

sudo su cd /etc/wireguard umask 077 wg genkey | tee private_key | wg pubkey > public_key

Atminkite, kad visas konfigūravimo užduotis atliekame kaip supervartotojas. Priežastis ta prieiga prie katalogo /etc/wireguard paprastiems vartotojams neleidžiama, o paprastas vartotojas negali pasiekti katalogo tik sudo privilegijomis.

Tada nustatome failo kūrimo kaukę 077. Tai reiškia, kad kai bet koks procesas šiame aplanke sukuria naują failą, jo leidimai bus automatiškai užmaskuoti 077. Pvz. jei šiame aplanke sukuriamas failas su 777 leidimais, jis automatiškai užmaskuojamas ir teisės faktiškai tampa 700. Tai daroma taip, kad tik failo savininkas turėtų visus failo leidimus, o visi kiti neturi.

Kitoje eilutėje generuojame viešųjų/privačių raktų porą serveriui. Jie išsaugomi failuose privatus_raktas ir viešasis_raktas. Norėdami peržiūrėti raktus, paleiskite:

cat private_key cat public_key

Nukopijuokite privatų raktą, jo mums reikia kitame žingsnyje.

Pastaba: Niekada nesidalykite savo privačiu raktu viešai!

Konfigūracijos failas

Sukurkime „Wireguard“ serverio konfigūracijos failą. Galite pasirinkti bet kokį failo pavadinimą. Mes sukursime failą wg0.conf šiame pavyzdyje.

vim wg0.conf

Prie failo pridėkite šiuos dalykus.

[Sąsaja] Adresas = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6lentelės -A FORWARD -i wg0 -j PRIIMTI; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j PRIIMTI; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6lentelės -D PERSIEKTI -i wg0 -j PRIIMTI; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE 

Įklijuokite privatų raktą, kurį anksčiau nukopijavome į 5 aukščiau esančio kodo eilutę.

Turime sukonfigūruoti „Wireguard“ kitame (virtualiame) potinklyje nei serverio IP adresas. Čia aš naudoju 10.20.43.1 serveriui ir naudosiu 10.20.43.2 klientui. Čia galima naudoti bet kurį potinklį. Norėdami gauti serverio ir sąsajos IP adresą, paleiskite:

ifconfig

Atkreipkite dėmesį į serverio IP adresą. Tai būtina konfigūruojant klientą.

Serverio naudojama sąsaja, kaip matyti aukščiau esančiame paveikslėlyje, yra eth0. Sąsajos pavadinimas gali skirtis priklausomai nuo vartotojo tinklo, jis gali būti wlan0 arba wlp2s0 tuo atveju, kai vartotojas yra prisijungęs prie WiFi tinklo naudodamas belaidę kortelę.

Pakeiskite in Iškabinti ir PostDown su jūsų sąsaja; šiame pavyzdyje taip yra eth0.Iškabinti ir PostDown direktyvos naudojamos norint nurodyti, kurios komandos turi būti vykdomos atitinkamai paleidžiant ir sustojus serveriui. Mūsų pavyzdyje mes naudojame iptables komanda IP taisyklėms nustatyti taip, kad serverio IP adresas būtų bendrinamas su klientais. Taisyklės nustos galioti, kai serveris sustos.

Išsaugokite ir išeikite iš failo. Kai naudojate vim, paspauskite Esc, tada įveskite :wq ir paspauskite Įeikite išsaugoti ir išeiti.

Jei naudojate a ufw serverio ugniasienė, turime leisti UDP ryšius su VPN serverio prievadu 51190.

ufw leisti 51190/udp

Paslaugos paleidimas

Dabar, kai konfigūracija atlikta, galime paleisti „Wireguard VPN“ paslaugą.

Norėdami įjungti paslauga, kuri prasidės įkrovos metu, paleiskite:

systemctl įgalinti wg-quick@wg0

Atkreipkite dėmesį, kad čia wg0 yra konfigūracijos failo pavadinimas.

Pradėti paslauga, paleiskite:

paslauga wg-quick@wg0 pradžia

Patvirtinti kad paslauga sėkmingai pradėta:

paslaugos wg-quick@wg0 būsena

Patikrinkite, ar sąsaja Mes sukūrėme konfigūracijos failą pradėjo, naudojant IP komandą.

ip laidą wg0

Dabar Wireguard VPN serveris nustatytas ir veikia. Dabar sukonfigūruokime klientą.

Kliento konfigūracija

„Wireguard“ kliento konfigūracija yra daugiau ar mažiau tokia pati kaip serverio konfigūracija. Sugeneruojame kliento raktus ir sukuriame konfigūracijos failą.

Saugos raktai

Norėdami sugeneruoti viešąjį / privatųjį raktą suporuoti klientui, paleisti:

sudo su cd /etc/wireguard umask 077 wg genkey | tee client_private_key | wg pubkey > kliento_viešasis_raktas

Kliento viešieji ir privatieji raktai dabar generuojami atitinkamai failuose kliento_privatus_raktas ir kliento_viešasis_raktas.

Patikrinkite, ar jie buvo sukurti naudojant katė komandą.

cat client_private_key cat client_public_key

Nukopijuokite rodomą privatų raktą, nes turime jį įtraukti į kliento konfigūracijos failą.

Konfigūracijos failas

Sukurkite konfigūracijos failą bet kokiu norimu vardu. Mes sukursime jį pavadinimu wg0-klientas šiam pavyzdžiui.

vim wg0-client.conf

Pridėkite šią konfigūraciją.

[Sąsaja] # Kliento adreso IP adresas ir privatus raktas = 10.20.43.2/24 PrivateKey = [Peer] # Viešasis raktas, IP adresas ir serverio prievadas PublicKey = Galutinis taškas = :51190 AllowedIPs = 0.0.0.0/0, : :/0

Įveskite kliento potinklio adresą. Kaip aprašyta anksčiau, mes naudojame 10.20.43.2 klientui šiame pavyzdyje.

Pridėkite kliento privatų raktą sugeneruotas ankstesniame žingsnyje į 4 eilutę aukščiau esančiame konfigūracijos kode.

Dalyje „Peer“ pridedame informaciją apie „Wireguard“ VPN serverį norime prisijungti prie.

Įveskite viešąjį serverio raktą. Įveskite serverio IP adresas, kurį anksčiau pažymėjome, ir pervesti nurodytu formatu prieš Galutinis taškas. Tai yra prievadas, kurį nurodėme serverio konfigūracijos faile ir nuo kurio serverio VPN paslauga buvo paleista.

Leidžiami IP adresai turi būti įvesti taip, kaip nurodyta (0.0.0.0/0), kad bet kokia kliento naudojama dinaminio viešo IP užklausa visada būtų persiųsta į VPN serverį.

Išsaugokite ir išeikite iš failo. Kai naudojate vim, paspauskite Esc, tada įveskite :wq ir paspauskite Įeikite išsaugoti ir išeiti.

Įjunkite klientų aptarnavimą bėgti su kiekviena įkrova ir pradėti jį.

systemctl įgalinti wg-quick@wg-client paslaugą wg-quick@wg-client start

Patvirtinti jei paslauga pradėta teikti.

paslaugos wg-quick@wg-kliento būsena

Lygiavertės programos pridėjimas prie serverio

Dabar turime VPN serverį ir klientą ir veikia. Tačiau saugus tunelis tarp šių dviejų nenustatomas, nebent tarp serverio ir kliento užmezgame lygiavertį ryšį.

Eik atgal į serverį. Pirmas, sustabdyti VPN paslaugą.

paslauga wg-quick@wg0 sustabdyti

Tada atidarykite konfigūracijos failą pridėti lygiaverčio konfigūraciją (klientas).

vim /etc/wireguard/wg0.conf

Pridėti šias eilutes į failą.

[Peer] PublicKey = Leisti IP = 10.20.43.2/32

Dabar vėl paleiskite VPN paslaugą.

paslauga wg-quick@wg0 pradžia

Viskas! Tai visa konfigūracija, reikalinga Wireguard VPN kliento ir serverio sąrankai. Dabar išbandykime savo VPN.

VPN testavimas

Pirmiausia atlikime paprastą ping iš kliento į serverį, kad įsitikintume, jog VPN tunelio ryšys veikia. Kliente paleiskite toliau nurodytus veiksmus:

ping 10.20.43.1

Kitas, atidarykite žiniatinklio naršyklę ir atidarykite bet kurią svetainę norėdami patikrinti, ar galite prisijungti prie interneto iš kliento įrenginio. Taip pat galite patikrinti interneto ryšį naudodami komandinę eilutę wget.

wget 

Dabar patikrinome tunelio ryšį ir interneto ryšį. Jei abu veikia, dabar turime įsitikinti, kad visas į klientą patenkantis interneto srautas eina per serverį.

Norėdami tai padaryti, mes tiesiog turime patikrinti kliento IP adresą, kurį mato internetas. Vienas iš būdų tai padaryti – eiti į whatsmyip.org. Arba iš komandinės eilutės galime užklausti kitą panašią paslaugą, vadinamą IP informacija, naudodami Curl.

Kliento kompiuteryje paleiskite šiuos veiksmus

curl //ipinfo.io/ip

Taip. Tai viešas Linode IP adresas, kuriame yra VPN serveris. Taip anonimiškumas pasiekiamas naudojant VPN, nes visame internete dabar matomas VPN serverio, o ne kompiuterio IP.

Išvada

Sąrankos paprastumas yra vienas iš svarbiausių „Wireguard“ pranašumų, palyginti su tradicine VPN programine įranga, tokia kaip „OpenVPN“, kuriai nustatyti reikia aukštesnio lygio tinklo ir maršruto parinkimo žinių. Tačiau trūksta išsamių oficialių „Wireguard“ dokumentų, dėl kurių gali kilti problemų, jei „Wireguard“ sąranka sukelia klaidų arba neveikia taip, kaip tikėtasi.

Nepaisant to, „Wireguard“ yra puikus pasirinkimas, jei norite saugiam ryšiui internetu turėti savarankiškai priglobtą VPN. Norėdami sužinoti daugiau apie Wireguard ir jo naudojamus protokolus bei technologijas, galite apsilankyti oficialioje svetainėje.