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.