WireGuard® je extrémně jednoduchá, ale rychlá a moderní VPN, která využívá nejmodernější kryptografii. Jeho cílem je být rychlejší, jednodušší, štíhlejší a užitečnější než IPsec a zároveň se přitom vyhnout masivní bolesti hlavy. Má v úmyslu být podstatně výkonnější než OpenVPN. WireGuard je navržen jako univerzální VPN pro běh na vestavěných rozhraních a superpočítačích, které jsou vhodné pro mnoho různých okolností. Původně byl vydán pro linuxové jádro, nyní je multiplatformní (Windows, macOS, BSD, iOS, Android) a široce nasaditelný. V současné době je intenzivně vyvíjen, ale již může být považován za nejbezpečnější, nejsnadněji použitelné a nejjednodušší řešení VPN v oboru.

wireguard

Vlastnosti

Jednoduché používání

WireGuard si klade za cíl být stejně snadné na konfiguraci a nasazení jako SSH. Připojení VPN se provádí jednoduše výměnou velmi jednoduchých veřejných klíčů – přesně jako výměna klíčů SSH – a vše ostatní transparentně řeší WireGuard. Je dokonce schopen roamingu mezi IP adresami, stejně jako Mosh. Není třeba spravovat připojení, starat se o stav, spravovat démony nebo se starat o to, co je pod kapotou. WireGuard představuje extrémně základní, ale výkonné rozhraní.

Kryptografická odolnost

WireGuard využívá nejmodernější kryptografii, jako je protokol Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF a bezpečné důvěryhodné konstrukce. Dělá konzervativní a rozumná rozhodnutí a byl zkontrolován kryptografy.

Minimální možnost útoku

WireGuard byl navržen s ohledem na snadnou implementaci a jednoduchost. Má být snadno implementován ve velmi malém počtu řádků kódu a snadno auditovatelný pro zranitelnosti zabezpečení. Ve srovnání s monstry jako Swan/IPsec nebo OpenVPN/OpenSSL, ve kterých je auditování gigantických kódových základen zdrcujícím úkolem i pro velké týmy bezpečnostních expertů, má být WireGuard komplexně kontrolovatelný jednotlivými jednotlivci.

Vysoký výkon

Kombinace extrémně vysokorychlostních kryptografických primitiv a faktu, že WireGuard žije uvnitř linuxového jádra, znamená, že zabezpečené sítě mohou být velmi rychlé. Je vhodný jak pro malá vestavěná zařízení, jako jsou smartphony, tak pro plně zatížené páteřní routery.

Dobrý a pečlivý návrh

WireGuard je výsledkem zdlouhavého a důkladně promyšleného akademického procesu, jehož výsledkem je technický whitepaper, akademický výzkumný dokument, který jasně definuje protokol a intenzivní úvahy, které byly součástí každého rozhodnutí.

Jak to funguje

Pokud byste chtěli obecný koncepční přehled o tom, o čem WireGuard je, čtěte dále zde. Poté můžete přejít k instalaci a přečíst si pokyny pro rychlý start, jak ji používat.

Pokud vás zajímá vnitřní vnitřní fungování, mohlo by vás zajímat stručné shrnutí protokolu nebo jít více do hloubky tím, že si přečtete technický dokument, který podrobněji popisuje protokol, kryptografii a základy. Pokud máte v úmyslu implementovat WireGuard pro novou platformu, přečtěte si prosím poznámky pro různé platformy.

WireGuard bezpečně zapouzdřuje IP pakety přes UDP. Přidáte rozhraní WireGuard, nakonfigurujete jej pomocí svého soukromého klíče a veřejných klíčů vašich kolegů a poté přes něj posíláte pakety. Všechny problémy distribuce klíčů a push konfigurací jsou mimo rozsah WireGuard; to jsou problémy, které je lepší nechat pro jiné vrstvy, abychom neskončili s nadýmáním IKE nebo OpenVPN. Oproti tomu více napodobuje model SSH a Mosh; obě strany mají navzájem své veřejné klíče a pak si mohou jednoduše začít vyměňovat pakety přes rozhraní.

Síťové rozhraní

WireGuard funguje přidáním jednoho nebo více síťových rozhraní, jako je u ethernetu eth0 nebo wlan0, tak wireguardové rozhraní se nazývá wg0 (nebo wg1, wg2, wg3 atd.). Toto síťové rozhraní lze poté konfigurovat normálně pomocí ifconfig(8) nebo ip address(8), přičemž cesty k němu lze přidat a odebrat pomocí route(8) nebo ip route(8) a tak dále se všemi běžnými síťovými nástroji. Specifické aspekty rozhraní WireGuard se konfigurují pomocí nástroje wg(8). Toto rozhraní funguje jako tunelové rozhraní.

WireGuard spojuje IP adresy tunelu s veřejnými klíči a vzdálenými koncovými body. Než rozhraní odešle paket protejšku (peer), provede následující:

  1. Tento paket je určen pro 192.168.30.8. Který je to protejšek (peer)? Podíváme se…​ Jo, je to pro protějšek ABCDEFGH. (Nebo pokud to není pro žádný nakonfigurovaný protejšek, tak se paket zahodí.)

  2. Zašifrujeme celý IP paket pomocí veřejného klíče protějšku ABCDEFGH.

  3. Jaký je vzdálený koncový bod (endpoint) protějšku ABCDEFGH? Podíváme se…​ Dobře, koncovým bodem je port UDP 53133 na hostiteli 216.58.211.110.

  4. Odešleme šifrované bajty z kroku 2 přes internet na adresu 216.58.211.110:53133 pomocí UDP.

Když rozhraní přijme paket, stane se toto:

  1. Právě jsem dostal paket z portu UDP 7361 na hostiteli 98.139.183.24. Pojďme ho dešifrovat!

  2. Dá se správně dešifrovat a autentizovat a je z protějšku LMNOPQRS. Dobře, poznamenáme si, že nejnovější internetový koncový bod protejšku LMNOPQRS je 98.139.183.24:7361 používající UDP.

  3. Po dešifrování je to paket prostých bajtů z adresy 192.168.43.89. Může nám protejšek LMNOPQRS posílat pakety z adresy 192.168.43.89?

  4. Pokud ano, přijmeme paket na rozhraní. Pokud ne, zahodíme ho.

V zákulisí se toho děje mnoho, aby bylo zajištěno náležité soukromí, autenticita a dokonalé dopředné utajení pomocí nejmodernější kryptografie.

Směrování pomocí šifrovacích klíčů

Srdcem WireGuardu je koncept nazvaný směrování pomocí šifrovacíh klíčů (Cryptokey Routing), který funguje tak, že spojuje veřejné klíče se seznamem IP adres tunelu, které jsou povoleny v tunelu. Každé síťové rozhraní má soukromý klíč a seznam partnerů. Každý peer má veřejný klíč. Veřejné klíče jsou krátké a jednoduché a používají je kolegové ke vzájemné autentizaci. Lze je předat pro použití v konfiguračních souborech jakoukoli metodou (třeba je nadiktovat telefonem), podobně jako je možné poslat svůj veřejný klíč SSH příteli pro přístup k shellu serveru.

Server může mít například konfiguraci:

[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 10.192.122.3/32, 10.192.124.1/24

[Peer]
PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
AllowedIPs = 10.192.122.4/32, 192.168.0.0/16

[Peer]
PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA=
AllowedIPs = 10.10.10.230/32

A klientský počítač může mít třeba tuto:

[Interface]
PrivateKey = gI6EdUSYvn8ugXOt8QQD6Yc+JyiZxIhp3GInSWRfWGE=
ListenPort = 21841

[Peer]
PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw=
Endpoint = 192.95.5.69:51820
AllowedIPs = 0.0.0.0/0

V konfiguraci serveru bude každý peer (klient) schopen posílat pakety do síťového rozhraní se zdrojovou IP odpovídající jeho odpovídajícímu seznamu povolených IP adres. Například, když server přijme paket od peer gN65BkIK…​, poté, co byl dešifrován a ověřen, je-li jeho zdrojová IP adresa 10.10.10.230, je povolen vstup na rozhraní; jinak se zahazuje.

Když chce síťové rozhraní v konfiguraci serveru odeslat paket peerovi (klientovi), podívá se na cílovou IP tohoto paketu a porovná ji se seznamem povolených IP každého peeru, aby zjistil, kterému peeru jej poslat. Pokud je například síťové rozhraní požádáno o odeslání paketu s cílovou IP 10.10.10.230, zašifruje jej pomocí veřejného klíče peer gN65BkIK…​ a poté jej odešle na nejnovější internetový koncový bod tohoto peeru.

V konfiguraci klienta bude jeho jediný peer (server) moci posílat pakety do síťového rozhraní s libovolnou zdrojovou IP (protože 0.0.0.0/0 je zástupný znak). Například, když je paket přijat od peera HIgo9xNz…​, pokud se dešifruje a autentizuje správně, s jakoukoli zdrojovou IP, pak je povolen vstup na rozhraní; jinak se zahazuje.

V konfiguraci klienta, když chce síťové rozhraní poslat paket svému jedinému peeru (serveru), zašifruje pakety pro jednoho peer s libovolnou cílovou IP adresou (protože 0.0.0.0/0 znamená libovolnou adresu). Pokud je například síťové rozhraní požádáno o odeslání paketu s libovolnou cílovou IP adresou, zašifruje jej pomocí veřejného klíče jednoho peer HIgo9xNz…​ a poté jej odešle na nejnovější internetový koncový bod jednoho peer.

Jinými slovy, při odesílání paketů se seznam povolených IP chová jako jakási směrovací tabulka a při příjmu paketů se seznam povolených IP chová jako jakýsi seznam řízení přístupu.

To je to, co nazýváme Cryptokey Routing Table: jednoduchá asociace veřejných klíčů a povolených IP adres.

Pro kterékoli pole lze použít libovolnou kombinaci IPv4 a IPv6. WireGuard je v případě potřeby plně schopen zapouzdřit jeden do druhého.

Vzhledem k tomu, že všechny pakety odesílané na rozhraní WireGuard jsou šifrované a ověřené, a protože existuje tak těsné spojení mezi identitou peera a povolenou IP adresou peera, správci systému nepotřebují složitá rozšíření firewallu, jako např. IPsec, ale spíše se mohou jednoduše shodovat na „je to z této IP? na tomto rozhraní?“ a mít jistotu, že jde o bezpečný a autentický paket. To značně zjednodušuje správu sítě a řízení přístupu a poskytuje mnohem větší jistotu, že vaše pravidla iptables skutečně dělají to, co jste jim zamýšleli.

Zabudovaný roaming

Konfigurace klienta obsahuje počáteční koncový bod jeho jednoho peer (serveru), takže ví, kam má odeslat šifrovaná data, než přijme šifrovaná data. Konfigurace serveru nemá žádné počáteční koncové body svých vrstevníků (klientů). Důvodem je, že server zjišťuje koncový bod svých protějšků zkoumáním, odkud pocházejí správně ověřená data. Pokud server sám změní svůj vlastní koncový bod a odešle data klientům, klienti objeví nový koncový bod serveru a aktualizují konfiguraci stejně. Klient i server odesílají šifrovaná data na nejnovější koncový bod IP, pro který autenticky dešifrovali data. Na obou koncích tedy existuje plný IP roaming.

Připraveno pro kontejnery

WireGuard odesílá a přijímá šifrované pakety pomocí síťového jmenného prostoru, ve kterém bylo rozhraní WireGuard původně vytvořeno. To znamená, že můžete vytvořit rozhraní WireGuard ve svém hlavním síťovém jmenném prostoru, který má přístup k internetu, a poté jej přesunout do síťového jmenného prostoru patřícího kontejneru Docker jako jediné rozhraní tohoto kontejneru. Tím je zajištěno, že jediný možný způsob, jakým je kontejner schopen přistupovat k síti, je prostřednictvím zabezpečeného šifrovaného tunelu WireGuard.

Praktické použití

Před podrobným vysvětlením skutečných příkazů může být velmi poučné nejprve sledovat, jak je používají dva kolegové konfigurovaní vedle sebe:

Nebo jednotlivě vypadá jedna konfigurace takto:

walkthrough

Příkazový řádek

Poznámka: konfiguraci rozhraní může provádět pouze uživatel root nebo jiný uživatel s oprávněními administrátora.

Nové rozhraní může být přidáno pomocí ip link, což zajistí i automatické natažení modulů jádra:

# ip link add dev wg0 type wireguard

Uživaleté jiných systémů než Linux budou místo toho psát wireguard-go wg0.

Přiřadíme novému wireguard rozhraní IP adresu pomocí ifconfig nebo ip address

# ip address add dev wg0 192.168.2.1/24

Pokud máme celkově jenom dva peery, může být toto vhodnější

# ip address add dev wg0 192.168.2.1 peer 192.168.2.2

Přiřazení klíčů k rozhraní a koncové body mohou být doplněny pomocí prográmku wg

# wg setconf wg0 myconfig.conf

nebo bez konfiguračního souboru

# wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips 192.168.88.0/24 endpoint 209.202.254.14:8172

Nakonec je potřeba rozhraní zaktivovat pomocí ifconfig nebo ip link:

ip link set up dev wg0

Existují také příkazy wg show a wg showconf, kterými si prohlédneme aktuální konfiguraci. Pokud napíšeme jenom wg, je to stejné jako wg show, což nám zobrazí všechna wireguard rozhraní.

wg tool

Pokud potřebujete další informace, tak jsou v manuálové stránce wg(8), neboli man 8 wg.

Celá procedura nahození wireguard rozhraní pomocí wg a ip může být zautomatizována příkazem wg-quick

wg quick tool

Generování klíčů

Wireguard potřebuje veřejný a soukromý klíč zakódovaný kódováním base64. Můžeme je vytvořit pomocí utility wg

Vytvoření soukromého klíče
$ umask 077
$ wg genkey >privatekey  (1)
1 Příkaz wg genkey vytvoří nový soukromý klíč a vypíše ho na standardní výstup (stdout). Přesměrujeme ho pomocí > do souboru privatekey.

Ze soukromého klíče můžeme odvodit veřejný klíč:

$ wg pubkey < privatekey > publickey  (1)
1 wg pubkey čte ze standardního vstupu (stdin) soukromý klíč a na standardní výstup vypisuje veřejný klíč. Přesměrujeme ze souboru na stdin < privatekey a předměrujeme stdout do souboru > publickey.

Můžeme to také udělat jedním vrzem:

$ wg genkey | tee privatekey | wg pubkey >publickey

NAT a Firewall Traversal Persistence

Ve výchozím nastavení se WireGuard snaží být co nejtišší, když není používán; není to upovídaný protokol. Z velké části přenáší data pouze tehdy, když si peer přeje posílat pakety. Když není požádán o odeslání paketů, přestane odesílat pakety, dokud nebude znovu požádán. Ve většině konfigurací to funguje dobře. Pokud je však peer za NATem nebo firewallem, může si přát, aby mohl přijímat příchozí pakety, i když žádné pakety neodesílá. Protože NAT a stavové firewally sledují „spojení“, pokud si peer za NAT nebo firewallem přeje přijímat příchozí pakety, musí udržovat mapování NAT/firewallu v platnosti tím, že bude pravidelně zasílat pakety udržující aktivitu. Tomu se říká trvalé udržování života (keep alive). Když je tato možnost povolena, paket udržující aktivitu je odeslán do koncového bodu serveru jednou za sekundu. Rozumný interval, který funguje s širokou škálou firewallů, je 25 sekund. Nastavením na 0 se tato funkce vypne, což je výchozí nastavení, protože většina uživatelů to nebude potřebovat, a díky tomu bude WireGuard o něco upovídanější. Tato funkce může být specifikována přidáním pole PersistentKeepalive = do protějšku v konfiguračním souboru nebo nastavením persistent-keepalive na příkazovém řádku. Pokud tuto funkci nepotřebujete, nepovolujte ji. Ale pokud jste za NAT nebo firewallem a chcete přijímat příchozí spojení dlouho poté, co síťový provoz utichl, tato možnost udrží „spojení“ v očích NAT otevřené.

Instalace

Wireguard beží na velkém množství operačních systémů (Windows, MacOS, Android, iOS, fůra Linuxů, OpenBSD, FreeBSD, OpenWRT, Termux), podrobnosti najdete na stránce autora Installation

Windows

Instalační soubor je ke stažení odsud.

macOS

Instalátor je ke stažení z App Store

Android

Linuxy

Debian

# apt install wireguard

Ubuntu

$ sudo apt install wireguard

Fedora

$ sudo dnf install wireguard-tools

Arch

$ sudo pacman -S wireguard-tools

OpenSUSE/SLE

$ sudo zypper install wireguard-tools

Slackware

$ sudo slackpkg install wireguard-tools

Gentoo

# emerge wireguard-tools

Pokud si linuxový kernel sestavujete sami, tak pro správné fungování Wireguardu musí být v kernelu následující volby:

  • CONFIG_WIREGUARD: Toto je povinnost, bez toho wireguard nebude fungovat.

  • CONFIG_IPV6_MULTIPLE_TABLES: Tato volba je nutná pro automatické směrování implicitní routy uvnitř wg-quick(8), není nutná pro fungování WireGuardu jako takového.

  • CONFIG_IP6_NF_RAW: Tato volba je nutná pro automatické směrování implicitní routy uvnitř wg-quick(8), není nutná pro fungování WireGuardu jako takového.

  • CONFIG_IP_NF_RAW: Tato volba je nutná pro automatické směrování implicitní routy uvnitř wg-quick(8), není nutná pro fungování WireGuardu jako takového.

Volby sestavení kernelu najdete v souboru /usr/src/linux/.config nebo můžete použít příkaz:

# cd /usr/src/linux
# make menuconfig
Konfigurace v menuconfig

CONFIG_WIREGUARD — vybereme "Device Drivers" dále "Network device support" a zde "WireGuard secure network tunnel".

CONFIG_IPV6_MULTIPLE_TABLES — vybereme "Networking support", dále "Networking options", dále "The IPv6 protocol" a nakonec "IPv6: Multiple Routing Tables".

CONFIG_IP6_NF_RAW — vybereme "Networking support", dále "Networking options", dále "Network packet filtering framework (Netfilter)", dále "IPv6: Netfilter Configuration" a nakonec volbu "raw table support (required for TRACE)"

CONFIG_IP_NF_RAW — vyberme "Networking support", dále "Networking options", dále "Network packet filtering framework (Netfilter)", dále "IP: Netfilter Configuration" a nakonec volbu "raw table support (required for NOTRACK/TRACE)"

Sestavení kernelu se provede takto:
# cd /usr/src/linux
# make && make install && make modules_install && grub-mkconfig -o /boot/grub/grub.cfg

OpenWRT

# opkg install wireguard

FreeBSD

# pkg install wireguard

OpenBSD

# pkg_add wireguard-tools

Příklady konfiguračních souborů

Příklady konfigurace budou na cvičení v OU5.

Gentoo Linux konfigurace

/etc/conf.d/net
config_eth0="10.0.0.2/24"
routes_eth0="default via 10.0.0.138"
# lokalni sit
config_eth1="10.0.1.2/24"
# wireguard zakaznik 1
config_wg0="10.87.15.3/24"
wireguard_wg0="/etc/wireguard/wg0.conf"
# wireguard zakaznik 2
config_wg1="10.93.21.3/24"
wireguard_wg1="/etc/wireguard/wg1.conf"
/etc/wireguard/wg0.conf
# zakaznik 1
[Interface]
PrivateKey = privátní klíč (1)
#Address = 10.87.15.3/24

[Peer]
PublicKey = EfqcWnXxG628OtR8W2AkkO16A4mSARiHGwg05wO7exo=
EndPoint = 46.253.96.150:29361
AllowedIPs = 10.87.15.1, 192.168.105.0/24, 192.168.106.0/24, 192.168.108.0/24, 192.168.15.0/24, 192.168.20.0/24, 192.168.1.0/24, 192.168.2.0/24
PersistentKeepalive = 10
1 Soukromý klíč nebudeme zveřejňovat.
/etc/wireguard/wg1.conf
# zakaznik 2
[Interface]
PrivateKey = privátní klíč (1)
#Address = 10.93.21.3/24  (2)

[Peer]
PublicKey = XvOkUrcvPQByEUzTEBUkoNTA0t8Qnz4x1Tqi5cuAJGg=
PresharedKey = 7e5OpocC9RICfwRKili4ZQmSNHRoNDCzdsBuZGHVM7M= (3)
EndPoint = [2a02:17a6:2000:abcd::3]:31483   (4)
#EndPoint = 194.61.51.188:31483 (5)
AllowedIPs = 10.93.21.1, 192.168.30.0/24, 192.168.31.0/24
PersistentKeepalive = 10
1 Soukromý klíč nebudeme zveřejňovat
2 V Gentoo se IP adresa nesmí použít, nastavuje se v /etc/conf.d/net
3 PresharedKey je symetrický klíč (tady je schválně poškozen), je to dodatečná ochrana proti postkvantové kryptoanalýze
4 Jako EndPoint je možné použít IPv6 adresu a posílat přes IPv6 tunel IPv4 provoz
5 Nebo je možné použít IPv4 adresu

Fungující příklad v učebně ou5

Wireguard síť si zvolíme 172.16.48.0/24. Všechny operace budeme provádět jako root v terminálu. Roota získáme pomocí příkazu sudo su.

Stroj ou5-1

IP adresa stroje je 10.200.1.196. Wireguard bude poslouchat na UDP portu 55501.

Vytvoření klíčů
# cd /etc/wireguard
# umask 077
# wg genkey > ou5-1.key
# wg pubkey < ou5-1.key > ou5-1.pub

Jakýmkoliv způsobem dostaneme veřejný klíč ou5-1.pub na stroj ou5-4 a tam vložíme do sekce [Peer]. A obráceně ze stroje ou5-4 dostaneme na stroj ou5-1 jeho veřejný klíč ou5-4.pub.

Konfigurační soubor /etc/wireguard/wg0.conf
[Interface]
Address    = 172.16.48.1
PrivateKey = GNtwpumvBYaAj/HBbE18Mtg8A7cOouumCpaOtKXlp0c=
ListenPort = 55501

[Peer]
PublicKey  = MYqWCcQJ5O86wpsJ/46yJ1pqUC98bIrg6ZGaLp479Gg=
AllowedIPs = 172.16.48.4
EndPoint   = 10.200.1.189:55504
PersistentKeepalive = 10
Spuštění wireguardu
# wg-quick up wg0

Stroj ou5-4

IP adresa stroje je 10.200.1.189. Wireguard bude poslouchat na UDP portu 55504

Vytvoření klíčů
# cd /etc/wireguard
# umask 077
# wg genkey > ou5-4.key
# wg pubkey < ou5-4.key > ou5-4.pub
Konfigurační soubor /etc/wireguard/wg0.conf
[Interface]
Address    = 172.16.48.4
PrivateKey = ADfdVIrkSoxl3wHfoU5GLAtQQmabjtsvckhQAzfLrkY=
ListenPort = 55504

[Peer]
PublicKey  = GnS5Kd+0mOETHZbKMhynklGPszuvIos91RRIAEDFEjA=
AllowedIPs = 172.16.48.1
EndPoint   = 10.200.1.196:55501
Vytvoření klíčů jedním vrzem
# wg genkey | tee ou5-4.key | wg pubkey > ou5-4.pub
Ukončení wireguardu
# wg-quick down wg0.pub
Zobrazení stavu

wg test1

Testování

wg test2

Nastavení automatického spuštění wireguardu po zapnutí stroje (Debian)

Spouštění služeb na Linuxu typu Debian (Ubuntu, LinuxMint) se děje pomocí systemd. Vytvoříme si službu /usr/lib/systemd/system/wireguard.service následujícího znění:

wireguard.service
# wireguard.service
[Unit]
Before=network.target
[Service]
Type=oneshot
# wireguard wg0 -- nastartování
ExecStart=/usr/bin/wg-quick up wg0
# wireguard wg0 -- ukončení
ExecStop=/usr/bin/wg-quick down wg0

RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Zapnutí služby po startu systému se děje příkazem:

# systemctl enable wireguard

Vypnutí služby (wireguard se nebude spouštět po startu):

# systemctl disable wireguard

Ruční nastartování wireguardu pomocí služby:

# systemctl start wireguard

Ruční zastavení wireguardu pomocí služby:

# systemctl stop wireguard

Poznámky

Umožnení používat uživateli sudo
# usermod -a -G sudo uživatel

Zdroje a odkazy