Dumating ang oras na ang VPN ay hindi na isang kakaibang tool ng mga may balbas na tagapangasiwa ng system. Ang mga gumagamit ay may iba't ibang mga gawain, ngunit ang katotohanan ay ang lahat ay nangangailangan ng isang VPN.
Ang problema sa kasalukuyang mga solusyon sa VPN ay mahirap silang i-configure nang tama, mahal na mapanatili, at puno ng legacy code na kaduda-dudang kalidad.
Ilang taon na ang nakalilipas, nagpasya ang Canadian information security specialist na si Jason A. Donenfeld na sapat na siya rito at nagsimulang magtrabaho sa WireGuard. Inihahanda na ngayon ang WireGuard para sa pagsasama sa Linux kernel at nakatanggap pa ng papuri mula sa Linus Torvalds at Senado ng US.
Inaangkin na mga pakinabang ng WireGuard sa iba pang mga solusyon sa VPN:
Ang mga prinsipyo ng pagpapatakbo ay maaaring ilarawan tulad nito:
Isang WireGuard interface ay nilikha at isang pribadong key at IP address ay itinalaga dito. Ang mga setting ng iba pang mga kapantay ay na-load: ang kanilang mga pampublikong key, mga IP address, atbp.
Ang lahat ng mga IP packet na dumarating sa interface ng WireGuard ay naka-encapsulated sa UDP at naihatid nang ligtas ibang mga kapantay.
Tinukoy ng mga kliyente ang pampublikong IP address ng server sa mga setting. Awtomatikong kinikilala ng server ang mga panlabas na address ng mga kliyente kapag natanggap nang tama ang data na napatotohanan mula sa kanila.
Maaaring baguhin ng server ang pampublikong IP address nang hindi nakakaabala sa trabaho nito. Kasabay nito, magpapadala ito ng alerto sa mga konektadong kliyente at i-update nila ang kanilang configuration on the fly.
Ginagamit ang konsepto ng pagruruta Cryptokey Routing. Ang WireGuard ay tumatanggap at nagpapadala ng mga packet batay sa pampublikong key ng peer. Kapag na-decrypt ng server ang isang packet na napatotohanan nang tama, susuriin ang src field nito. Kung tumutugma ito sa pagsasaayos allowed-ips authenticated peer, ang packet ay natanggap ng WireGuard interface. Kapag nagpapadala ng papalabas na packet, ang kaukulang pamamaraan ay nangyayari: ang dst field ng packet ay kinuha at, batay dito, ang kaukulang peer ay pinili, ang packet ay nilagdaan gamit ang susi nito, naka-encrypt gamit ang peer's key at ipinadala sa remote na endpoint .
Ang lahat ng pangunahing lohika ng WireGuard ay tumatagal ng mas mababa sa 4 na libong linya ng code, habang ang OpenVPN at IPSec ay may daan-daang libong linya. Upang suportahan ang mga modernong cryptographic algorithm, iminungkahi na magsama ng bagong cryptographic API sa Linux kernel Sink. Kasalukuyang may talakayan tungkol sa kung ito ay isang magandang ideya.
Pagiging Produktibo
Ang pinakamataas na kalamangan sa pagganap (kumpara sa OpenVPN at IPSec) ay kapansin-pansin sa mga sistema ng Linux, dahil ang WireGuard ay ipinatupad bilang isang kernel module doon. Bilang karagdagan, sinusuportahan ang macOS, Android, iOS, FreeBSD at OpenBSD, ngunit sa kanila ay tumatakbo ang WireGuard sa userspace kasama ang lahat ng kasunod na mga kahihinatnan ng pagganap. Ang suporta sa Windows ay inaasahang maidaragdag sa malapit na hinaharap.
Hindi ako eksperto sa VPN. Minsan ay na-set up ko ang OpenVPN nang manu-mano at ito ay nakakapagod, at hindi ko man lang sinubukan ang IPSec. Napakaraming desisyon na dapat gawin, napakadaling barilin ang iyong sarili sa paa. Samakatuwid, palagi akong gumagamit ng mga handa na script upang i-configure ang server.
Kaya, ang WireGuard, mula sa aking pananaw, ay karaniwang perpekto para sa gumagamit. Ang lahat ng mga desisyon sa mababang antas ay ginawa sa detalye, kaya ang proseso ng paghahanda ng isang tipikal na imprastraktura ng VPN ay tumatagal lamang ng ilang minuto. Halos imposibleng manloko sa pagsasaayos.
Ang natitira na lang ay i-configure ang NAT sa server para ma-access ng mga kliyente ang Internet, at tapos ka na!
Ang kadalian ng paggamit at pagiging compact ng code base ay nakamit sa pamamagitan ng pag-aalis ng pangunahing pagpapagana ng pamamahagi. Walang kumplikadong sistema ng sertipiko at lahat ng corporate horror na ito; ang mga maiikling encryption key ay ipinamamahagi katulad ng mga SSH key. Ngunit nagdudulot ito ng problema: Hindi magiging ganoon kadaling ipatupad ang WireGuard sa ilang umiiral nang network.
Kabilang sa mga disadvantages, ito ay nagkakahalaga ng noting na WireGuard ay hindi gagana sa pamamagitan ng isang HTTP proxy, dahil lamang ang UDP protocol ay magagamit bilang isang transportasyon. Ang tanong ay lumitaw: posible bang i-obfuscate ang protocol? Siyempre, hindi ito ang direktang gawain ng isang VPN, ngunit para sa OpenVPN, halimbawa, may mga paraan upang magkaila ang sarili bilang HTTPS, na tumutulong sa mga residente ng mga totalitarian na bansa na ganap na magamit ang Internet.
Natuklasan
Upang ibuod, ito ay isang napaka-kawili-wili at promising na proyekto, maaari mo na itong gamitin sa mga personal na server. Ano ang tubo? Mataas na performance sa mga Linux system, kadalian ng pag-setup at suporta, compact at readable code base. Gayunpaman, masyadong maaga upang magmadali upang ilipat ang isang kumplikadong imprastraktura sa WireGuard; sulit na maghintay para sa pagsasama nito sa kernel ng Linux.
Upang i-save ang aking (at ang iyong) oras, binuo ko Awtomatikong installer ng WireGuard. Sa tulong nito, maaari kang mag-set up ng isang personal na VPN para sa iyong sarili at sa iyong mga kaibigan nang hindi nauunawaan ang anuman tungkol dito.