Nastavite VPN z lastnim gostovanjem z uporabo Wireguarda
A VPN (virtualno zasebno omrežje) omogoča uporabniku, da se na daljavo poveže z zasebnim omrežjem, kot da bi bil uporabnikov računalnik neposredno povezan z zasebnim omrežjem. Tehnologija je bila prvotno razvita za omogočanje oddaljenega dostopa do notranjega zasebnega omrežja podjetja za zaposlene, ki dejansko niso prisotni na lokaciji internega omrežja.
Strežnik VPN je nameščen na lokaciji notranjega omrežja. Ta strežnik je v javnem omrežju in zaposleni lahko dostopa do njega s pomočjo odjemalca VPN. Za povezavo s strežnikom VPN je potrebna avtentikacija. Komunikacija med strežnikom VPN in odjemalcem VPN je zavarovana s protokolom tuneliranja. Upoštevajte, da je ta komunikacija lahko šifrirana ali pa tudi ne, vendar je običajno v večini protokolov VPN šifrirana.
Druga uporaba VPN je za pridobijo anonimnost pri dostopu do interneta ali za izogibanje geografskim omejitvam, naloženim med dostopom do nekaterih spletnih mest. V takih primerih omrežje, s katerim se želi uporabnik povezati, ni zasebno omrežje, ampak je internet.
V preteklih letih je bilo razvitih veliko protokolov VPN. Ti protokoli uporabljajo različne protokole tuneliranja in algoritme šifriranja za komunikacijo med strežnikom in odjemalcem.
Eden takšnih protokolov, ki se v zadnjem času vse bolj uporablja, je Varovalo žice. Wireguard je lažji, enostavnejši in zmogljivejši od dobro znanih tradicionalno uporabljenih protokolov VPN, kot so OpenVPN, IPSec. Je že implementiran za Windows, Mac OS in veliko število distribucij Linuxa. V Linuxu je implementiran kot modul jedra. Na voljo je v uradnih repozitorijih Ubuntu 20.04.
V tem članku bomo videli, kako nastaviti strežnik in odjemalca Wireguard VPN v Ubuntu 20.04.
Namestitev
Za ta članek nastavljam strežnik Wireguard na Ubuntu 20.04 Linode in Wireguard Client na svojem lokalnem računalniku z Ubuntu 20.04.
Paket varovalo žice
namesti tako strežnik Wireguard kot odjemalca. Zaženite naslednji ukaz na strežniškem in odjemalskem stroju.
sudo apt install wireguard
Konfiguracija strežnika
Varnostni ključi
Ustvariti moramo nabor parov javnih/zasebnih ključev da preverite pristnost in zavarujete povezavo Wireguard. To lahko storite z naslednjimi ukazi:
sudo su cd /etc/wireguard umask 077 wg genkey | tee zasebni_ključ | wg pubkey > javni_ključ
Upoštevajte, da vse konfiguracijske naloge opravljamo kot superuporabnik. Razlog za to je dostop do imenika /etc/wireguard
je onemogočeno za običajne uporabnike in dostopa do imenika ni mogoče pridobiti samo s privilegiji sudo za običajnega uporabnika.
Nato nastavimo masko za ustvarjanje datoteke na 077
. To pomeni, da kadar koli s katerim koli postopkom v tej mapi ustvari novo datoteko, bodo njena dovoljenja samodejno prikrita s 077. Npr. če je v tej mapi ustvarjena datoteka z dovoljenji 777, se samodejno zamaskira in dovoljenja dejansko postanejo 700. To se naredi tako, da ima samo lastnik datoteke vsa dovoljenja za datoteko, vsi ostali pa nimajo dovoljenj.
V naslednji vrstici, generiramo par javni/zasebni ključ za strežnik. Shranjene so v datotekah zasebni_ključ
in javni_ključ
. Za ogled ključev zaženite:
mačka zasebni_ključ mačka javni_ključ
Kopirajte zasebni ključ, potrebujemo ga v naslednjem koraku.
Opomba: Nikoli ne delite svojega zasebnega ključa javno!
Konfiguracijska datoteka
Ustvarimo konfiguracijsko datoteko za strežnik Wireguard. Za datoteko lahko izberete poljubno ime. Ustvarili bomo datoteko wg0.conf
v tem primeru.
vim wg0.conf
V datoteko dodajte naslednje.
[Vmesnik] Naslov = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A NAPREJ -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A NAPREJ -i wg0 -j SPREJEM; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D NAPREJ -i wg0 -j SPREJEM; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D NAPREJ -i wg0 -j SPREJEM; ip6tabel -t nat -D POTROŠANJE -o -j MASKARADA
Prilepite zasebni ključ, ki smo ga prej kopirali v vrstico 5 zgornje kode.
Wireguard moramo konfigurirati v drugem (virtualnem) podomrežju kot naslov IP strežnika. Tukaj sem uporabil 10.20.43.1 za strežnik in 10.20.43.2 za odjemalca. Tukaj lahko uporabite katero koli podomrežje. Če želite dobiti naslov IP strežnika in vmesnika, zaženite:
ifconfig
Upoštevajte IP naslov strežnika. To je potrebno med konfiguracijo odjemalca.
Vmesnik, ki ga uporablja strežnik, kot je prikazano na zgornji sliki, je eth0
. Ime vmesnika se lahko razlikuje glede na uporabnikovo omrežje, lahko wlan0
oz wlp2s0
v primeru, da je uporabnik povezan z omrežjem WiFi prek brezžične kartice.
Zamenjajte v
PostUp
in PostDown
z vašim vmesnikom; v tem primeru je eth0
.PostUp
in PostDown
direktive se uporabljajo za določitev, kateri ukazi naj se zaženejo, ko se strežnik zažene oziroma ustavi. V našem primeru uporabljamo iptables
ukaz za nastavitev pravil IP tako, da si odjemalci delijo naslov IP strežnika. Ko se strežnik ustavi, bodo pravila izginila.
Shranite in zaprite datoteko. Ko uporabljate vim, pritisnite Esc, nato vnesite :wq
in pritisnite Vnesite za shranjevanje in izhod.
Če uporabljate a ufw
požarni zid na strežniku, moramo dovoliti povezave UDP do vrat za strežnik VPN, 51190.
ufw dovoli 51190/udp
Zagon storitve
Zdaj, ko je konfiguracija končana, lahko zaženemo storitev Wireguard VPN.
Omogočiti storitev, ki se zažene ob zagonu, zaženite:
systemctl omogoči wg-quick@wg0
Upoštevajte to tukaj wg0
je ime konfiguracijske datoteke.
Začeti storitev, zaženite:
storitev wg-quick@wg0 start
Preverite da se je storitev uspešno začela:
status storitve wg-quick@wg0
Preverite, ali je vmesnik ki smo ga ustvarili v konfiguracijski datoteki, se je začela z ukazom IP.
ip a show wg0
Strežnik Wireguard VPN je zdaj nastavljen in deluje. Zdaj konfigurirajmo odjemalca.
Konfiguracija odjemalca
Konfiguracija odjemalca za Wireguard je bolj ali manj enaka konfiguraciji strežnika. Ustvarimo ključe za odjemalca in nato ustvarimo konfiguracijsko datoteko.
Varnostni ključi
Za generiranje javnega/zasebnega ključa par za odjemalca, zaženite:
sudo su cd /etc/wireguard umask 077 wg genkey | tee client_private_key | wg pubkey > client_public_key
Javni in zasebni ključi za odjemalca se zdaj generirajo v datotekah odjemalski_zasebni_ključ
in odjemalski_javni_ključ
.
Preverite, ali so bili ustvarjeni z uporabo mačka
ukaz.
cat client_private_key cat client_public_key
Kopirajte prikazani zasebni ključ, saj ga moramo dodati v konfiguracijsko datoteko za odjemalca.
Konfiguracijska datoteka
Ustvarite konfiguracijsko datoteko s poljubnim imenom. Ustvarili ga bomo z imenom wg0-odjemalec
za ta primer.
vim wg0-client.conf
Dodajte naslednjo konfiguracijo.
[Vmesnik] # Naslov IP in zasebni ključ odjemalčevega naslova = 10.20.43.2/24 PrivateKey = [Peer] # Javni ključ, IP naslov in vrata strežnika PublicKey = Končna točka = :51190 Dovoljeni IP-ji = 0.0.0.0/0, : :/0
Vnesite naslov podomrežja za odjemalca. Kot smo že opisali, uporabljamo 10.20.43.2
za stranko v tem primeru.
Dodajte zasebni ključ odjemalca ustvarjeno v prejšnjem koraku v vrstico 4 v zgornji konfiguracijski kodi.
Pod »Peer« dodamo informacije o strežniku Wireguard VPN želimo se povezati.
Vnesite javni ključ strežnika. Vnesite IP naslov strežnika, kar smo že omenili, in port v dani obliki proti Končna točka. To so vrata, ki smo jih podali v konfiguracijski datoteki strežnika in na katerih se je storitev VPN na strežniku začela.
Dovoljene IP-je je treba vnesti kot podane (0.0.0.0/0), tako da bo vsaka zahteva na dinamičnem javnem IP-ju, ki ga uporablja odjemalec, vedno posredovana strežniku VPN.
Shranite in zaprite datoteko. Ko uporabljate vim, pritisnite Esc, nato vnesite :wq
in pritisnite Vnesite za shranjevanje in izhod.
Omogočite storitev odjemalca zagnati z vsakim zagonom in ga zagnati.
systemctl omogoči storitev wg-quick@wg-client wg-quick@wg-client start
Preverite če se je storitev začela.
status storitve wg-quick@wg-client
Dodajanje Peer strežniku
Zdaj imamo strežnik in odjemalec VPN pripravljen in delujeta. Vendar pa varen tunel med obema ni vzpostavljen, razen če vzpostavimo medsebojno povezavo med strežnikom in odjemalcem.
Pojdi nazaj na strežnik. najprej ustavite storitev VPN.
storitev wg-quick@wg0 ustavi
Nato odprite konfiguracijsko datoteko v dodajte konfiguracijo za enakovrednega (stranka).
vim /etc/wireguard/wg0.conf
Pripni naslednje vrstice v datoteko.
[Peer] PublicKey = dovoljeni IP-ji = 10.20.43.2/32
zdaj, znova zaženite storitev VPN.
storitev wg-quick@wg0 start
To je to! To je vsa konfiguracija, potrebna za nastavitev odjemalca in strežnika Wireguard VPN. Zdaj pa preizkusimo naš VPN.
Testiranje VPN-ja
Najprej naredimo preprost ping od odjemalca do strežnika, da se prepričamo, da komunikacija tunela VPN deluje. Zaženite naslednje na odjemalcu:
ping 10.20.43.1
Naslednji, odprite spletni brskalnik in odprite katero koli spletno mesto da preverite, ali se lahko povežete z internetom z odjemalskega računalnika. Svojo internetno povezljivost lahko preverite tudi iz ukazne vrstice wget
.
wget
Zdaj smo preverili povezljivost tunela in internetno povezljivost. Če oba delujeta, moramo zdaj zagotoviti, da ves internetni promet, ki prihaja do odjemalca, poteka skozi strežnik.
Za to moramo preprosto preveriti IP naslov odjemalca, kot ga vidi internet. Eden od načinov za to je, da obiščete whatsmyip.org. V nasprotnem primeru lahko iz ukazne vrstice poiščemo drugo podobno storitev, imenovano IP info, z uporabo Curl.
Na odjemalskem stroju zaženite naslednje
curl //ipinfo.io/ip
da. To je javni naslov IP Linode, kjer gostuje strežnik VPN. Tako se doseže anonimnost z uporabo VPN, saj je zdaj po vsem internetu viden IP strežnika VPN in ne vašega računalnika.
Zaključek
Enostavnost nastavitve je ena najpomembnejših prednosti Wireguarda pred tradicionalno programsko opremo VPN, kot je OpenVPN, ki za nastavitev potrebuje višjo raven omrežnega znanja in znanja o usmerjanju. Vendar pa primanjkuje podrobne uradne dokumentacije za Wireguard, kar bi lahko povzročilo težave, če vaša nastavitev Wireguarda povzroča napake ali ne deluje po pričakovanjih.
Kljub temu je Wireguard odlična izbira, če želite samostojen VPN za varno komunikacijo prek interneta. Če želite izvedeti več o Wireguardu ter protokolih in tehnologijah, ki jih uporablja, si lahko ogledate uradno spletno mesto.