Tento výukový program vám ukáže, jak nastavit server WireGuard VPN na Ubuntu ve srozumitelných krocích.
Obsah
- Krok 1:Povolte předávání IP na serveru
- Krok 2:Nainstalujte WireGuard na Ubuntu
- Krok 3:Nakonfigurujte WireGuard VPN Server na Ubuntu
- Krok 3.1:Vygenerujte veřejný/soukromý klíčový pár
- Krok 3.2:Konfigurace tunelového zařízení
- Krok 4:Povolte a spusťte službu WireGuard VPN
- Krok 5:Instalace a konfigurace klienta WireGuard
- Krok 6:Připojení klienta WireGuard k serveru
- Závěr
WireGuard je open source, bezplatný a rychlý VPN server, který využívá nejmodernější kryptografii. Přenáší provoz přes UDP s lepším výkonem než typické dva tunelovací protokoly, tj. OpenVPN a IPsec.
WireGuard je peer-to-peer VPN výslovně vytvořená pro linuxové jádro. Běží uvnitř linuxového jádra a umožňuje vám vytvořit rychlý, moderní a bezpečný tunel VPN.
WireGuard funguje tak, že na každém peer zařízení vytvoří síťové rozhraní, které funguje jako tunel. Peers se navzájem ověřují výměnou a ověřováním veřejných klíčů, napodobováním modelu SSH.
Krok 1:Povolte přesměrování IP na serveru
Aby server VPN směroval pakety mezi klienty VPN a Internetem, musíte povolit předávání IP. Otevřete soubor /etc/sysctl.conf
soubor pomocí vašeho preferovaného editoru:
sudo vim /etc/sysctl.conf
Zakomentujte (odstraňte #
znak před ním) následující řádek:
Uložte soubor a použijte změnu:
sudo sysctl -p
Krok 2:Instalace WireGuard na Ubuntu
Dalším krokem v tomto tutoriálu je nainstalovat WireGuard na váš počítač Ubuntu a nastavit jej tak, aby fungoval jako server. Ve výchozím nastavení je balíček WireGuard dostupný ve výchozím úložišti Ubuntu.
sudo apt install wireguard
Jakmile je balíček WireGuard nainstalován, můžete přejít k dalšímu kroku.
Krok 3:Konfigurace WireGuard VPN serveru na Ubuntu
WireGuard funguje na principu výměny veřejných klíčů mezi každým zařízením v síti WireGuard. Nyní, když máte nainstalovaný WireGuard, je dalším krokem vygenerování páru soukromého a veřejného klíče pro server.
Krok 3.1:Generování veřejného/soukromého páru klíčů
Spusťte následující příkaz k vytvoření páru veřejného/soukromého klíče. Soubory budou uloženy pod /etc/wireguard/
adresář.
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
wg
je vestavěný konfigurační nástroj WireGuard pro získání a nastavení konfigurací WireGuard. Když spustíte příkaz, obdržíte jeden řádek výstupu kódovaného base64, veřejný klíč (server_public.key
) pro váš server WireGuard.
Pamatujte, že soukromý klíč (server_private.key
) by nikdy neměl být s nikým sdílen a měl by být vždy zabezpečen.
Krok 3.2:Konfigurace tunelového zařízení
Dále budete muset vytvořit síťové rozhraní pro WireGuard. Pomocí textového editoru příkazového řádku, jako je vim, vytvořte konfigurační soubor WireGuard. Název síťového rozhraní bude wg0
.
sudo vim /etc/wireguard/wg0.conf
Přidejte obsah uvedený níže:
[Interface]
## Private IP address for the wg0 interface ##
Address = 10.0.0.1/24
## VPN server listening port ##
ListenPort = 51820
## VPN server private key ##
PrivateKey = mPIoWfKQWZP8lie2ISEZ6ul7vyESH9MqpFvxk1cxIWQ=
## Firewall rules ##
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
Samozřejmě musíte nahradit PrivateKey
s obsahem vygenerovaného, uloženého v /etc/wireguard/server_private.key
soubor.
Obsah soukromého klíče můžete zobrazit pomocí následujícího příkazu:
sudo cat /etc/wireguard/server_private.key
Nezapomeňte nahradit enp1s0
po -A POSTROUTING -o ...
aby odpovídal názvu vašeho veřejného síťového rozhraní. Můžete to snadno najít pomocí:
ip -o -4 route show to default | awk '{print $5}'
Uložte a zavřete wg0.conf
soubor. Navíc změňte režim oprávnění k souboru tak, aby soubory mohl číst pouze uživatel root.
sudo chmod -R 600 /etc/wireguard/
Krok 4:Povolení a spuštění služby WireGuard VPN
Spuštěním následujícího příkazu na serveru povolte automatické spouštění při spouštění systému a spusťte WireGuard.
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
Zkontrolujte jeho stav pomocí následujícího příkazu. Měli byste vidět active
ve výstupu:
sudo systemctl status [email protected]
Chcete-li zkontrolovat stav a konfiguraci rozhraní, zadejte:
sudo wg show wg0
Krok 5:Instalace a konfigurace klienta WireGuard
Nejprve budete muset nainstalovat balíček WireGuard na klientský počítač. Je to podobné jako nastavení serveru WireGuard.
sudo apt install wireguard
Dále budete muset vygenerovat pár veřejného/soukromého klíče na peeru pomocí přesných kroků, které jste použili na serveru.
wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
Otevřete nový /etc/wireguard/wg0.conf
soubor na klientském počítači WireGuard pomocí preferovaného editoru:
sudo vim /etc/wireguard/wg0.conf
Přidejte do souboru následující řádky:
[Interface]
## VPN client private IP address ##
Address = 10.0.0.2/24
## VPN client private key ##
PrivateKey = 0COkq1GMM86CmlF5blPFDYhU84iTX8iJ7lWoC1gLfnk=
[Peer]
## VPN server public key ##
PublicKey = ZnD/WMx0kasJfGjFf0/uCtJoFbz0oNdq7EcieHXVaSc=
## VPN server public IP address and port ##
Endpoint = 192.168.122.101:51820
## Route all the traffic through the VPN tunnel ##
AllowedIPs = 0.0.0.0/0
## Key connection alive ##
PersistentKeepalive = 15
Nahraďte PrivateKey
s obsahem vygenerovaného, uloženého v /etc/wireguard/client_private.key
soubor na klientském počítači.
sudo cat /etc/wireguard/client_private.key
Nahraďte veřejný klíč serveru, který lze nalézt v /etc/wireguard/server_public.key
soubor na serveru.
Nahraďte Endpoint
hodnota (192.168.122.101:51820
) se skutečnou veřejnou IP adresou a portem vašeho serveru.
Nakonec soubor uložte a zavřete.
Musíte nakonfigurovat možnost VPN na straně serveru, abyste umožnili připojení mezi klientským (peer) počítačem a serverem. Vraťte se tedy na server a upravte /etc/wireguard/wg0.conf
souboru a přidejte informace o klientovi následovně:
sudo vim /etc/wireguard/wg0.conf
[Peer]
## Client public key ##
PublicKey = 6FLtyfBQie9+EB3QYF55CR1FASca7vVYPReynlEccAo=
## Client IP address ##
AllowedIPs = 10.0.0.2/24
Nahraďte PublicKey
s obsahem souboru uloženým v /etc/wireguard/client_public.key
soubor na klientském počítači .
Konečná verze konfiguračního souboru serveru by měla vypadat takto:
Uložte soubor a restartujte server VPN, aby se změny projevily:
sudo systemctl restart [email protected]
Krok 6:Připojení klienta WireGuard k serveru
Spusťte následující příkaz na klientském počítači pro připojení klienta VPN k serveru VPN:
sudo systemctl start [email protected]
Nyní byste měli být připojeni k serveru WireGuard VPN a provoz z vašeho klientského počítače by měl být směrován přes něj.
To je vše! Klient i server musí být bezpečně připojeni pomocí peer-to-peer WireGuard VPN na Ubuntu.
Chcete-li připojení otestovat, vraťte se ke klientovi VPN a odešlete z něj příkaz ping (10.0.0.2
) na server VPN (10.0.0.1
), abyste zjistili, zda tunel funguje.
ping -c 3 10.0.0.1
Kromě toho můžete připojení zkontrolovat pomocí:
sudo wg
Chcete-li zastavit tunelování, stačí vypnout službu na klientském počítači:
sudo systemctl stop [email protected]
Závěr
gratuluji! Doufám, že vám tento návod pomohl nainstalovat a nakonfigurovat server a klienta WireGuard VPN na Ubuntu. Toto nastavení vám umožňuje anonymně surfovat na webu tím, že vaše údaje o provozu budou soukromé.
Důrazně doporučuji, abyste si přečetli dokumentaci projektu WireGuard zde.
Pokud pro vás byl tento příspěvek užitečný nebo pokud narazíte na nějaké problémy, neváhejte zanechat komentář.