Wireguard VPN? Jistě znáte Hamachi, IPsec, OpenVPN, PPP či PPTP. Popularita VPN tunelování (Virtual Private Network) rok od roku roste. A to až do te míry, že již existují desítky společností, které podobně jako web hostingové firmy, nabízí hosting VPN serveru. Pokud máte zájem o privátní tunel 1. můžete sáhnou po placené verzi, u jedné z mnoha společností které VPN server nabízí.
Zde ale nevíte kdo a kdy (třeba na základě soudního příkazu) obdrží váš privátní šifrovací klíč. 2. Můžete (pokud existuje) využívat VPN nebo proxy služeb svého poskytovatele internetu nebo datového okruhu. 3. Můžete si nainstalovat a provozovat VPN server vlastní. Bez měsíčního paušálu a dalších omezení plynoucích z předplaceného tarifu (pokud existují).
Wireguard VPN je realitvně nové řešení pro zabezpečený přenos. Vyniká jednoduchostí, rychlostí, konfigurovatelným (na rozdíl od Microsoft VPN protokolů) portem a nenáročností na čas CPU. V tomto textu se dočtete jak VPN server (Debian 10 server / Android klient) a aplikaci nainstalovat a nastavit.
Obsah
Instalace Wireguard VPN Debian 11
Předpokládá se, že již máte plně funčkní a zabezpečený Linux server (Ubuntu, Debian). Včetně funkčních IP tables. Linux server může byt instalovaný i jako virtuální stroj na VMware ESXi nebo jiném virtuálním stroji. Nezbytností je veřejná IP adresa. Aktualizace a instalace balíčku wireguard
apt update && apt upgrade
apt install wireguard* -y
Konfigurační soubor Wireguard server
Takto má vypadat konfigurační soubor. Vytvoření a vložení konfigurace pomocí editoru nano
nano /etc/wireguard/wg0.conf
[Interface] Address = 10.10.10.1/24 (zde libovolnou vlastní LAN IP a masku + nezapomenout následně zadat správnou síť v Peer AllowedIPs) ListenPort = 15015 (volitelný port PrivateKey = AK1jLO1k3Px4yqBwdO-1369PuiTlabqpKr41Yo91HxD& PostUp = iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens192 -j TCPMSS --clamp-mss-to-pmtu PostUp = iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE PostUp = iptables -A FORWARD -i %i -j ACCEPT PostUp = sysctl -q -w net.ipv4.ip_forward=1 PostDown = sysctl -q -w net.ipv4.ip_forward=0 PostDown = iptables -D FORWARD -i %i -j ACCEPT PostDown = iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE PostDown = iptables -t mangle -D POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens192 -j TCPMSS --clamp-mss-to-pmtu [Peer] PublicKey = bqpKr41YeLikKfyqBwd+kezD+p8C1jLO1AWwdO-13 AllowedIPs = 10.10.0.0/24
Vysvětlivky ke konfiguračnímu souboru Wireguard serveru /etc/wireguard/wg0.conf
[Interface]
Adresa je IP adresa Wireguard sítě
Port je port na kterém Wireguard server naslouchá
PrivateKey je privátní klíč. Stejný klíč vložíme do Interface / Private Key konfigurace Android Wireguard klienta
PostUp pravidla pro routování příchozího provozu
PostDown pravidla pro routování odchozího provozu
[Peer]
PublicKey je veřejný klíč. Stejný klíč vložíme do Interface / Public Key konfigurace Android Wireguard klienta
AllowedIPs jsou povolené IP adresy v rozsahu Wireguard sítě
Příkazy pro ovládání Wireguard VPN serveru
wg-quick up wg0 # spustí Wireguard VPN server
wg-quick down wg0 # zastaví Wireguard VPN server
systemctl enable wg-quick@wg0 # nastaví autostart Wireguard VPN serveru pri startu systému
systemctl start wg-quick@wg0 # spustí Wireguard VPN server pomocí systemctl
systemctl stop wg-quick@wg0 # zastaví Wireguard VPN server pomocí systemctl
systemctl status wg-quick@wg0 # zobrazí statv Wireguard VPN serveru
Konfigurační soubor Wireguard klient
Android Wireguard klient se nastavuje pomocí grafického rozhraní. Konfigurační soubor lze ale i importovat. Nejprv tedy konfigurační soubor a následně screenshot konfigurace.
Name = Můj Wireguard server PrivateKey = AK1jLO1k3Px4yqBwdO-1369PuiTlabqpKr41Yo91HxD& PublicKey = bqpKr41YeLikKfyqBwd+kezD+p8C1jLO1AWwdO-13 Addresses = 10.10.0.100/32 DNS servers = 1.1.1.1 (lze použít vlastní DNS) [Peer] PublicKey = AKlO3TwQd+kezDZp1jLO1WwdO=yA Persistent keepalive = 25 Endpoint = Veřejná IP adresa serveru:port Allowed IPs = 0.0.0.0/0
Vysvětlivky Wireguard (Android)
[Interface]
Name = vlastní název
PrivateKey = je v Android Wireguard aplikaci vygenerovaný privátní klíč. Stejný klíč vložíme je v Interface / Private Key konfiguraci Wireguard serveru
PublicKey = je v Android Wireguard aplikaci veřejný klíč. Stejný klíč vložíme do Interface / Public Key konfigurace Wireguard serveru.
Addresses = je adresa z adresního rozsahu nastaveného na Wireguard serveru
DNS servers = je DNS server (vlastní nebo externí)
[Peer]
PublicKey = je veřejný klíč vygenerovaný v Android Wireguard aplikaci a automaticky vyplněný.
Persistent keepalive = konfigurovatelný interval v sekundách pro udržovaní spojení.
AllowedIPs = volitelné. IP adresy kterým je povolené používat Wireguard tunel.
Endpoint = IP adresa (name) Wireguard serveru v našem případě instalovaného na Debian 11 Linuxu.
Vizualizace


Android
Konfiguraci lze vygenerovat pomocí github burghardt skriptu easy wg-quick. V odkazu je podrobně popsané nastavení Wireguard VPN serveru, včetně IPv6.
Užitečné
Debian GUI IPtables Easywall.
Domovská stránka Wireguard.