Ir pienācis laiks, kad VPN vairs nav kāds eksotisks bārdainu sistēmu administratoru rīks. Lietotājiem ir dažādi uzdevumi, taču fakts ir tāds, ka ikvienam ir nepieciešams VPN.
Pašreizējo VPN risinājumu problēma ir tā, ka tos ir grūti pareizi konfigurēt, tos ir dārgi uzturēt, un tie ir pilni ar apšaubāmas kvalitātes mantoto kodu.
Pirms vairākiem gadiem kanādiešu informācijas drošības speciālists Džeisons A. Donenfelds nolēma, ka viņam ar to ir gana, un sāka strādāt pie WireGuard. WireGuard tagad tiek gatavots iekļaušanai Linux kodolā un pat saņēmis atzinību no Linuss Torvalds un ASV Senāts.
Apgalvotās WireGuard priekšrocības salīdzinājumā ar citiem VPN risinājumiem:
Ērti lietojams.
Izmanto modernu kriptogrāfiju: Noise protokolu ietvars, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF u.c.
Tiek izveidots WireGuard interfeiss, un tam tiek piešķirta privātā atslēga un IP adrese. Tiek ielādēti citu vienaudžu iestatījumi: viņu publiskās atslēgas, IP adreses utt.
Visas IP paketes, kas nonāk WireGuard saskarnē, ir iekapsulētas UDP un piegādāts droši citi vienaudži.
Klienti iestatījumos norāda servera publisko IP adresi. Serveris automātiski atpazīst klientu ārējās adreses, kad no tiem tiek saņemti pareizi autentificēti dati.
Serveris var mainīt publisko IP adresi, nepārtraucot savu darbu. Tajā pašā laikā tas nosūtīs brīdinājumu savienotajiem klientiem, un viņi lidojuma laikā atjauninās savu konfigurāciju.
Tiek izmantots maršrutēšanas jēdziens Kriptoatslēgas maršrutēšana. WireGuard pieņem un nosūta paketes, pamatojoties uz vienādranga publisko atslēgu. Kad serveris atšifrē pareizi autentificētu paketi, tiek pārbaudīts tās src lauks. Ja tas atbilst konfigurācijai allowed-ips autentificēts līdzinieks, paketi saņem WireGuard interfeiss. Nosūtot izejošo paketi, notiek atbilstošā procedūra: tiek ņemts paketes lauks dst un, pamatojoties uz to, tiek atlasīts atbilstošais līdzinieks, pakete tiek parakstīta ar tās atslēgu, šifrēta ar partnera atslēgu un nosūtīta uz attālo galapunktu. .
Visa WireGuard pamata loģika aizņem mazāk nekā 4 tūkstošus koda rindiņu, savukārt OpenVPN un IPSec ir simtiem tūkstošu rindiņu. Lai atbalstītu mūsdienu kriptogrāfijas algoritmus, tiek ierosināts iekļaut jaunu kriptogrāfijas API Linux kodolā Cinks. Pašlaik notiek diskusija par to, vai tā ir laba ideja.
Производительность
Maksimālā veiktspējas priekšrocība (salīdzinājumā ar OpenVPN un IPSec) būs pamanāma Linux sistēmās, jo WireGuard tur ir ieviests kā kodola modulis. Turklāt tiek atbalstītas macOS, Android, iOS, FreeBSD un OpenBSD, taču tajās WireGuard darbojas lietotāja telpā ar visām no tā izrietošajām veiktspējas sekām. Paredzams, ka tuvākajā nākotnē tiks pievienots Windows atbalsts.
Es neesmu VPN eksperts. Es reiz iestatīju OpenVPN manuāli, un tas bija ļoti nogurdinoši, un es pat neizmēģināju IPSec. Ir pārāk daudz lēmumu, kas jāpieņem, ir ļoti viegli iešaut sev kājā. Tāpēc servera konfigurēšanai vienmēr izmantoju gatavus skriptus.
Tātad, WireGuard, no mana viedokļa, parasti ir ideāls lietotājam. Visi zema līmeņa lēmumi tiek pieņemti specifikācijā, tāpēc tipiskas VPN infrastruktūras sagatavošanas process aizņem tikai dažas minūtes. Konfigurācijā ir gandrīz neiespējami krāpties.
Atliek tikai konfigurēt NAT serverī, lai klienti varētu piekļūt internetam, un esat pabeidzis!
Šī koda bāzes lietošanas vienkāršība un kompaktums tika panākts, likvidējot atslēgu izplatīšanas funkcionalitāti. Nav sarežģītas sertifikātu sistēmas un visas šīs korporatīvās šausmas; īsās šifrēšanas atslēgas tiek izplatītas līdzīgi kā SSH atslēgas. Bet tas rada problēmu: WireGuard nebūs tik viegli ieviest dažos esošajos tīklos.
Starp trūkumiem ir vērts atzīmēt, ka WireGuard nedarbosies, izmantojot HTTP starpniekserveri, jo kā transports ir pieejams tikai UDP protokols. Rodas jautājums: vai izdosies apmulsināt protokolu? Protams, tas nav VPN tiešais uzdevums, taču, piemēram, OpenVPN ir veidi, kā maskēties kā HTTPS, kas palīdz totalitāro valstu iedzīvotājiem pilnvērtīgi izmantot internetu.
Atzinumi
Rezumējot, šis ir ļoti interesants un daudzsološs projekts, to jau var izmantot personīgajos serveros. Kāda ir peļņa? Augsta veiktspēja Linux sistēmās, vienkārša iestatīšana un atbalsts, kompakta un lasāma kodu bāze. Tomēr ir pāragri steigties nodot sarežģītu infrastruktūru WireGuard, ir vērts gaidīt tās iekļaušanu Linux kodolā.
Lai ietaupītu savu (un jūsu) laiku, es izstrādāju WireGuard automātiskais instalētājs. Ar tās palīdzību jūs varat iestatīt personīgo VPN sev un saviem draugiem, pat neko par to nesaprotot.