WireGuard — suurepĂ€rane VPN tulevikuks?

WireGuard — suurepĂ€rane VPN tulevikuks?

On aeg, mil VPN ei ole enam eksootiline tööriist habemikest sĂŒsteemihalduritele. Kasutajatel on erinevad vajadused, kuid tĂ”siasi on see, et VPN on muutunud kĂ”igile vajalikuks.

Praeguste VPN-lahenduste probleemiks on see, et nende Ôigesti seadistamine on keeruline, hooldus kallis ja nendes on palju kahtlase kvaliteediga pÀrandkoodi.

MĂ”ned aastad tagasi otsustas Kanada kĂŒberturvalisuse spetsialist Jason A. Donenfeld, et on aeg selle olukorraga hakkama saada, ja alustas töötamist WireGuard. Praegu valmistatakse WireGuard ette Linuxi tuuma lisamiseks, ta on saanud isegi kiidusĂ”nu Linus Torvaldsi ja Ameerika senatis.

WireGuardi vÀidetavad eelised teiste VPN-lahenduste ees:

  • Lihtne kasutada.
  • Kasutab kaasaegseid krĂŒptograafiat: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
  • Kompaktne ja loetav kood, kergem uurida haavatavuste osas.
  • KĂ”rge tootlikkus.
  • Selge ja lĂ€bimĂ”eldud spetsifikatsioon.

Kas see on tÔeliselt leidunud hÔbemÔru? Kas OpenVPN ja IPSec on aeg matta? Otsustasin selle vÀlja selgitada ja tegin samal ajal skripti isikliku VPN-serveri automaatseks installimiseks.

Tööprintsiibid

Tööprintsiibe saab kirjeldada jÀrgmiselt:

  • Looge WireGuardi liides, mÀÀrake sellele privaatne vĂ”ti ja IP-aadress. Laadige teiste peers'ide seadistused: nende avalikud vĂ”tmed, IP-aadressid jne.
  • KĂ”ik IP-paketid, mis saabuvad WireGuardi liidesesse, kapseldatakse UDP-sse ja toimetatakse ohutult teistesse peers'idesse.
  • Kliendid mÀÀravad seadistustes serveri avaliku IP-aadressi. Server tĂ€psustab automaatselt klientide vĂ€lised aadressid, kui need saavad Ă”igesti autentitud andmed.
  • Server vĂ”ib muuta avalikku IP-aadressi, katkestamata tööd. Sel juhul saadab ta ĂŒhendatud klientidele teate, et nad uuendavad oma konfiguratsiooni reaalajas.
  • Kasutatakse marsruutimise Cryptokey Routing. WireGuard vastutab pakettide vastuvĂ”tmise ja saatmise eest avaliku vĂ”tme alusel. Kui server dekodeerib korralikult autentitud paketi, kontrollitakse selle src vĂ€lja. Kui see vastab konfiguratsioonile allowed-ips autentitud peer'ile, siis vĂ”tab WireGuard paketi vastu. VĂ€lja saadetava paketi saatmise korral toimub vastav protseduur: vĂ”etakse dst vĂ€lja paketist ja selle alusel valitakse sobiv peer, pakett allkirjastatakse oma vĂ”tmega, krĂŒpteeritakse peer'i vĂ”tmega ja saadetakse kaugservisse.

Kogu WireGuard'i pĂ”hiloogika maht on vĂ€hem kui 4000 rida koodi, samas kui OpenVPN ja IPSec sisaldavad sadu tuhandeid ridu. Kaasaegsete krĂŒptoalgoritmide toetamiseks on soovitatav lisada Linuxi tuumasse uus krĂŒptograafiline API. Zinc. Praegu arutatakse, kui hea mĂ”te see on.

TÔhusus

Maksimaalne jĂ”udluse eelis (vĂ”rreldes OpenVPN ja IPSec'iga) on mĂ€rgatav Linuxi sĂŒsteemides, kuna seal on WireGuard teostatud tuumamoodulina. Lisaks toetatakse macOS'i, Androidi, iOS'i, FreeBSD-d ja OpenBSD-d, kus WireGuard töötab userspaces, mis toob kaasa jĂ”udluse probleeme. Windowsi toe lisamist lubatakse lĂ€hiajal.

Pingutuste tulemused on ametlikult veebisaidilt:

WireGuard — suurepĂ€rane VPN tulevikuks?

Minu kogemus kasutamisel

Ma ei ole VPN-i seadistamise ekspert. Üks kord seadistasin OpenVPN-i kĂ€sitsi ja see oli ĂŒsna vaevarikas, IPSec-i ma isegi ei proovinud. Otsuste tegemine on liiga keeruline, on vĂ€ga lihtne endale jalga lasta. SeetĂ”ttu olen alati kasutanud valmis skripte serveri seadistamiseks.

Nii et WireGuard, minu arvates, on kasutajale tĂ€iesti ideaalne. KĂ”ik madala taseme lahendused on mÀÀratud spetsifikatsioonis, nii et tĂŒĂŒpilise VPN infrastruktuuri ettevalmistamine vĂ”tab vaid paar minutit. Peaaegu on vĂ”imatu vale konfiguratsiooniga eksida.

Installimisprotsess detailne kirjeldus ametlikul veebilehel, soovin eraldi mÀrkida suurepÀrase OpenWRT toe.

KrĂŒpteerimisvĂ”tmed genereeritakse tööriistaga wg:

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

SeejÀrel tuleb luua serveri konfiguratsioon /etc/wireguard/wg0.conf jÀrgmise sisuga:

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

ja tÔsta tunnel skripti abil wg-quick:

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

Systemd sĂŒsteemides vĂ”ib selle asemel kasutada sudo systemctl start wg-quick@wg0.service.

Kliendi masinas luua konfiguratsioon /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 # Serveri vÀlise IP 

Ja tÀpselt samamoodi tÔsta tunnel:

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

JÀÀb seadistada NAT serveris, et kliendid saaksid Internetti pÀÀseda, ja kÔik on valmis!

Selle kasutuslihtsuse ja koodibaasi kompaktsuse saavutasime loobudes vĂ”tmete jaotamise funktsioonist. Siin pole keerulist sertifikaadi sĂŒsteemi ja kogu seda ettevĂ”tte hirmus, lĂŒhikesed krĂŒpteerimisvĂ”tmed levivad umbes nagu SSH vĂ”ti. Kuid see tekitab probleemi: WireGuardi integreerimine vĂ”ib olla mĂ”nel juba olemasoleval vĂ”rgul keeruline.

Puudustest tuleks mĂ€rkida, et WireGuard ei toimi HTTP-proxy kaudu, kuna transportimiseks on saadaval ainult UDP-protokoll. TĂ”statub kĂŒsimus, kas protokolli on vĂ”imalik maskeerida? Loomulikult ei ole see VPN-i otsene ĂŒlesanne, kuid nĂ€iteks OpenVPN-i puhul on olemas viise, kuidas maskeerida HTTPS-i alla, mis aitab totalitaarsetes riikides elavatel inimestel Interneti tĂ”husalt kasutada.

JĂ€reldused

KokkuvĂ”ttes on see vĂ€ga huvitav ja paljutĂ”otav projekt, mida saab juba praegu kasutada isiklikel serveritel. Milline kasu? KĂ”rge jĂ”udlus Linuxi sĂŒsteemides, seadistamise ja haldamise lihtsus, kompaktne ja loetav koodibaas. Siiski on veel vara hakata keerulist infrastruktuuri WireGuardi peale ĂŒle viima, tuleks oodata, kuni see lisatakse Linuxi kerneli koostisse.

Oma (ja teie) aja sÀÀstmiseks olen vÀlja töötanud automaatse WireGuardi installeri. Selle abil saab luua omaenda VPN-i isegi siis, kui te ei tea sellest midagi.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster