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.