Instalace a konfigurace WireGuard VPN

WireGuard je moderní, jednoduchý a bezpečný nástroj pro realizaci virtuální privátní sítě (VPN). My si v tomto článku ukážeme, jak WireGuard nainstalovat na VPS, nakonfigurujeme a spustíme. Pro ukázku použijeme VPS ON a instalovat budeme na serveru s operačním systémem Ubuntu 20.04.3 LTS.

Začneme tím, že si upgradujeme instalované balíčky na svém OS příkazem:

sudo apt update && sudo apt upgrade

Instalace WireGuard

sudo apt install wireguard

Pokračovat budeme sadou příkazů, kde si vygenerujeme klíče jak pro server tak pro klienta.

Vygenerování klíčů pro server

wg genkey | tee server_private_key | wg pubkey > server_public_key

Vygenerování klíčů pro klienta

wg genkey | tee client_private_key | wg pubkey > client_public_key

Jednotlivé klíče pak přečteme těmito příkazy (doporučujeme si klíče uložit, budeme je později v konfiguraci potřebovat):

cat server_public_key

cat server_private_key

cat client_public_key

cat client_private_key

Konfigurace serveru

Pokračovat budeme konfigurací serveru. Zadáme příkaz (zde použijeme editor Vim):

sudo vim /etc/wireguard/wg0.conf

Vložíme do něj následují konfiguraci. Vysvětlení položek je v kódu v komentářích. Tam, kde je <klíč>, vložíme příslušný klíč serveru nebo klienta.

[Interface] 
# serverová část

Address = 10.100.100.1/24 # IP rozsah na novém rozhraní

SaveConfig = true

PrivateKey = <klíč> #server_private_key - privátní serverový klíč

ListenPort = 51820 # port, na kterém bude poslouchat WireGuard

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# klientská část
PublicKey =  <klíč> #client_public_key - klinetský veřejný klíč

AllowedIPs = 10.100.100.2/32 # povolené IP adresy v rozhraní

Upozornění! Za příkazem POSTROUTING je označení rozhraní serveru iPv4, doplňte tam své, pokud se liší!

Pokračujeme přesměrováním iPv4 datového toku:

sudo vim /etc/sysctl.conf

Najdeme řádek který obsahuje text

# net.ipv4.ip_forward=1

O odkomentujeme jej (odstraníme znak #). Soubor uložíme (Vim – :wq)

Pokračujeme příkazy pro reaktivaci

sysctl -p

echo 1 > /proc/sys/net/ipv4/ip_forward

Spouštění WireGuard serveru

Postupně zadáme tyto příkazy:

chown -v root:root /etc/wireguard/wg0.conf

chmod -v 600 /etc/wireguard/wg0.conf

wg-quick up wg0

systemctl enable wg-quick@wg0.service

Nyní nám vznikne v konfiguraci serveru nové síťové rozhraní wg0.

Nastavení klienta

Nyní si nainstalujeme klienta pro svůj operační systém, jednotlivé klienty si stáhneme ze stránek WireGuard.

Konfigurace klienta

Do konfigurace klienta přidáme následující kód:

[Interface]

Address = 10.100.100.2/32

PrivateKey =  <klíč> # client_private_key - klinetský privátní klíč

[Peer]

PublicKey =  <klíč> # server_public_key - serverový veřejný klíč

Endpoint = <IP adresa>:51820 # IP adresa a port serveru

AllowedIPs = 0.0.0.0/0 # povolené IP adresy

PersistentKeepalive = 21

Upozornění: Endpoint = :51820 – před dvojtečku nezapomeňte přidat IP adresu serveru, na kterém jede WireGuard.

Pokud byste chtěli na server napojit více zařízení, můžete vygenerovat nové klientské klíče a přidat je včetně ip adres do souboru /etc/wireguard/wg0.conf.

Možné problémy

Firewall

Pokud máte na serveru nastavený firewall, musíte port, na kterém klient poslouchá, povolit příkazem:

sudo ufw allow <port> 

<port> nahradíme číslem portu. Port, na kterém klient poslouchá, se ukáže v příkazu info o stavu WireGuardu:

wg show

Jak takový výstup vypadá, vidíte z následujícího screenshotu:

MacOs klient

U klienta pro operační systém MacOS je potřeba ještě po přidání konfigurace zatrhnout v levém dolním rohu (editační okno) Exclude private IPs.

Restart WireGuard rozhraní

Pokud potřebujeme z nějakého důvodu restartovat rozhraní, provedete to příkazy:

wg-quick down wg0 
wg-quick up wg0