Արդյո՞ք WireGuard-ն ապագայի հիանալի VPN-ն է:

Արդյո՞ք WireGuard-ն ապագայի հիանալի VPN-ն է:

Եկել է ժամանակը, երբ VPN-ն այլևս մորուքավոր համակարգի ադմինիստրատորների էկզոտիկ գործիք չէ: Օգտատերերն ունեն տարբեր առաջադրանքներ, բայց փաստն այն է, որ բոլորին անհրաժեշտ է VPN:

Ընթացիկ VPN լուծումների խնդիրն այն է, որ դրանք դժվար է ճիշտ կազմաձևել, թանկ է պահպանել և լի են կասկածելի որակի ժառանգական կոդով:

Մի քանի տարի առաջ կանադացի տեղեկատվական անվտանգության մասնագետ Ջեյսոն Ա. Դոնենֆելդը որոշեց, որ իրեն բավական է դա և սկսեց աշխատել. WireGuard- ը. WireGuard-ն այժմ պատրաստվում է ընդգրկվելու Linux միջուկում և նույնիսկ գովասանքի է արժանացել Լինուս Տորվալդս իսկ ԱՄՆ Սենատը.

WireGuard-ի պահանջվող առավելությունները VPN այլ լուծումների նկատմամբ.

  • Հեշտ օգտագործման համար:
  • Օգտագործում է ժամանակակից ծածկագրություն՝ աղմուկի արձանագրության շրջանակ, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF և այլն:
  • Կոմպակտ, ընթեռնելի կոդ, ավելի հեշտ է ուսումնասիրել խոցելիությունը:
  • Բարձր կատարողականություն:
  • Հստակ և մանրամասն ճշգրտում.

Արծաթե փամփուշտ գտնվե՞լ է: Արդյո՞ք ժամանակն է թաղելու OpenVPN-ն և IPSec-ը: Ես որոշեցի զբաղվել սրանով, և միևնույն ժամանակ արեցի անձնական VPN սերվերի ավտոմատ տեղադրման սցենար.

Աշխատանքային սկզբունքներ

Գործառնական սկզբունքները կարելի է նկարագրել այսպես.

  • Ստեղծվում է WireGuard ինտերֆեյս, և դրան հատկացվում է մասնավոր բանալի և IP հասցե: Բեռնվում են այլ գործընկերների կարգավորումները՝ նրանց հանրային բանալիները, IP հասցեները և այլն:
  • Բոլոր IP փաթեթները, որոնք հասնում են WireGuard ինտերֆեյսին, պարփակված են UDP-ում և ապահով առաքված այլ հասակակիցներ:
  • Հաճախորդները կարգավորումներում նշում են սերվերի հանրային IP հասցեն: Սերվերը ավտոմատ կերպով ճանաչում է հաճախորդների արտաքին հասցեները, երբ նրանցից ճիշտ վավերացված տվյալներ են ստացվում:
  • Սերվերը կարող է փոխել հանրային IP հասցեն՝ առանց իր աշխատանքը ընդհատելու: Միևնույն ժամանակ, այն ահազանգ կուղարկի կապակցված հաճախորդներին, և նրանք անմիջապես կթարմացնեն իրենց կազմաձևերը:
  • Օգտագործվում է երթուղի հասկացությունը Cryptokey Routing. WireGuard-ն ընդունում և ուղարկում է փաթեթներ՝ հիմնված գործընկերների հանրային բանալիի վրա: Երբ սերվերը վերծանում է ճիշտ վավերացված փաթեթը, դրա src դաշտը ստուգվում է: Եթե ​​այն համապատասխանում է կազմաձևին allowed-ips վավերացված գործընկերոջ, փաթեթը ստացվում է WireGuard ինտերֆեյսի միջոցով: Ելքային փաթեթ ուղարկելիս կատարվում է համապատասխան ընթացակարգ՝ վերցվում է փաթեթի dst դաշտը և դրա հիման վրա ընտրվում է համապատասխան համարժեքը, փաթեթը ստորագրվում է իր բանալիով, գաղտնագրվում է գործընկերոջ բանալիով և ուղարկվում է հեռավոր վերջնակետ։ .

WireGuard-ի ողջ հիմնական տրամաբանությունը 4 հազարից պակաս կոդ է վերցնում, մինչդեռ OpenVPN-ն և IPSec-ն ունեն հարյուր հազարավոր տողեր: Ժամանակակից կրիպտոգրաֆիկ ալգորիթմներին աջակցելու համար առաջարկվում է Linux միջուկում ներառել նոր կրիպտոգրաֆիկ API: ցինկ. Ներկայումս քննարկում է ընթանում այն ​​մասին, թե արդյոք սա լավ գաղափար է:

Արտադրողականություն

Առավելագույն կատարողական առավելությունը (համեմատ OpenVPN-ի և IPSec-ի հետ) նկատելի կլինի Linux համակարգերում, քանի որ WireGuard-ն այնտեղ ներդրված է որպես միջուկի մոդուլ։ Բացի այդ, macOS-ը, Android-ը, iOS-ը, FreeBSD-ն և OpenBSD-ն ապահովված են, սակայն դրանցում WireGuard-ն աշխատում է օգտատերերի տարածքում՝ դրանից բխող բոլոր կատարողական հետևանքներով: Սպասվում է, որ Windows-ի աջակցությունը կավելացվի մոտ ապագայում։

Հենանիշային արդյունքների հետ պաշտոնական կայք:

Արդյո՞ք WireGuard-ն ապագայի հիանալի VPN-ն է:

Իմ օգտագործման փորձը

Ես VPN փորձագետ չեմ: Ես մի անգամ ձեռքով ստեղծեցի OpenVPN, և դա շատ հոգնեցուցիչ էր, և ես նույնիսկ չփորձեցի IPSec. Չափազանց շատ որոշումներ կան կայացնելու համար, շատ հեշտ է կրակել քո ոտքին: Հետեւաբար, ես միշտ օգտագործում էի պատրաստի սկրիպտներ՝ սերվերը կարգավորելու համար։

Այսպիսով, WireGuard-ը, իմ տեսանկյունից, ընդհանուր առմամբ իդեալական է օգտագործողի համար: Ցածր մակարդակի բոլոր որոշումները ընդունվում են ճշգրտման մեջ, ուստի տիպիկ VPN ենթակառուցվածքի պատրաստման գործընթացը տևում է ընդամենը մի քանի րոպե: Գրեթե անհնար է խաբել կոնֆիգուրացիայի մեջ:

Տեղադրման գործընթացը մանրամասն նկարագրված պաշտոնական կայքում, ես կցանկանայի առանձին նշել գերազանց OpenWRT աջակցություն.

Կոդավորման բանալիները ստեղծվում են օգտակար ծառայության կողմից wg:

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

Հաջորդը, դուք պետք է ստեղծեք սերվերի կոնֆիգուրացիա /etc/wireguard/wg0.conf հետևյալ բովանդակությամբ.

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

և բարձրացրեք թունելը սցենարով wg-quick:

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

Systemd-ով համակարգերում դուք կարող եք դրա փոխարեն օգտագործել սա sudo systemctl start [email protected].

Հաճախորդի մեքենայի վրա ստեղծեք կազմաձև /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 сервера
PersistentKeepalive = 25 

Եվ բարձրացրեք թունելը նույն կերպ.

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

Մնում է միայն կարգավորել NAT-ը սերվերի վրա, որպեսզի հաճախորդները կարողանան մուտք գործել ինտերնետ, և դուք ավարտեցիք:

Կոդի բազայի օգտագործման այս հեշտությունը և կոմպակտությունը ձեռք են բերվել բանալիների բաշխման գործառույթի վերացման միջոցով: Չկա սերտիֆիկատների բարդ համակարգ և այս ամբողջ կորպորատիվ սարսափը, կարճ գաղտնագրման բանալիները բաշխվում են SSH ստեղների նման: Բայց սա մի խնդիր է առաջացնում.

Թերությունների թվում հարկ է նշել, որ WireGuard-ը չի աշխատի HTTP վստահված անձի միջոցով, քանի որ որպես տրանսպորտ հասանելի է միայն UDP արձանագրությունը: Հարց է առաջանում՝ հնարավո՞ր է արդյոք խայտառակել արձանագրությունը։ Իհարկե, սա VPN-ի ուղղակի խնդիր չէ, բայց OpenVPN-ի համար, օրինակ, կան եղանակներ՝ քողարկվելու որպես HTTPS, որն օգնում է տոտալիտար երկրների բնակիչներին ամբողջությամբ օգտվել ինտերնետից։

Արդյունքները

Ամփոփելու համար սա շատ հետաքրքիր և խոստումնալից նախագիծ է, այն արդեն կարող եք օգտագործել անձնական սերվերների վրա։ Ո՞րն է շահույթը: Բարձր կատարողականություն Linux համակարգերում, տեղադրման և աջակցության հեշտություն, կոմպակտ և ընթեռնելի կոդերի բազա: Այնուամենայնիվ, դեռ վաղ է շտապել բարդ ենթակառուցվածքը WireGuard-ին փոխանցելու համար, արժե սպասել, որ այն ներառվի Linux միջուկում:

Իմ (և ձեր) ժամանակը խնայելու համար ես մշակեցի WireGuard ավտոմատ տեղադրող. Նրա օգնությամբ դուք կարող եք ստեղծել անձնական VPN ձեր և ձեր ընկերների համար՝ նույնիսկ դրա մասին ոչինչ չհասկանալով։

Source: www.habr.com

Добавить комментарий