„WireGuard“ yra bendrosios paskirties VPN (virtualus privatus tinklas), kuris naudoja pažangiausią kriptografiją. Palyginti su kitais populiariais VPN sprendimais, tokiais kaip „IPsec“ ir „OpenVPN“, „WireGuard“ paprastai yra greitesnis, lengviau konfigūruojamas ir turi mažesnį pėdsaką. Tai yra įvairių platformų platforma ir gali veikti beveik bet kur, įskaitant „Linux“, „Windows“, „Android“ ir „MacOS“.
„Wireguard“ yra „peer-to-peer VPN“; jis nenaudoja kliento-serverio modelio. Priklausomai nuo konfigūracijos, bendraamžis gali veikti kaip tradicinis serveris ar klientas. Tai veikia kuriant tinklo sąsają kiekviename bendraamžių įrenginyje, kuris veikia kaip tunelis. Bendraamžiai identifikuoja vienas kitą keisdamiesi ir patvirtindami viešuosius raktus, imituodami SSH modelį. Viešieji raktai susieti su tunelyje leidžiamų IP adresų sąrašu. VPN srautas yra įtrauktas į UDP.
Šiame straipsnyje paaiškinta, kaip įdiegti ir sukonfigūruoti „WireGuard“ „Debian 10“, kuris veiks kaip VPN serveris. Mes taip pat parodysime, kaip sukonfigūruoti „WireGuard“ kaip klientą „Linux“, „Windows“ ir „macOS“. Kliento srautas bus nukreiptas per „Debian 10“ serverį.
Ši sąranka gali būti naudojama kaip apsauga nuo „Man in the Middle“ atakų, naršant internete anonimiškai, apeinant geografiškai ribotą turinį arba leidžiant kolegoms, dirbantiems namuose, saugiai prisijungti prie įmonės tinklo.
Būtinos sąlygos #
Norėdami vadovautis šiuo vadovu, jums reikės mašinos su įdiegtu „Debian 10“. Jums taip pat reikia root arba [sudo prieigos] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / įdiegti paketus ir atlikti pakeitimus sistemoje.
„WireGuard“ serverio nustatymas #
Pradėsime įdiegdami „WireGuard“ paketą „Debian“ kompiuteryje ir nustatydami, kad jis veiktų kaip serveris. Taip pat sukonfigūruosime sistemą, kad ji nukreiptų klientų srautus.
Įdiekite „WireGuard“ „Debian 10“ #
„WireGuard“ galima rasti „Debian“ backports saugyklose. Norėdami pridėti saugyklą prie sistemos, paleiskite:
echo 'deb http: // ftp.debianas.org / debian buster-backports main '| sudo tee / etc / apt / sources.sąrašą.d / buster-backports.sąrašą
Įgalinę saugyklą, atnaujinkite apt talpyklą ir įdiekite „WireGuard“ modulį bei įrankius:
„WireGuard“ veikia kaip branduolio modulis.sudo apt atnaujinimas
sudo apt install wireguard
Konfigūruoti „WireGuard“ #
Galite sukonfigūruoti ir valdyti WireGuard sąsajas su wg
ir greitai
komandinės eilutės įrankiai.
Kiekvienas „WireGuard“ VPN tinklo įrenginys turi turėti privatų ir viešą raktą. Paleiskite šią komandą, kad sugeneruotumėte raktų porą:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Failai yra sugeneruoti / etc / wireguard
kataloge. Naudoti katė
arba mažiau
komandos failų turiniui peržiūrėti. Privatus raktas niekada neturėtų būti dalijamasi su niekuo ir visada turi būti saugus.
„Wireguard“ taip pat palaiko iš anksto bendrinamą raktą, kuris prideda papildomą simetrinio rakto kriptografijos sluoksnį. Šis raktas yra neprivalomas ir turi būti unikalus kiekvienai bendraamžių porai.
Kitas žingsnis yra konfigūruoti tunelio įrenginį, kuris nukreips VPN srautą.
Įrenginį galima nustatyti iš komandinės eilutės naudojant ip
ir wg
arba rankiniu būdu sukūrus konfigūracijos failą. Sukursime konfigūraciją naudodami teksto rengyklę.
Atidarykite redaktorių ir sukurkite naują failą pavadinimu wg0.konf
turinį:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Sąsaja] Adresas = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i% i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Sąsają galite pavadinti kaip tik norite. Tačiau rekomenduojama naudoti kažką panašaus wg0
arba wgvpn0
.
Sąsajos skyriaus nustatymai turi tokią reikšmę:
Adresas - kableliais atskirtas v4 arba v6 IP adresų sąrašas
wg0
sąsaja. Galite nustatyti IP adresą iš diapazono, rezervuoto privatiems tinklams (10.0.0.0/8, 172.16.0.0/12 arba 192.168.0.0/16).„ListenPort“ - klausymosi prievadas.
„PrivateKey“ - privatus raktas, kurį sukūrė
wg genkey
komandą. (Norėdami pamatyti failo tipo turinį:sudo katė / etc / wireguard / privatekey
)„SaveConfig“ - kai nustatyta į „true“, išjungus dabartinę sąsajos būseną išsaugoma konfigūracijos faile.
PostUp - komanda arba scenarijus, vykdomas prieš iškeliant sąsają. Šiame pavyzdyje mes naudojame „iptables“, kad įgalintume maskavimą. Tai leidžia srautui palikti serverį, suteikiant VPN klientams prieigą prie interneto.
Būtinai pakeiskite
ens3
po to-POSTROUTINGAS
kad atitiktų jūsų viešojo tinklo sąsajos pavadinimą. Sąsają galite lengvai rasti naudodami:ip -o -4 maršruto rodymas pagal nutylėjimą | awk 'print $ 5'
„PostDown“ - komanda arba scenarijus, vykdomas prieš žeminant sąsają. „Iptables“ taisyklės bus pašalintos, kai sąsaja neveikia.
The wg0.konf
ir privatekey
failai neturėtų būti skaitomi įprastiems vartotojams. Naudokite chmod
nustatyti failų teises į 600
:
sudo chmod 600 / etc / wireguard / privatekey, wg0.conf
Kai atliksite, atneškite wg0
sąsaja naudojant konfigūracijos faile nurodytus atributus:
sudo wg-greitai wg0
Išvestis atrodys maždaug taip:
[#] ip nuoroda pridėti wg0 tipo laidų apsauga [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 adresas pridėti 10.0.0.1/24 dev wg0 [#] ip nuorodų rinkinys mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Norėdami patikrinti sąsajos būseną ir konfigūraciją, paleiskite:
sudo wg rodyti wg0
sąsaja: viešasis wg0 raktas: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = privatus raktas: (paslėptas) klausymo prievadas: 51820
Taip pat galite patikrinti sąsajos būseną naudodami ip parodyti wg0
:
ip parodyti wg0
4: wg0: mtu 1420 qdisc noqueue state nežinoma grupė numatytoji qlen 1000 nuoroda / nėra inet 10.0.0.1/24 apimties visuotinė wg0 valid_lft forever prefer_lft forever
„WireGuard“ galima valdyti naudojant „Systemd“. Norėdami įkelti „WireGuard“ sąsają įkrovos metu, vykdykite šią komandą:
sudo systemctl įgalinti wg-quick @ wg0
Serverio tinklo ir užkardos konfigūracija #
Kad NAT veiktų, turi būti įgalintas IP persiuntimas. Atidaryk / etc / sysctl.konf
failą ir pridėkite arba panaikinkite šios eilutės komentarą:
sudo nano / etc / sysctl.konf
/ etc / sysctl.konfneto.„ipv4“.„ip_forward“ = 1
Išsaugokite failą ir pritaikykite pakeitimą:
sudo sysctl -p
neto.„ipv4“.„ip_forward“ = 1
Jei naudojate UFW tvarkydami savo užkardą, turite atidaryti UDP srautą uoste 51820
:
sudo ufw leisti 51820 / udp
Viskas. Buvo sukurtas „Debian“ bendraamžis, kuris veiks kaip serveris.
„Linux“ ir „MacOS“ klientų sąranka #
Visų palaikomų platformų diegimo instrukcijas rasite adresu https: // wireguard.com / install / . „Linux“ sistemose galite įdiegti paketą naudodami paskirstymo paketų tvarkyklę ir „MacOS“ su užvirinti
.
Įdiegę atlikite toliau nurodytus veiksmus, kad sukonfigūruotumėte kliento įrenginį.
„Linux“ ir „MacOS“ kliento nustatymo procesas yra beveik toks pat, kaip ir serveryje. Pirmiausia sugeneruokite viešuosius ir asmeninius raktus:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Sukurkite failą wg0.konf
ir pridėkite šį turinį:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Sąsaja] PrivateKey = CLIENT_PRIVATE_KEY adresas = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 LeidžiamaIPs = 0.0.0.0/0
Sąsajos skyriaus nustatymai turi tą pačią reikšmę, kaip ir nustatant serverį:
- Adresas - kableliais atskirtas v4 arba v6 IP adresų sąrašas
wg0
sąsaja. - „PrivateKey“ - norėdami pamatyti failo turinį kliento kompiuteryje, paleiskite:
sudo katė / etc / wireguard / privatekey
Tarpusavio skyriuje yra šie laukai:
- „PublicKey“ - viešas bendraamžio, prie kurio norite prisijungti, raktas. (Serverio turinys
/ etc / wireguard / publickey
failas). - Galutinis taškas - bendraamžio, prie kurio norite prisijungti, IP arba pagrindinio kompiuterio vardas, po kurio yra dvitaškis ir tada prievado numeris, kuriame klausosi nuotolinis bendraamžis.
- „AllowedIPs“ - kableliais atskirtas v4 arba v6 IP adresų sąrašas, iš kurio leidžiamas gaunamas srautas bendraamžiui ir į kurį nukreipiamas šio bendraamžio išeinantis srautas. Mes naudojame 0.0.0.0/0, nes mes nukreipiame srautą ir norime, kad serverio bendraamžis siunčia paketus su bet kokiu šaltinio IP.
Jei reikia sukonfigūruoti papildomus klientus, tiesiog pakartokite tuos pačius veiksmus naudodami kitą privatų IP adresą.
„Windows“ klientų sąranka #
Atsisiųskite ir įdiekite „Windows msi“ paketą iš „WireGuard“ svetainės .
Įdiegę atidarykite „WireGuard“ programą ir spustelėkite „Pridėti tunelį“ -> „Pridėti tuščią tunelį ...“, kaip parodyta žemiau esančiame paveikslėlyje:
„Publickey“ pora automatiškai sukuriama ir rodoma ekrane.
Įveskite tunelio pavadinimą ir redaguokite konfigūraciją taip:
[Sąsaja] PrivateKey = CLIENT_PRIVATE_KEY adresas = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 LeidžiamaIPs = 0.0.0.0/0
Sąsajos skyriuje pridėkite naują eilutę, kad apibrėžtumėte kliento tunelio adresą.
Dalyvių skyriuje pridėkite šiuos laukus:
- PublicKey - viešasis Debian serverio raktas (
/ etc / wireguard / publickey
failas). - Galutinis taškas - „Debian“ serverio IP adresas, po kurio yra dvitaškis ir „WireGuard“ prievadas (51820).
- LeidžiamaIP - 0.0.0.0/0
Baigę spustelėkite mygtuką „Išsaugoti“.
Pridėkite kliento bendraamžį prie serverio #
Paskutinis žingsnis - pridėti kliento viešąjį raktą ir IP adresą į serverį. Norėdami tai padaryti, paleiskite šią komandą „Debian“ serveryje:
sudo wg set wg0 bendraamžis CLIENT_PUBLIC_KEY leidžiamas ips 10.0.0.2
Būtinai pakeiskite CLIENT_PUBLIC_KEY
naudodami viešąjį raktą, kurį sugeneravote kliento mašinoje (sudo katė / etc / wireguard / publickey
) ir pakoreguokite kliento IP adresą, jei jis skiriasi. „Windows“ vartotojai gali nukopijuoti viešąjį raktą iš „WireGuard“ programos.
Baigę grįžkite į kliento mašiną ir atidarykite tunelio sąsają.
„Linux“ ir „MacOS“ klientai #
Paleiskite šią komandą paleiskite šią komandą:
sudo wg-greitai wg0
Dabar turėtumėte prisijungti prie „Debian“ serverio, o srautas iš kliento mašinos turėtų būti nukreiptas per jį. Ryšį galite patikrinti naudodami:
sudo wg
sąsaja: viešasis wg0 raktas: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = privatus raktas: (paslėptas) klausymo prievadas: 53527 fwmark: 0xca6c bendraamžis: r3imyh3MCYggaZACmkx + CxlD6uCGGg = QCGg = QCGg = QCGg = QCGg = QCGAgICI.XXX.XXX.XXX: 51820 leidžiami ips: 0.0.0.0/0 paskutinis paspaudimas: prieš 53 sekundes perdavimas: 3.23 KiB gavo, 3.Išsiųsta 50 KiB
Taip pat galite atidaryti savo naršyklę, įvesti „what is my ip“ ir turėtumėte pamatyti savo „Debian“ serverio IP adresą.
Norėdami sustabdyti tunelį, nuleiskite wg0
sąsaja:
sudo wg-greitai žemyn wg0
„Windows“ klientai #
Jei „Windows“ įdiegėte „WireGuard“, spustelėkite mygtuką „Aktyvinti“. Prisijungus bendraamžiams, tunelio būsena pasikeis į Aktyvi:
Išvada Nr
Parodėme, kaip įdiegti „WireGuard“ „Debian 10“ ir sukonfigūruoti jį kaip VPN serverį. Ši sąranka leidžia naršyti internete anonimiškai, išlaikant srauto duomenis privačius.
Jei susiduriate su kokiomis nors problemomis, nedvejodami palikite komentarą.