Došlo je vrijeme kada VPN više nije neki egzotični alat bradatih sistem administratora. Korisnici imaju različite zadatke, ali činjenica je da svatko treba VPN.
Problem s trenutnim VPN rješenjima je taj što ih je teško ispravno konfigurirati, skupi su za održavanje i puni su naslijeđenog koda upitne kvalitete.
Prije nekoliko godina, kanadski stručnjak za informacijsku sigurnost Jason A. Donenfeld odlučio je da mu je dosta toga i počeo je raditi na WireGuard. WireGuard se sada priprema za uključivanje u Linux kernel i čak je dobio pohvale od Linus Torvalds i američki Senat.
Navedene prednosti WireGuarda u odnosu na druga VPN rješenja:
Jednostavan za korištenje.
Koristi modernu kriptografiju: Noise protokol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF itd.
Kompaktan, čitljiv kod, lakši za istraživanje ranjivosti.
Kreira se WireGuard sučelje i dodjeljuju mu se privatni ključ i IP adresa. Učitavaju se postavke drugih peerova: njihovi javni ključevi, IP adrese itd.
Svi IP paketi koji stižu na WireGuard sučelje su enkapsulirani u UDP i isporučeno sigurno drugi vršnjaci.
Klijenti u postavkama navode javnu IP adresu poslužitelja. Poslužitelj automatski prepoznaje vanjske adrese klijenata kada od njih primi ispravno provjerene podatke.
Poslužitelj može promijeniti javnu IP adresu bez prekida rada. Istodobno će poslati upozorenje povezanim klijentima i oni će ažurirati svoju konfiguraciju u hodu.
Koristi se koncept usmjeravanja Usmjeravanje kriptoključa. WireGuard prihvaća i šalje pakete na temelju ravnopravnog javnog ključa. Kada poslužitelj dekriptira ispravno autentificirani paket, provjerava se njegovo polje src. Ako odgovara konfiguraciji allowed-ips autentificiranog peera, paket prima sučelje WireGuard. Prilikom slanja odlaznog paketa događa se odgovarajuća procedura: preuzima se dst polje paketa i na temelju njega odabire odgovarajući peer, paket se potpisuje njegovim ključem, šifrira ključem peer-a i šalje na udaljenu krajnju točku. .
Sva ključna logika WireGuarda zauzima manje od 4 tisuće redaka koda, dok OpenVPN i IPSec imaju stotine tisuća redaka. Za podršku modernim kriptografskim algoritmima, predlaže se uključivanje novog kriptografskog API-ja u Linux kernel cink. Trenutno se vodi rasprava o tome je li to dobra ideja.
Performanse
Maksimalna prednost performansi (u usporedbi s OpenVPN i IPSec) bit će vidljiva na Linux sustavima, budući da je WireGuard tamo implementiran kao kernel modul. Osim toga, podržani su macOS, Android, iOS, FreeBSD i OpenBSD, ali u njima WireGuard radi u korisničkom prostoru sa svim posljedicama na performanse. Očekuje se da će podrška za Windows biti dodana u bliskoj budućnosti.
Nisam stručnjak za VPN. Jednom sam ručno postavio OpenVPN i bilo je jako zamorno, a IPSec nisam ni probao. Previše je odluka za donijeti, vrlo je lako pucati sebi u nogu. Stoga sam uvijek koristio gotove skripte za konfiguriranje poslužitelja.
Dakle, WireGuard je, s moje točke gledišta, općenito idealan za korisnika. Sve odluke niske razine donose se u specifikaciji, tako da proces pripreme tipične VPN infrastrukture traje samo nekoliko minuta. Gotovo je nemoguće varati u konfiguraciji.
Sve što preostaje je konfigurirati NAT na poslužitelju kako bi klijenti mogli pristupiti internetu i gotovi ste!
Ova jednostavnost korištenja i kompaktnost baze koda postignuta je eliminacijom funkcionalnosti distribucije ključa. Ne postoji složen sustav certifikata i sav taj korporativni užas; kratki ključevi za šifriranje distribuiraju se slično kao SSH ključevi. Ali to predstavlja problem: WireGuard neće biti tako lako implementirati na neke postojeće mreže.
Među nedostacima, vrijedi napomenuti da WireGuard neće raditi putem HTTP proxyja, budući da je samo UDP protokol dostupan kao prijenos. Postavlja se pitanje: hoće li biti moguće zamagliti protokol? Naravno, to nije izravna zadaća VPN-a, ali za OpenVPN, na primjer, postoje načini da se maskira u HTTPS, što pomaže stanovnicima totalitarnih zemalja u potpunosti koristiti Internet.
Zaključci
Ukratko, ovo je vrlo zanimljiv i obećavajući projekt, već ga možete koristiti na osobnim poslužiteljima. Kolika je zarada? Visoke performanse na Linux sustavima, jednostavnost postavljanja i podrške, kompaktna i čitljiva baza koda. Međutim, prerano je žuriti s prijenosom složene infrastrukture na WireGuard; vrijedi pričekati njegovo uključivanje u jezgru Linuxa.
Kako bih uštedio svoje (i vaše) vrijeme, razvio sam WireGuard automatski instalacijski program. Uz njegovu pomoć možete postaviti osobni VPN za sebe i svoje prijatelje, a da uopće ne razumijete ništa o tome.