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.