WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

Ka arritur koha kur VPN nuk është më një instrument ekzotik i adminëve të sistemit me mjekra. Detyrat e përdoruesve janë të ndryshme, por e vërteta është se VPN-i është bërë i nevojshëm për të gjithë.

Problemi i zgjidhjeve aktuale VPN është se është e vështirë t'i konfigurosh siç duhet, janë të shtrenjta për t'u mbajtur dhe kanë shumë kod legacy të cilësisë dyshimtare.

Disa vjet më parë, specialisti kanadez i sigurisë informatike Jason A. Donenfeld vendosi se ishte mjaft dhe filloi punën mbi ShadowSocks2. Tani WireGuard po përgatitet të përfshihet në bërthamën e Linux-it, dhe madje ka marrë lëvdata nga Linus Torvalds dhe në senati amerikan.

Avantazhet e shpallura të WireGuard mbi zgjidhjet e tjera VPN:

  • E thjeshtĂ« pĂ«r t'u pĂ«rdorur.
  • PĂ«rdor kriptografi moderne: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etj.
  • Kod kompakt dhe i lexueshĂ«m, mĂ« e lehtĂ« pĂ«r t'u shqyrtuar pĂ«r dobĂ«si.
  • PerformancĂ« e lartĂ«.
  • NjĂ« koncept i qartĂ« dhe i mirĂ«punuar specifikimi.

A mos Ă«shtĂ« gjetur njĂ« plumb argjendi? ËshtĂ« koha t'i japim lamtumirĂ« OpenVPN dhe IPSec? Vendosa tĂ« merrem me kĂ«tĂ« dhe gjithashtu bĂ«ra njĂ« skenar pĂ«r instalimin automatike tĂ« njĂ« serveri VPN personal.

Principet e funksionimit

Principet e funksionimit mund të përshkruhen në këtë mënyrë:

  • Krijohet njĂ« interface WireGuard, i jepet njĂ« çelĂ«s privat dhe njĂ« adresĂ« IP. Ngarkohet konfigurimi i peer tĂ« tjerĂ«: çelĂ«sat e tyre publikĂ«, adresat IP, etj.
  • TĂ« gjitha paketat IP qĂ« vijnĂ« nĂ« interfesin WireGuard kapsulohen nĂ« UDP dhe dorĂ«zohen nĂ« mĂ«nyrĂ« tĂ« siguruar tek peer-tĂ« e tjerĂ«.
  • KĂ«ta tĂ« fundit vendosin adresĂ«n IP publike tĂ« serverit nĂ« konfigurime. Serveri zbulohet automatikisht adresat e jashtme tĂ« klientĂ«ve kur ata dĂ«rgojnĂ« tĂ« dhĂ«na tĂ« autentikuara siç duhet.
  • Serveri mund tĂ« ndryshojĂ« adresĂ«n IP publike pa ndĂ«rprerĂ« operimin. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, ai do tĂ« dĂ«rgojĂ« njĂ« njoftim klientĂ«ve tĂ« lidhur dhe ata do tĂ« azhurnojnĂ« konfigurimin e tyre nĂ« flakĂ«.
  • PĂ«rdoret koncepti i ruterizimit Cryptokey Routing. WireGuard pranon dhe dĂ«rgon paketa nĂ« bazĂ« tĂ« çelĂ«sit publik tĂ« peer-it. Kur serveri dekriptocon njĂ« paketĂ« tĂ« autentikuar siç duhet, kontrollohet fusha e saj src. NĂ«se ajo pĂ«rputhet me konfigurimin allowed-ips tĂ« peer-it tĂ« autentikuar, atĂ«herĂ« paketa pranohet nga interface-i WireGuard. Kur dĂ«rgohet njĂ« paketĂ« dalĂ«se, ndodh procedura e duhur: merret fusha dst e paketĂ«s dhe nĂ« bazĂ« tĂ« saj pĂ«rzgjidhet peer-i pĂ«rgjegjĂ«s, paketa nĂ«nshkruhet me çelĂ«sin e saj, kriptohet me çelĂ«sin e peer-it dhe dĂ«rgohet nĂ« endpoint-in e largĂ«t.

E gjithë logjika kryesore e WireGuard zë më pak se 4 mijë rreshta kod, ndërsa OpenVPN dhe IPSec kanë qindra mijëra rreshta. Për të mbështetur algoritmet moderne të kriptografisë, propozohet të përfshihet një API kriptografik i ri në bërthamën e Linux-it. ZincTani që po diskutohet tani është sa e suksesshme është kjo ide.

Performanca

Avantazhi maksimal në performancë (krahasuar me OpenVPN dhe IPSec) do të jetë i dukshëm në sistemet Linux, pasi aty WireGuard është realizuar si një modul bërthamor. Përveç kësaj, mbështeten macOS, Android, iOS, FreeBSD dhe OpenBSD, por në këto sisteme WireGuard funksionon në userspace me të gjitha pasojat për performancën. Mbështetje për Windows është premtuar që do të shtohet në të ardhmen e afërt.

Rezultatet e benchmarkeve me faqja zyrtare:

WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

Eksperienca ime e përdorimit

Nuk jam ekspert në konfigurimin e VPN-ve. Një herë kam konfiguruar OpenVPN manualisht dhe ishte shumë e lodhshme, ndërsa për IPSec nuk kam provuar as. Janë shumë shumë vendime për t'u marrë, është shumë e lehtë të lëndosh veten. Prandaj gjithmonë kam përdorur skriptet e gatshme për të konfiguruar serverin.

Pra, WireGuard, sipas mendimit tim, është krejtësisht i përsosur për përdoruesin. Të gjitha zgjidhjet në nivel të ulët janë pranuar në specifikim, kështu që procesi i përgatitjes së një infrastrukture tipike VPN zgjat vetëm disa minuta. Të gabosh në konfigurim është praktikisht e pamundur.

Procesi i instalimit është përshkruar në detaje në faqen zyrtare, veçanërisht dua të theksoj mbështetje të shkëlqyer për OpenWRT.

ÇelĂ«sat e enkriptimit krijohen nga utilita wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

Më pas, duhet të krijoni konfigurimin e serverit /etc/wireguard/wg0.conf me përmbajtjen e mëposhtme:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

dhe të ngritni tunelin me skriptin wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

Në sistemet me systemd, mund të përdorni këtë sudo systemctl start wg-quick@wg0.service.

Në makinën klient, krijoni konfigurimin /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # IP i jashtëm i serverit
PersistentKeepalive = 25 

Dhe po ashtu ngritni tunelin:

sudo wg-quick up /etc/wireguard/wg0.conf

Duhet të konfigurohet NAT në server për të lejuar klientët të aksesojnë Internetin, dhe çdo gjë është gati!

Kjo thjeshtësi përdorimi dhe kompaktesi e bazës së kodit është arritur përmes heqjes së funksionalitetit të shpërndarjes së çelësave. Këtu nuk ka një sistem të komplikuar sertifikatash dhe gjithë atij tmerri korporativ, çelësat e shkurtër të enkriptimit shpërndahen si çelësat SSH. Por për shkak të kësaj lind një problem: WireGuard nuk do të jetë kaq e lehtë për t'u implementuar në disa rrjete ekzistuese.

Një nga disavantazhet e tij është se WireGuard nuk do të funksionojë përmes HTTP proxy, pasi protokolli i transportit është vetëm UDP. Lind pyetja, a është e mundur të maskohet protokolli? Sigurisht, kjo nuk është një detyrë e drejtpërdrejtë e VPN, por për OpenVPN, për shembull, ekzistojnë mënyra për ta maskuar atë si HTTPS, që ndihmon banorët e vendeve totalitare të përdorin plotësisht internetin.

Përfundimet

Duke përmbledhur, ky është një projekt shumë interesant dhe me perspektivë, tani mund ta përdorim atë në serverët tanë personalë. Cila është përfitimi? Performancë e lartë në sistemet Linux, lehtësi në konfigurim dhe mirëmbajtje, një kod bazë kompakte dhe të lexueshme. Megjithatë, është ende herët për të filluar të përkthejmë infrastrukturën komplekse në WireGuard, është më mirë të presim për ta përfshirë në kernelin e Linux.

Për të kursyer kohën time (dhe tuajën), kam zhvilluar një instalues automatik për WireGuard. Me të, mund të krijoni një VPN personale për veten dhe miqtë tuaj pa pasur ndonjë njohuri të thellë në këtë temë.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster