Kuidas seadistada WireGuard VPN-serverit ja klienti Ubuntu 20.04-s

Seadistage Wireguardi abil ise hostitud VPN

A VPN (virtuaalne privaatvõrk) võimaldab kasutajal luua kaugühenduse privaatvõrguga, nagu oleks kasutaja arvuti otse privaatvõrguga ühendatud. Tehnoloogia töötati algselt välja selleks, et võimaldada kaugjuurdepääsu ettevõtte sisemisele privaatvõrgule töötajatele, kes tegelikult ei viibi sisevõrgu asukohas.

Sisevõrgu asukohas juurutatakse VPN-server. See server on avalikus võrgus ja töötaja pääseb sellele juurde VPN-kliendi kaudu. VPN-serveriga ühenduse loomiseks on vaja autentimist. VPN-serveri ja VPN-kliendi vaheline side on turvatud tunneliprotokolli abil. Pange tähele, et see suhtlus võib olla krüptitud või mitte, kuid tavaliselt on see enamikus VPN-protokollides krüpteeritud.

Teine VPN-i kasutusala on anonüümsuse saavutamine Internetti sisenedes või mõnele veebisaidile juurdepääsul kehtestatud geograafilistest piirangutest mööda hiilimiseks. Sellistel juhtudel ei ole võrk, millega kasutaja ühendust soovib luua, privaatvõrk, vaid see on Internet.

Aastate jooksul on välja töötatud palju VPN-protokolle. Need protokollid kasutavad serveri ja kliendi vaheliseks suhtluseks erinevaid tunneldusprotokolle ja krüpteerimisalgoritme.

Üks selline protokoll, mis on viimasel ajal laialt levinud, on Juhtmekaitse. Wireguard on kergem, lihtsam ja tõhusam kui tuntud traditsiooniliselt kasutatavad VPN-protokollid, nagu OpenVPN, IPSec. See on juba rakendatud Windowsi, Mac OS-i ja paljude Linuxi distributsioonide jaoks. Linuxis rakendatakse seda kerneli moodulina. See on saadaval Ubuntu 20.04 ametlikes hoidlates.

Selles artiklis näeme, kuidas seadistada Ubuntu 20.04-s Wireguard VPN-server ja -klient.

Paigaldamine

Selle artikli jaoks seadistan Ubuntu 20.04 Linode'is Wireguardi serveri ja Wireguardi kliendi kohalikus masinas Ubuntu 20.04-ga.

Pakett traatkaitse installib nii Wireguardi serveri kui ka kliendi. Käivitage järgmine käsk nii serveri- kui ka kliendimasinas.

sudo apt install wireguard

Serveri konfiguratsioon

Turvavõtmed

Peame genereerima avaliku/privaatse võtmepaaride komplekti Wireguardi ühenduse autentimiseks ja kaitsmiseks. Seda saab teha järgmiste käskude abil:

sudo su cd /etc/wireguard umask 077 wg genkey | tee privaatvõti | wg pubkey > avalik_võti

Pange tähele, et me teeme kõiki konfiguratsiooniülesandeid superkasutajana. Põhjuseks on juurdepääs kataloogile /etc/wireguard on tavakasutajate jaoks keelatud ja tavakasutaja jaoks ei saa kataloogi pääseda ainult sudo privileegidega.

Järgmisena määrame faili loomise maski 077. See tähendab, et kui mis tahes protsessiga luuakse sellesse kausta uus fail, maskeeritakse selle õigused automaatselt 077-ga. Nt. kui sellesse kausta luuakse fail, millel on õigused 777, maskeeritakse see automaatselt ja õigused muutuvad tegelikult 700-ks. Seda tehakse nii, et ainult faili omanikul on faili kõik õigused ja kõigil teistel pole õigusi.

Järgmisel real genereerime avaliku/privaatvõtmepaari serveri jaoks. Need salvestatakse failidesse privaatvõti ja avalik_võti. Klahvide vaatamiseks käivitage:

kassi privaatvõti kassi avalik_võti

Kopeerige privaatvõti, vajame seda järgmises etapis.

Märge: Ärge kunagi jagage oma privaatvõtit avalikult!

Konfiguratsioonifail

Loome Wireguard Serveri jaoks konfiguratsioonifaili. Saate valida failile mis tahes nime. Loome faili wg0.conf selles näites.

vim wg0.conf

Lisage failile järgmine.

[Liides] Aadress = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A EDASI -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASKERAAD; ip6tabelid -A EDASIMINE -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASKERAAD PostDown = iptables -D EDASI -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASKERAAD; ip6tabelid -D EDASI -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o -j MASKERAAD 

Kleepige privaatvõti, mille me eelnevalt kopeerisime ülaltoodud koodi reale 5.

Peame Wireguardi konfigureerima erinevas (virtuaalses) alamvõrgus kui serveri IP-aadress. Siin olen kasutanud serveri jaoks 10.20.43.1 ja kliendi jaoks 10.20.43.2. Siin saab kasutada mis tahes alamvõrku. Serveri ja liidese IP-aadressi hankimiseks käivitage:

ifconfig

Pange tähele serveri IP-aadressi. See on vajalik kliendi seadistamise ajal.

Serveri kasutatav liides, nagu ülaltoodud pildil näha, on eth0. Liidese nimi võib kasutaja võrgust olenevalt erineda, see võib olla wlan0 või wlp2s0 juhul, kui kasutaja on juhtmevaba kaardi abil ühendatud WiFi võrku.

Asendage sisse PostUp ja Postita alla teie liidesega; selles näites on see nii eth0.PostUp ja Postita alla direktiive kasutatakse selleks, et määrata, milliseid käske tuleks käivitada, kui server vastavalt käivitub ja seiskub. Meie näites kasutame iptables käsk IP-reeglite seadistamiseks nii, et serveri IP-aadressi jagavad kliendid. Reeglid tühistatakse, kui server peatub.

Salvestage ja väljuge failist. Vimi kasutamisel vajutage Esc, seejärel tippige :wq ja vajutage Sisenema salvestamiseks ja väljumiseks.

Kui kasutate a ufw tulemüüri, peame lubama UDP-ühendused VPN-serveri pordiga 51190.

ufw luba 51190/udp

Teenuse käivitamine

Nüüd, kui konfiguratsioon on tehtud, saame käivitada Wireguard VPN-teenuse.

Võimaldada teenus, mis käivitub alglaadimise ajal, käivitage:

systemctl enable wg-quick@wg0

Pange tähele, et siin wg0 on konfiguratsioonifaili nimi.

Alustama teenus, käivitage:

teenuse wg-quick@wg0 algus

Kinnitage et teenus on edukalt käivitunud:

teenuse wg-quick@wg0 olek

Veenduge, et liides loodud konfiguratsioonifailis on käivitunud, kasutades IP-käsku.

ip saade wg0

Wireguard VPN Server on nüüd seadistatud ja töötab. Seadistame kliendi kohe.

Kliendi konfiguratsioon

Wireguardi kliendi konfiguratsioon on enam-vähem sama, mis serveri konfiguratsioon. Loome kliendi jaoks võtmed ja seejärel konfiguratsioonifaili.

Turvavõtmed

Avaliku/privaatse võtme genereerimiseks paari kliendi jaoks, käivita:

sudo su cd /etc/wireguard umask 077 wg genkey | tee klient_privaatvõti | wg pubkey > kliendi_avalik_võti

Kliendi avalikud ja privaatvõtmed genereeritakse nüüd vastavalt failidesse kliendi_privaatvõti ja kliendi_avalik_võti.

Kontrollige, kas need on loodud kasutades kass käsk.

kassi kliendi_privaatvõti kassi kliendi_avalik_võti

Kopeerige kuvatud privaatvõti, kuna peame selle kliendi konfiguratsioonifaili lisama.

Konfiguratsioonifail

Looge konfiguratsioonifail mis tahes nimega, mida soovite. Loome selle nimega wg0-klient selle näite jaoks.

vim wg0-client.conf

Lisage järgmine konfiguratsioon.

[Liides] # Kliendi aadressi IP-aadress ja privaatvõti = 10.20.43.2/24 PrivateKey = [Peer] # Serveri avalik võti, IP-aadress ja port PublicKey = lõpp-punkt = :51190 AllowedIPs = 0.0.0.0/0, : :/0

Sisestage kliendi alamvõrgu aadress. Nagu eelnevalt kirjeldatud, kasutame 10.20.43.2 kliendi jaoks selles näites.

Lisage kliendi privaatvõti genereeritud eelmises etapis ülaltoodud konfiguratsioonikoodi reale 4.

Jaotises „Peer” lisame teavet Wireguard VPN-serveri kohta tahame ühenduse luua.

Sisestage serveri avalik võti. Sisestage serveri IP-aadress, mille me varem märkisime, ja port antud formaadis vastu Lõpp-punkt. See on port, mille määrasime serveri konfiguratsioonifailis ja millest serveri VPN-teenus käivitus.

Lubatud IP-d tuleb sisestada antud kujul (0.0.0.0/0), et kõik kliendi kasutatavad dünaamilise avaliku IP-aadressid edastaksid alati VPN-serverisse.

Salvestage ja väljuge failist. Vimi kasutamisel vajutage Esc, seejärel tippige :wq ja vajutage Sisenema salvestamiseks ja väljumiseks.

Klienditeeninduse lubamine iga saapaga joosta ja käivitada.

systemctl lubab wg-quick@wg-klienditeenus wg-quick@wg-client start

Kinnitage kui teenus on alanud.

teenuse wg-quick@wg-kliendi olek

Peer'i lisamine serverisse

Nüüd on meil VPN-server ja klient töökorras. Kuid turvalist tunnelit nende kahe vahel ei looda, kui me ei loo serveri ja kliendi vahel peer-to-peer-ühendust.

Mine tagasi serverisse. Esiteks, peatage VPN-teenus.

teenus wg-quick@wg0 peatus

Järgmisena avage konfiguratsioonifail lisage kaaslase konfiguratsioon (klient).

vim /etc/wireguard/wg0.conf

Lisa faili järgmised read.

[Peer] PublicKey = Lubatud IP-d = 10.20.43.2/32

Nüüd käivitage VPN-teenus uuesti.

teenuse wg-quick@wg0 algus

see on kõik! See on kõik Wireguard VPN-i kliendi ja serveri seadistamiseks vajalik konfiguratsioon. Testime nüüd oma VPN-i.

VPN-i testimine

Esmalt teeme lihtsa pingi kliendilt serverisse, et veenduda VPN-tunneli kommunikatsiooni toimimises. Käivitage kliendil järgmine toiming:

ping 10.20.43.1

Järgmiseks avage veebibrauser ja avage mis tahes veebisait et kontrollida, kas saate klientseadmest Interneti-ühenduse luua. Interneti-ühendust saate kontrollida ka käsurealt kasutades wget.

wget 

Nüüd oleme kontrollinud tunneli ühenduvust ja Interneti-ühendust. Kui mõlemad töötavad, peame nüüd tagama, et kogu kliendile saabuv Interneti-liiklus läbiks serverit.

Selleks peame lihtsalt kontrollima kliendi IP-aadressi, mida Internet näeb. Üks võimalus seda teha on minna saidile whatsmyip.org. Või saame käsurealt teha päringu mõnest muust sarnasest teenusest nimega IP info, kasutades Curli.

Käivitage klientmasinas järgmine toiming

curl //ipinfo.io/ip

Jah. See on selle Linode avalik IP-aadress, kus VPN-server on hostitud. Nii saavutatakse VPN-i abil anonüümsus, kuna nüüd on kõikjal Internetis näha VPN-serveri, mitte teie arvuti IP-aadressi.

Järeldus

Seadistamise lihtsus on Wireguardi üks olulisemaid eeliseid võrreldes traditsioonilise VPN-tarkvaraga, nagu OpenVPN, mille seadistamiseks on vaja kõrgemat võrgu- ja marsruutimisteadmisi. Siiski puudub Wireguardi üksikasjalik ametlik dokumentatsioon, mis võib põhjustada probleeme, kui teie Wireguardi seadistus tekitab vigu või ei tööta ootuspäraselt.

Sellegipoolest on Wireguard suurepärane valik, kui soovite turvaliseks Interneti-suhtluseks ise hostitud VPN-i. Wireguardi ning selle kasutatavate protokollide ja tehnoloogiate kohta lisateabe saamiseks külastage ametlikku saiti.