WireGuard je open source a na bezpečnost zaměřená virtuální privátní síť navržená pro jednoduchost a snadné použití. Podporuje různé operační systémy včetně Linuxu, macOS, Windows, BSD a Androidu. Jedná se o jednoduchou a univerzální VPN, kterou lze snadno nasadit na malá zařízení na špičkové servery. Jedná se o dvoubodový server VPN namísto modelu klient-server. K autentizaci klienta používá mechanismus výměny veřejného klíče.
Pokud hledáte lehkou a rychlou VPN, pak je pro vás WireGuard VPN tou nejlepší volbou. V tomto tutoriálu vám ukážeme, jak nainstalovat server a klienta WireGuard VPN na Ubuntu 20.04.
Předpoklady
- Dva servery se serverem Ubuntu 20.04.
- Na obou serverech je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve se doporučuje aktualizovat systémové balíčky na nejnovější verzi. Můžete je aktualizovat pomocí následujícího příkazu:
apt-get update -y
Jakmile budou všechny balíčky aktualizovány, budete muset nainstalovat Iptables do vašeho systému. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install iptables -y
Po dokončení instalace můžete přejít k dalšímu kroku.
Instalovat WireGuard VPN Server
Ve výchozím nastavení je balíček WireGuard dostupný ve výchozím úložišti Ubuntu 20.04. Můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install wireguard -y
Jakmile je balíček WireGuard nainstalován, můžete přejít k dalšímu kroku.
Konfigurace serveru WireGuard
WireGuard funguje na principu výměny veřejných klíčů mezi každým zařízením v síti WireGuard. Budete tedy muset na serveru vytvořit veřejný a soukromý klíč.
WireGuard poskytuje wg a wg-rychlý nástroj příkazového řádku pro vytvoření klíče a správu rozhraní.
Pomocí následujícího příkazu můžete vytvořit veřejný i soukromý klíč:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Jakmile jsou oba klíče vytvořeny, můžete je zkontrolovat pomocí následujícího příkazu:
ls /etc/wireguard
Měli byste vidět následující výstup:
privatekey publickey
Obsah soukromého klíče můžete zobrazit pomocí následujícího příkazu:
cat /etc/wireguard/privatekey
Měli byste vidět následující výstup:
4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=
Obsah veřejného klíče můžete zobrazit pomocí následujícího příkazu:
cat /etc/wireguard/publickey
Měli byste vidět následující výstup:
00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
Dále budete muset vytvořit síťové rozhraní pro WireGuard. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/wireguard/wg0.conf
Přidejte následující řádky:
[Interface]Address =10.0.0.1/24SaveConfig =trueListenPort =51820PrivateKey =server-private-keyPostUp =iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown =iptables -D VPŘED -i %i -j PŘIJMOUT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Po dokončení uložte a zavřete soubor.
Kde :
- Adresa: Soukromá IP adresa pro rozhraní wg0.
- ListenPort: Zadejte naslouchací port WireGuard.
- Soukromý klíč: Soukromý klíč uložený v souboru /etc/wireguard/privatekey.
- PostUp: Zadejte příkaz, který umožní provozu opustit server a poskytnout klientům VPN přístup k Internetu. Také nahraďte eth0 názvem vašeho síťového rozhraní.
Dále nastavte správná oprávnění pro privátní klíč a soubor wg0.
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
Dále povolte rozhraní wg0 spuštěním následujícího příkazu:
wg-quick up wg0
Měli byste získat následující výstup:
[#] ip link add wg0 type wireguard[#] wg setconf wg0 /dev/fd/63[#] ip -4 address add 10.0.0.1/24 dev wg0[#] ip link set mtu 1420 up dev wg0 [#] iptables -A VPŘED -i wg0 -j PŘIJMOUT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Službu WireGuard můžete také spustit pomocí systemd, jak je uvedeno níže:
systemctl start [email protected]
Dále povolte spuštění služby WireGuard při restartu systému pomocí následujícího příkazu:
systemctl enable [email protected]
Dále ověřte stav služby WireGuard pomocí následujícího příkazu:
stav systemctl [e-mail chráněn]
Měli byste získat následující výstup:
? [chráněno e-mailem] – WireGuard přes wg-quick(8) pro wg0 Načteno:načteno (/lib/systemd/system/[chráněn e-mailem]; zakázáno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (ukončeno) od čt 2020-12- 10 11:42:14 UTC; Před 7 s Dokumenty:man:wg-quick(8) man:wg(8) https://www.wireguard.com/ https://www.wireguard.com/quickstart/ https://git.zx2c4.com/ wireguard-tools/about/src/man/wg-quick.8 https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8 Proces:2173 ExecStart=/usr/bin/wg- quick up wg0 (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:2173 (kód=ukončeno, stav=0/ÚSPĚCH) 10. prosince 11:42:14 ubuntu2004 systemd[1]:Spouštění WireGuard přes wg-quick(8 ) pro wg0...Dec 10 11:42:14 ubuntu2004 wg-quick[2173]:[#] ip link add wg0 type wireguardDec 10 11:42:14 ubuntu2004 wg-quick[2173]:[#] wg setconf /dev/fd/63Dec 10 11:42:14 ubuntu2004 wg-quick[2173]:[#] ip -4 address add 10.0.0.1/24 dev wg0Dec 10 11:42:14 ubuntu2004 wg-quick [2173quick] #] ip link set mtu 1420 up dev wg0Dec 10 11:42:14 ubuntu2004 wg-quick[2173]:[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEDec 10 11:42:14 ubuntu2004 systemd[1]:Dokončeno WireGuard přes wg-quick(8) pro wg0.
Stav rozhraní wg0 můžete také zkontrolovat pomocí následujícího příkazu:
wg show wg0
Měli byste získat následující výstup:
rozhraní:wg0 veřejný klíč:00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=soukromý klíč:(skrytý) naslouchací port:51820
Stav IP adresy rozhraní wg0 můžete získat následujícím příkazem:
ip a show wg0
Měli byste získat následující výstup:
13:wg0:mtu 1420 stav noqueue qdisc NEZNÁMÝ výchozí skupina qlen 1000 link/žádný inet 10.0.0.1/24 rozsah globální wg0 valid_lft navždy preferovaný_lft navždy
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Povolit přesměrování IP
Dále budete muset povolit předávání IP na vašem serveru pro směrování paketů mezi klienty VPN a Internetem. Můžete to povolit úpravou souboru /etc/sysctl.conf:
nano /etc/sysctl.conf
Změňte následující řádek:
net.ipv4.ip_forward=1
Uložte a zavřete soubor a poté spusťte následující příkaz pro použití změn konfigurace:
sysctl -p
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalace a konfigurace klienta WireGuard
Nejprve budete muset nainstalovat balíček WireGuard na klientský počítač. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install wireguard -y
Po instalaci balíčku WireGuard vytvořte soukromý klíč a veřejný klíč pomocí následujícího příkazu:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Jakmile jsou oba klíče vytvořeny, budete muset vytvořit nový konfigurační soubor.
Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/wireguard/wg0.conf
Přidejte následující řádky:
[Interface]PrivateKey =client-private-keyAddress =10.0.0.2/24[Peer]PublicKey =server-public-keyEndpoint =server-ip-address:51820AllowedIPs =0.0.0.0/0
Po dokončení uložte a zavřete soubor.
Kde :
- Adresa: Soukromá IP adresa pro rozhraní wg0.
- Soukromý klíč: Zadejte soukromý klíč na klientském počítači.
- PublicKey: Zadejte veřejný klíč na serveru.
- Koncový bod: Zadejte IP adresu serveru.
- Povolené IP: Zadejte seznam povolených IP adres.
Dále budete muset přidat klientský veřejný klíč a IP adresu na serveru.
Na počítači serveru spusťte následující příkaz pro přidání obou:
wg set wg0 peer client-public-key enabled-ips 10.0.0.2
Dále budete muset vyvolat rozhraní wg0 na klientském počítači.
Na klientském počítači spusťte následující příkaz pro zobrazení rozhraní:
wg-quick up wg0
Měli byste získat následující výstup:
[#] ip link add wg0 type wireguard[#] wg setconf wg0 /dev/fd/63[#] ip -4 address add 10.0.0.2/24 dev wg0[#] ip link set mtu 1420 up dev wg0 [#] wg set wg0 fwmark 51820
V tomto okamžiku je váš klientský počítač připojen k serveru WireGuard VPN. Stav připojení můžete zkontrolovat pomocí následujícího příkazu:
wg
Měli byste získat následující výstup:
Závěr
Blahopřejeme! úspěšně jste nainstalovali a nakonfigurovali WireGuard VPN server a klienta na serveru Ubuntu 20.04. Nyní by měl být provoz z vašeho klientského počítače směrován přes váš serverový stroj. Nyní můžete surfovat po internetu anonymně a uchovávat svá data v soukromí.