Kā iestatīt WireGuard VPN serveri un klientu Ubuntu 20.04

Iestatiet pašmitinātu VPN, izmantojot Wireguard

A VPN (virtuālais privātais tīkls) ļauj lietotājam attālināti izveidot savienojumu ar privāto tīklu tā, it kā lietotāja dators būtu tieši savienots ar privāto tīklu. Tehnoloģija sākotnēji tika izstrādāta, lai nodrošinātu attālinātu piekļuvi uzņēmuma iekšējam privātajam tīklam darbiniekiem, kas faktiski neatrodas iekšējā tīkla atrašanās vietā.

Iekšējā tīkla atrašanās vietā ir izvietots VPN serveris. Šis serveris atrodas publiskajā tīklā, un darbinieks tam var piekļūt, izmantojot VPN klientu. Lai izveidotu savienojumu ar VPN serveri, ir nepieciešama autentifikācija. Saziņa starp VPN serveri un VPN klientu tiek nodrošināta, izmantojot tunelēšanas protokolu. Ņemiet vērā, ka šī saziņa var būt vai nebūt šifrēta, taču parasti lielākajā daļā VPN protokolu tā ir šifrēta.

Vēl viens VPN lietojums ir iegūt anonimitāti, piekļūstot internetam vai lai apietu ģeogrāfiskos ierobežojumus, kas noteikti, piekļūstot dažām vietnēm. Šādos gadījumos tīkls, ar kuru lietotājs vēlas izveidot savienojumu, nav privāts tīkls, bet gan internets.

Gadu gaitā ir izstrādāti daudzi VPN protokoli. Šajos protokolos tiek izmantoti dažādi tunelēšanas protokoli un šifrēšanas algoritmi saziņai starp serveri un klientu.

Viens no šādiem protokoliem, kas pēdējā laikā tiek plaši izmantots, ir Vadu aizsargs. Wireguard ir vieglāks, vienkāršāks un efektīvāks nekā labi zināmie tradicionāli izmantotie VPN protokoli, piemēram, OpenVPN, IPSec. Tas jau ir ieviests operētājsistēmām Windows, Mac OS un daudziem Linux izplatījumiem. Operētājsistēmā Linux tas ir ieviests kā kodola modulis. Tas ir pieejams oficiālajos Ubuntu 20.04 krātuvēs.

Šajā rakstā mēs redzēsim, kā Ubuntu 20.04 iestatīt Wireguard VPN serveri un klientu.

Uzstādīšana

Šim rakstam es iestatu Wireguard serveri Ubuntu 20.04 Linode un Wireguard Client savā vietējā datorā ar Ubuntu 20.04.

Sūtījums vadu aizsargs instalē gan Wireguard serveri, gan klientu. Palaidiet šādu komandu gan servera mašīnā, gan klienta mašīnā.

sudo apt install wireguard

Servera konfigurācija

Drošības atslēgas

Mums ir jāģenerē publisko/privāto atslēgu pāru kopums lai autentificētu un aizsargātu Wireguard savienojumu. To var izdarīt, izmantojot šādas komandas:

sudo su cd /etc/wireguard umask 077 wg genkey | tee privātā_atslēga | wg pubkey > public_key

Ņemiet vērā, ka mēs veicam visus konfigurācijas uzdevumus kā superlietotājs. Iemesls ir piekļuve direktorijai /etc/wireguard ir liegta parastajiem lietotājiem, un parastam lietotājam piekļuvi direktorijam nevar iegūt tikai ar sudo privilēģijām.

Tālāk mēs iestatām faila izveides masku uz 077. Tas nozīmē, ka ikreiz, kad šajā mapē ar kādu procesu tiek izveidots jauns fails, tā atļaujas tiks automātiski maskētas ar 077. Piemēram. ja šajā mapē tiek izveidots fails ar atļaujām 777, tas tiek automātiski maskēts un atļaujas faktiski kļūst par 700. Tas tiek darīts tā, lai tikai faila īpašniekam būtu visas faila atļaujas, bet visiem pārējiem nav atļauju.

Nākamajā rindā mēs ģenerējam publisko/privāto atslēgu pāri serverim. Tie tiek saglabāti failos privātā_atslēga un publiskā_atslēga. Lai skatītu atslēgas, palaidiet:

kaķa privātā_atslēga kaķa publiskā_atslēga

Nokopējiet privāto atslēgu, mums tā ir nepieciešama nākamajā darbībā.

Piezīme: Nekad nekoplietojiet savu privāto atslēgu publiski!

Konfigurācijas fails

Izveidosim Wireguard servera konfigurācijas failu. Varat izvēlēties jebkuru faila nosaukumu. Mēs izveidosim failu wg0.conf šajā piemērā.

vim wg0.conf

Pievienojiet failam tālāk norādīto.

[Interfeiss] Adrese = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE 

Ielīmējiet privāto atslēgu, ko mēs iepriekš kopējām 5. rindiņā iepriekš minētajā kodā.

Mums ir jākonfigurē Wireguard citā (virtuālajā) apakštīklā nekā servera IP adrese. Šeit es izmantoju 10.20.43.1 serverim un izmantošu 10.20.43.2 klientam. Šeit var izmantot jebkuru apakštīklu. Lai iegūtu servera un interfeisa IP adresi, palaidiet:

ifconfig

Ņemiet vērā servera IP adresi. Tas ir nepieciešams klienta konfigurēšanas laikā.

Servera izmantotā saskarne, kā redzams attēlā iepriekš, ir eth0. Interfeisa nosaukums var atšķirties atkarībā no lietotāja tīkla, tas var būt wlan0 vai wlp2s0 gadījumā, ja lietotājs ir pieslēgts WiFi tīklam, izmantojot bezvadu karti.

Nomainiet iekšā PostUp un PostDown ar savu saskarni; šajā piemērā tā ir eth0.PostUp un PostDown direktīvas tiek izmantotas, lai norādītu, kuras komandas jāizpilda, attiecīgi startējot un apstājoties serverim. Mūsu piemērā mēs izmantojam iptables komanda, lai iestatītu IP noteikumus tā, ka servera IP adrese tiek koplietota klientiem. Noteikumi tiks atcelti, tiklīdz serveris apstāsies.

Saglabājiet un izejiet no faila. Lietojot vim, nospiediet Esc, pēc tam ierakstiet :wq un nospiediet Ievadiet lai saglabātu un izietu.

Ja lietojat a ufw servera ugunsmūris, mums ir jāatļauj UDP savienojumi ar VPN servera portu 51190.

ufw atļauj 51190/udp

Pakalpojuma sākšana

Kad konfigurācija ir pabeigta, mēs varam sākt Wireguard VPN pakalpojumu.

Lai iespējotu pakalpojumu, lai palaistu sāknēšanas laikā, palaidiet:

systemctl enable wg-quick@wg0

Ņemiet vērā, ka šeit wg0 ir konfigurācijas faila nosaukums.

Sākt pakalpojumu, palaist:

pakalpojuma wg-quick@wg0 sākums

Pārbaudīt ka pakalpojums ir veiksmīgi sācies:

pakalpojuma wg-quick@wg0 statuss

Pārbaudiet, vai saskarne mēs izveidojām konfigurācijas failā, ir sākusies, izmantojot IP komandu.

ip šovs wg0

Wireguard VPN serveris tagad ir iestatīts un darbojas. Tagad konfigurēsim klientu.

Klienta konfigurācija

Wireguard klienta konfigurācija ir vairāk vai mazāk tāda pati kā servera konfigurācija. Mēs ģenerējam klienta atslēgas un pēc tam izveidojam konfigurācijas failu.

Drošības atslēgas

Lai ģenerētu publisko/privāto atslēgu savienojiet pāri klientam, palaidiet:

sudo su cd /etc/wireguard umask 077 wg genkey | tee klienta_privātā_atslēga | wg pubkey > klienta_publiskā_atslēga

Klienta publiskās un privātās atslēgas tagad tiek ģenerētas attiecīgi failos klienta_privātā_atslēga un klienta_publiskā_atslēga.

Pārbaudiet, vai tie ir izveidoti, izmantojot kaķis komandu.

cat client_private_key cat client_public_key

Kopējiet parādīto privāto atslēgu, jo mums tā jāpievieno klienta konfigurācijas failam.

Konfigurācijas fails

Izveidojiet konfigurācijas failu ar jebkuru vārdu, kuru vēlaties. Mēs to izveidosim ar nosaukumu wg0-klients šim piemēram.

vim wg0-client.conf

Pievienojiet šādu konfigurāciju.

[Interfeiss] # Klienta adreses IP adrese un privātā atslēga = 10.20.43.2/24 PrivateKey = [Peer] # Publiskā atslēga, IP adrese un servera ports PublicKey = galapunkts = :51190 AllowedIPs = 0.0.0.0/0, : :/0

Ievadiet klienta apakštīkla adresi. Kā aprakstīts iepriekš, mēs izmantojam 10.20.43.2 klientam šajā piemērā.

Pievienojiet klienta privāto atslēgu ģenerēts iepriekšējā darbībā 4. rindiņā iepriekš konfigurācijas kodā.

Sadaļā “Peer” mēs pievienojam informāciju par Wireguard VPN serveri mēs vēlamies izveidot savienojumu ar.

Ievadiet servera publisko atslēgu. Ievadiet servera IP adrese, ko iepriekš atzīmējām, un portēt dotajā formātā pret Gala punkts. Šis ir ports, kuru norādījām servera konfigurācijas failā un no kura tika palaists VPN pakalpojums serverī.

Atļautie IP ir jāievada kā norādīts (0.0.0.0/0), lai jebkurš klienta izmantotā dinamiskā publiskā IP pieprasījums vienmēr tiktu pārsūtīts uz VPN serveri.

Saglabājiet un izejiet no faila. Lietojot vim, nospiediet Esc, pēc tam ierakstiet :wq un nospiediet Ievadiet lai saglabātu un izietu.

Iespējot klientu apkalpošanu palaist ar katru zābaku un sākt to.

systemctl enable wg-quick@wg-client service wg-quick@wg-client start

Pārbaudīt ja pakalpojums ir sācies.

pakalpojuma wg-quick@wg-klienta statuss

Vienādranga pievienošana serverim

Tagad mums ir izveidots un darbojas VPN serveris un klients. Tomēr drošs tunelis starp abiem netiek izveidots, ja vien mēs neizveidojam vienādranga savienojumu starp serveri un klientu.

Atgriezties uz serveri. Pirmkārt, apturēt VPN pakalpojumu.

pakalpojums wg-quick@wg0 apstāties

Pēc tam atveriet konfigurācijas failu pievienot vienādranga konfigurāciju (klients).

vim /etc/wireguard/wg0.conf

Pievienot tālāk norādītās rindiņas failam.

[Salīdzinošs] PublicKey = AllowedIPs = 10.20.43.2/32

Tagad vēlreiz sāciet VPN pakalpojumu.

pakalpojuma wg-quick@wg0 sākums

Tieši tā! Šī ir visa konfigurācija, kas nepieciešama Wireguard VPN klienta un servera iestatīšanai. Tagad pārbaudīsim mūsu VPN.

VPN testēšana

Vispirms veiksim vienkāršu ping no klienta uz serveri, lai pārliecinātos, ka VPN tuneļa sakari darbojas. Klientā izpildiet tālāk norādītās darbības:

ping 10.20.43.1

Nākamais, atveriet tīmekļa pārlūkprogrammu un atveriet jebkuru vietni lai pārbaudītu, vai no klienta iekārtas varat izveidot savienojumu ar internetu. Varat arī pārbaudīt interneta savienojumu, izmantojot komandrindu, izmantojot wget.

wget 

Tagad mēs esam pārbaudījuši tuneļa savienojumu un interneta savienojumu. Ja abi darbojas, mums tagad ir jāpārliecinās, ka visa interneta trafika, kas nonāk klientam, iet caur serveri.

Lai to izdarītu, mums vienkārši jāpārbauda klienta IP adrese, ko redz internets. Viens veids, kā to izdarīt, ir atvērt vietni whatsmyip.org. Vai arī no komandrindas mēs varam pieprasīt citu līdzīgu pakalpojumu ar nosaukumu IP info, izmantojot Curl.

Klienta datorā izpildiet tālāk norādīto

čokurošanās //ipinfo.io/ip

Jā. Tā ir Linode publiskā IP adrese, kurā tiek mitināts VPN serveris. Tādā veidā tiek panākta anonimitāte, izmantojot VPN, jo visā internetā tagad ir redzams VPN servera, nevis jūsu datora IP.

Secinājums

Iestatīšanas vienkāršība ir viena no svarīgākajām Wireguard priekšrocībām salīdzinājumā ar tradicionālo VPN programmatūru, piemēram, OpenVPN, kuras iestatīšanai ir nepieciešamas augstākas zināšanas par tīklu un maršrutēšanu. Tomēr trūkst detalizētas oficiālās Wireguard dokumentācijas, kas var radīt problēmas, ja Wireguard iestatījumos rodas kļūdas vai tas nedarbojas, kā paredzēts.

Tomēr Wireguard ir lieliska izvēle, ja vēlaties pašam mitinātu VPN drošai saziņai internetā. Lai uzzinātu vairāk par Wireguard un tā izmantotajiem protokoliem un tehnoloģijām, varat apskatīt oficiālo vietni.