GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit WireGuard VPN v Linuxu

Pokud v práci nebo doma používáte více než jeden počítač, pravděpodobně budete chtít mít z každého z nich nějaký způsob přístupu k interní síti. Dobrou zprávou je, že WireGuard VPN tento problém řeší.

V tomto tutoriálu se naučíte, jak nastavit WireGuard VPN, aby spustila plnohodnotnou VPN pro připojení vašich počítačů a zajistila vám bezpečný přístup.

Jste připraveni ušpinit si ruce? Čas se ponořit!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:

  • Systém Linux – Tento tutoriál používá Ubuntu 20.04 LTS, ale pro ukázky bude fungovat jakákoli distribuce Debianu.
  • Místní počítač – Tato ukázka používá 64bitového klienta Windows 10 pro připojení k serveru WireGuard VPN. 💡 Pokud používáte vzdálený server, ujistěte se, že máte oprávnění k připojení k tomuto serveru z místního počítače.
  • Uživatel bez oprávnění root s [sudo]() privilegia.

Instalace WireGuard

Ve výchozím nastavení se WireGuard nenainstaluje do vaší distribuce Ubuntu Linux. Nejprve tedy nainstalujete WireGuard pomocí správce balíčků APT.

Můžete si také stáhnout a zkompilovat WireGuard ze zdroje, ale pro tuto ukázku stačí minimální nastavení.

Spusťte následující příkaz do update databázi balíčků systému.

sudo apt update -y

Nyní spusťte následující příkaz k instalaci wireguard balík. wireguard balíček poskytuje minimalistický modul jádra pro podporu zabezpečené privátní sítě a protokolu.

Protokol WireGuard zahrnuje veřejné klíče distribuované v autentizačním schématu podobném SSH, které je kombinováno se symetrickými šifrovacími klíči k navázání soukromých spojení typu point-to-point nebo site-to-site.

sudo apt install wireguard -y

Po instalaci se WireGuard spustí jako modul jádra. WireGuard běží v prostoru jádra, protože WireGuard potřebuje přímý přístup k síťovým rozhraním k navázání připojení VPN.

Generování páru klíčů

Nyní, když máte nainstalovaný WireGuard, je čas vygenerovat pár klíčů (veřejný klíč a soukromý klíč) spuštěním wg genkey příkaz. Veřejný klíč je vaše „identita“ WireGuard. Každý, kdo se chce připojit k vaší VPN, bude potřebovat přístup k tomuto veřejnému klíči. Naproti tomu soukromý klíč je to, co používáte k navázání zabezpečeného připojení.

Uchovávejte soukromý klíč v tajnosti. Kdokoli, kdo získá přístup k vašemu soukromému klíči, jej může použít k připojení k vaší VPN.

1. Spusťte umask příkaz níže, aby byl váš pár klíčů čitelný. umask příkaz určuje masku vytváření režimu souborů a určuje oprávnění udělená nově vytvořeným souborům.

Použijete umasks hodnotu 077 takže všechny nově vytvořené soubory jsou čitelné pro každého, ale zapisovat do nich může pouze jejich vlastník. Tento krok zajistí, že vaše klíče WireGuard nelze upravovat ve světě.

umask 077

2. Dále spusťte níže uvedený příkaz pro vygenerování (wg genkey ) pár klíčů.

Příkaz zapíše soukromý klíč do /etc/wireguard/privatekey soubor a veřejný klíč (wg pubkey | sudo tee ) na /etc/wireguard/publickey soubor.

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Po spuštění příkazu získáte na svém terminálu hodnotu, což je váš veřejný klíč, jak je uvedeno níže. Níže uvedený výstup potvrzuje, že jste svůj veřejný klíč vygenerovali úspěšně.

Zkopírujte a uložte tento veřejný klíč někam jinam, protože vaši kolegové budou tento klíč pro publikování používat k připojení k vaší WireGuard VPN. Vaše WireGuard VPN je jako tunel mezi vrstevníky.

3. Nakonec spusťte cat níže, abyste ověřili, že jste svůj soukromý klíč vygenerovali úspěšně.

cat /etc/wireguard/privatekey

Poznamenejte si svůj soukromý klíč, jako ve výstupu níže, jak jej definujete v konfiguraci serveru WireGuard VPN.

Konfigurace WireGuard VPN serveru

Nyní, když jste vygenerovali pár klíčů pro zabezpečené připojení k serveru, je dalším krokem konfigurace serveru WireGuard VPN.

1. Vytvořte nový soubor s názvem wg0.conf pomocí vašeho oblíbeného textového editoru a naplňte wg0.conf soubor s následujícím obsahem. Ujistěte se, že jste nahradili eth0 po POSTROUTING -o s síťovým rozhraním .

Pojmenování konfiguračních souborů je na vás, ale chcete-li si názvy lépe zapamatovat, volte názvy jako wg0, wg1 (wg znamená WireGuard) nebo tun0, tun1 (tun znamená tunelování) a tak dále. em>

2. Naplňte soubor wg0.conf soubor s následujícím obsahem. Ujistěte se, že jste nahradili eth0 po POSTROUTING -o s vaším síťovým rozhraním, uložte změny a ukončete editor.

Soubor wg0.conf obsahuje všechny síťové a bezpečnostní parametry vašeho rozhraní WireGuard. Bez něj vaše rozhraní WireGuard a vaši kolegové nemohou navázat zabezpečené připojení.

# Defines your WireGuard interface name
[Interface]
# Sets the server's Public IP Address. This network is routed to your server's 
# eth0 interface. This is an IP range of private IPv4 that you will use 
# for your peers to connect to the broader internet using your VPN server. 
# Your peer can use any private IPs from 10.8.0.1 to 10.8.0.255.
Address = 10.0.0.1/24
# Set the value to "true" to save your server's config file automatically 
# after a connection is established or when you shut down your VPN server.
SaveConfig = true
# Sets the port that your VPN server listens on. This port should be open on your router
# so that your peers can access this port to connect to your VPN
ListenPort = 51820
# Replace  with your private key generated earlier.
PrivateKey = 
# Sets WireGuard to automatically accept new connections, which allows your peers 
# to access your server with their own public IP address. Your VPN server forwards 
# your peers’ connection through your private network to make it seem 
# like they are coming directly from the peers.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Reverses the PostUp values when there's a disconnection 
# to make the network settings return to original state
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

3. Spuštěním příkazu níže zapněte wg0 rozhraní.

sudo wg-quick up wg0 

4. Nakonec spusťte níže uvedený příkaz a zkontrolujte wg0 stav rozhraní.

sudo wg show wg0 

Můžete vidět wg0 rozhraní běží a čeká na připojení na portu 51820.

Konfigurace sítě serveru a brány firewall

Při konfiguraci serveru WireGuard musíte také nakonfigurovat místní síť a bránu firewall. Získáte tak větší kontrolu nad tím, kdo se může připojit k vašemu serveru.

Přepošlete port UDP 51820 aby se vaši kolegové mohli připojit k vašemu serveru VPN, ale nemůžete mít tento port stále otevřený. Nakonfigurujete tedy funkci NAT vašeho routeru tak, aby přesměrovala provoz na portu 51820 prostřednictvím vašeho serveru VPN.

1. Otevřete soubor etc/sysctl.conf soubor pomocí vašeho oblíbeného editoru.

2. Vyhledejte a odkomentujte #net.ipv4.ip_forward=1 řádek odstraněním „# ” pro povolení předávání IPv4 IP a uložení změn.

3. Dále spusťte následující sysctl příkaz použít a učinit změny trvalými (-p ).

sudo sysctl -p

Váš server WireGuard bude nyní přesměrovávat příchozí provoz od klientů vašich protějšků WireGuard do širšího internetu. Po předání pak WireGuard předá data zpět kolegům přes ethernetové rozhraní eth0 VPN.

Veškerý provoz přicházející z širšího internetu a směřující na váš místní server WireGuard však klesne na výchozí síťový firewall systému Linux. Pokud jako firewall používáte UFW, budete muset přidat několik dalších pravidel.

4. Spuštěním níže uvedeného příkazu povolte udp připojení na portu 51820 sám.

sudo ufw allow 51820/udp

5. Nyní spusťte níže uvedený příkaz a zkontrolujte stav vašeho firewallu. sudo ufw status command

sudo ufw status command

Váš UFW firewall by nyní měl vypadat takto:

Konfigurace klienta WireGuard

Váš server WireGuard VPN funguje perfektně, takže příště nakonfigurujete klienta pro testování připojení k vašemu serveru WireGuard VPN. Váš klient může být Windows, MAC OS, Linux nebo BSD, ale tato ukázka používá 64bitového klienta Windows 10.

Klient WireGuard je zařízení, které se připojuje k serveru VPN pomocí vlastního jedinečného veřejného klíče (ID). Server WireGuard ověří klienta a zašifruje veškerý provoz mezi ním a klientem.

Všimněte si, že následující kroky je třeba provést na všech klientských zařízeních WireGuard.

1. Přejděte na oficiální stránku stahování pro WireGuard, stáhněte si instalační program klienta WireGuard pro váš operační systém a spusťte jej. Tato ukázka používá klienta pro Windows.

2. Otevřete klientskou aplikaci WireGuard a klikněte na Přidat tunel (vlevo dole) —> Přidat prázdný tunel vytvořit prázdný tunel. Zobrazí se vyskakovací okno pro konfiguraci síťového připojení VPN (krok tři).

Síťové připojení VPN nakonfigurujte takto:

  • Zadejte název připojení k síti VPN, jak je uvedeno níže. Ale pro toto demo je název nastaven na ubuntu .
  • Ponechte výchozí vygenerovaný Soukromý klíč , přidejte nový řádek níže a zadejte Address =. Nahraďte statickou IP klienta WireGuard.
  • Přidat nového [Peer] blok a níže přidejte nový PublicKey = čára. Nahraďte s veřejným klíčem vašeho serveru VPN, který jste uložili v části „Vygenerování páru klíčů“ (krok dva).
  • Přidat nový Koncový bod =:51820 , kde 51820 je port, na kterém váš server WireGuard naslouchá. Nahradit s veřejnou IP adresou vašeho VPN serveru.
  • Přidat nový AllowedIPs – 0.0.0.0/0 čára. Tato linka umožňuje klientovi WireGuard přístup ke všem adresám IPv4 a IPv6 v síti.
  • Klikněte na tlačítko Uložit uložit konfiguraci připojení k síti VPN.

4. Nakonec se vraťte na svůj terminál serveru VPN a spusťte níže uvedený příkaz pro přidání veřejného klíče a IP adresy klienta na server VPN.

Nezapomeňte nahradit následující:

  • – s vaším klientským veřejným klíčem.
  • 10.0.0.2 – s IP adresou vašeho klientského zařízení, aby váš server VPN mohl komunikovat s vaším klientským zařízením.sudo wg set wg0 peer allowed-ips 10.0.0.2

Testování, zda VPN tunel funguje

Nyní již máte k dispozici funkční server a klienta WireGuard. Nyní je čas otestovat spojení mezi nimi a zjistit, zda funguje tunel VPN.

1. Otevřete klientskou aplikaci WireGuard a klikněte na ubuntu připojení (VPN tunel), které jste vytvořili.

2. Klikněte na Aktivovat tlačítko pro aktivaci VPN tunelu.

3. Po aktivaci tunelu VPN se zobrazí Stav změnit na Aktivní , Jak je ukázáno níže. A je to! Nyní máte úspěšné připojení k serveru VPN.

Závěr

V tomto tutoriálu jste se naučili, jak nakonfigurovat server WireGuard VPN. Také jste nakonfigurovali klienta tak, aby otestoval, zda připojení mezi serverem WireGuard VPN a klientem funguje vytvořením tunelu VPN.

V této fázi nyní můžete nakonfigurovat více serverů a klientů WireGuard pro šifrovanou privátní síť bez centralizovaného řízení autority.

Jak budete stavět na těchto nově nabytých znalostech? Možná zkuste prozkoumat Ansible prostřednictvím nastavení WireGuard VPN?


Linux
  1. Jak nastavit Wireguard VPN na CentOS 8

  2. Jak nastavit WireGuard VPN na Ubuntu 20.04

  3. Jak nastavit proměnnou $Path v Linuxu

  1. Jak nastavit WireGuard VPN na Ubuntu (průvodce krok za krokem)

  2. Jak nastavit klíče SSH

  3. Jak nastavit WireGuard VPN na CentOS 8

  1. Jak nastavit tiskárnu v systému Linux

  2. Nastavte VPN server na vašem počítači se systémem Linux

  3. Jak nastavit Cron Job v Linuxu