Vyhledávání na webu

WireGuard – rychlý, moderní a bezpečný VPN tunel pro Linux


WireGuard je moderní, bezpečná, multiplatformní a univerzální implementace VPN, která využívá nejmodernější kryptografii. Jeho cílem je být rychlejší, jednodušší, štíhlejší a funkčnější než IPsec a jeho záměrem je být výkonnější než OpenVPN.

Je navržen pro použití za různých okolností a lze jej nasadit na vestavěná rozhraní, plně zatížené páteřní směrovače a podobně; a běží na operačních systémech Linux, Windows, macOS, BSD, iOS a Android.

Doporučená četba: 13 nejlepších služeb VPN s doživotním předplatným

Představuje extrémně základní, ale výkonné rozhraní, jehož cílem je být jednoduché, stejně snadné na konfiguraci a nasazení jako SSH. Mezi jeho klíčové vlastnosti patří jednoduché síťové rozhraní, směrování kryptografických klíčů, vestavěný roaming a podpora kontejnerů.

Všimněte si, že v době psaní tohoto článku je pod intenzivním vývojem: některé jeho části pracují na stabilním vydání 1.0, zatímco jiné již existují (fungují dobře).

V tomto článku se dozvíte, jak nainstalovat a nakonfigurovat WireGuard v Linuxu pro vytvoření tunelu VPN mezi dvěma hostiteli Linuxu.

Testovací prostředí

Pro tuto příručku je naše nastavení (název hostitele a veřejná IP) následující:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Jak nainstalovat WireGuard v distribucích Linuxu

Přihlaste se do obou uzlů a nainstalujte WireGuard pomocí následujícího příkazu vhodného pro vaše distribuce Linuxu, jak je uvedeno níže.

Nainstalujte WireGuard v RHEL 8

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Nainstalujte WireGuard v CentOS 8

sudo yum install epel-release
sudo yum config-manager --set-enabled PowerTools
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Nainstalujte WireGuard v RHEL/CentOS 7

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install wireguard-dkms wireguard-tools

Nainstalujte WireGuard ve Fedoře

sudo dnf install wireguard-tools

Nainstalujte WireGuard v Debianu

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Nainstalujte WireGuard v Ubuntu

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

Nainstalujte WireGuard v OpenSUSE

sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
sudo zypper install wireguard-kmp-default wireguard-tools

Konfigurace WireGuard VPN tunelu mezi dvěma hostiteli Linuxu

Po dokončení instalace wireguard na obou uzlech můžete restartovat uzly nebo přidat modul wireguard z linuxového jádra pomocí následujícího příkazu na obou uzlech.

sudo modprobe wireguard
OR
modprobe wireguard

Dále vygenerujte veřejné a soukromé klíče zakódované v base64 pomocí nástroje wg na obou uzlech, jak je znázorněno.

---------- On Node 1 ---------- 
umask 077
wg genkey >private_appserver1

---------- On Node 2 ----------
umask 077
wg genkey >private_dbserver1
wg pubkey < private_dbserver1

Dále musíte vytvořit síťové rozhraní (např. wg0) pro drátěnou ochranu na peerech, jak je znázorněno níže. Poté nově vytvořenému síťovému rozhraní přiřaďte IP adresy (pro tento návod použijeme síť 192.168.10.0/24).

---------- On Node 1 ---------- 
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.2/24 dev wg0

Chcete-li zobrazit připojená síťová rozhraní na peerech a jejich adresy IP, použijte následující příkaz IP.

ip ad

Dále přiřaďte privátní klíč pro každého peer síťovému rozhraní wg0 a vyvolejte rozhraní podle obrázku.

---------- On Node 1 ---------- 
sudo wg set wg0 private-key ./private_appserver1
sudo ip link set wg0 up

---------- On Node 2 ----------
sudo wg set wg0 private-key ./private_dbserver1
sudo ip link set wg0 up

Nyní, když jsou oba odkazy aktivní, každý se soukromými klíči k nim přidruženým, spusťte obslužný program wg bez jakýchkoli argumentů, abyste získali konfiguraci rozhraní WireGuard na peerech. Poté vytvořte tunel Wireguard VPN následovně.

Partner (veřejný klíč), allowed-ips (maska sítě/podsítě) a koncový bod (veřejná ip:port) jsou opačného partnera .

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
sudo wg
sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
sudo wg
sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

Testování WireGuard VPN tunelu mezi systémy Linux

Jakmile je vytvořen tunel Wireguard VPN, odešlete příkaz ping na protějšího partnera pomocí adresy síťového rozhraní wireguard. Poté znovu spusťte obslužný program wg a potvrďte handshake mezi partnery, jak je znázorněno na obrázku.

---------- On Node 1 ----------
ping 192.168.10.2
sudo wg

---------- On Node 2 ----------
ping 192.168.10.1
sudo wg

To je prozatím vše! WireGuard je moderní, bezpečné, jednoduché, ale výkonné a snadno konfigurovatelné řešení VPN pro budoucnost. Prochází těžkým vývojem, takže se na něm pracuje. Více informací zejména o jeho vnitřním vnitřním fungování a dalších možnostech konfigurace získáte na domovské stránce WireGuard.