WireGuard je univerzální VPN (Virtual Private Network), která využívá nejmodernější kryptografii. Ve srovnání s jinými populárními řešeními VPN, jako jsou IPsec a OpenVPN, je WireGuard obecně rychlejší, snadněji konfigurovatelný a má menší stopu. Je multiplatformní a může běžet téměř kdekoli, včetně Linux, Windows, Android a macOS.
Wireguard je peer-to-peer VPN; nepoužívá model klient-server. V závislosti na konfiguraci může partner fungovat jako tradiční server nebo klient. Funguje to tak, že vytvoříte síťové rozhraní na každém peer zařízení, které funguje jako tunel. Peers se navzájem ověřují výměnou a ověřováním veřejných klíčů, napodobováním modelu SSH. Veřejné klíče jsou mapovány se seznamem IP adres, které jsou v tunelu povoleny. Provoz VPN je zapouzdřen v UDP.
Tento článek vysvětluje, jak nainstalovat a nakonfigurovat WireGuard na Debianu 10, který bude fungovat jako server VPN. Ukážeme vám také, jak nakonfigurovat WireGuard jako klienta v Linuxu, Windows a macOS. Provoz klienta bude směrován přes server Debian 10.
Toto nastavení lze použít jako ochranu proti útokům Man in the Middle, anonymnímu procházení webu, obcházení obsahu s omezeným geografickým přístupem nebo umožnění bezpečného připojení kolegů, kteří pracují z domova, k firemní síti.
Předpoklady #
Chcete-li postupovat podle této příručky, budete potřebovat počítač s nainstalovaným Debianem 10. Potřebujete také root nebo [sudo access] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / k instalaci balíčků a provádění změn v systému.
Nastavení serveru WireGuard #
Začneme instalací balíčku WireGuard na stroj Debian a jeho nastavením tak, aby fungoval jako server. Nakonfigurujeme také systém tak, aby přes něj směroval provoz klientů.
Nainstalujte si WireGuard na Debian 10 #
WireGuard je k dispozici v úložištích backportů Debianu. Chcete-li do svého systému přidat úložiště, spusťte:
echo 'deb http: // ftp.debian.org / debian buster-backports main '| sudo tee / etc / apt / sources.seznam.d / buster-backports.seznam
Jakmile je úložiště povoleno, aktualizujte apt mezipaměť a nainstalujte modul a nástroje WireGuard:
WireGuard běží jako modul jádra.sudo apt aktualizace
sudo apt nainstalovat wireguard
Konfigurace WireGuard #
Rozhraní WireGuard můžete konfigurovat a spravovat pomocí wg
a wg-rychlé
nástroje příkazového řádku.
Každé zařízení v síti WireGuard VPN musí mít soukromý a veřejný klíč. Spuštěním následujícího příkazu vygenerujte pár klíčů:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Soubory jsou generovány v / etc / wireguard
adresář. Použijte kočka
nebo méně
příkazy pro zobrazení obsahu souborů. Soukromý klíč by nikdy neměl být nikomu sdílen a měl by být vždy zabezpečen.
Wireguard také podporuje předem sdílený klíč, který přidává další vrstvu kryptografie se symetrickým klíčem. Tento klíč je volitelný a musí být jedinečný pro každý pár peer.
Dalším krokem je konfigurace tunelového zařízení, které bude směrovat provoz VPN.
Zařízení lze nastavit buď z příkazového řádku pomocí ip
a wg
příkazy nebo ručním vytvořením konfiguračního souboru. Konfiguraci vytvoříme pomocí textového editoru.
Otevřete editor a vytvořte nový soubor s názvem wg0.konf
s následujícím obsahem:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Rozhraní] Adresa = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i% i -j PŘIJMOUT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Rozhraní můžete pojmenovat, jak chcete. Doporučuje se však použít něco podobného wg0
nebo wgvpn0
.
Nastavení v sekci rozhraní mají následující význam:
Adresa - Čárkami oddělený seznam IP adres v4 nebo v6 pro
wg0
rozhraní. Můžete zadat IP adresu z rozsahu, který je vyhrazen pro privátní sítě (10.0.0.0/8, 172.16.0.0/12 nebo 192.168.0.0/16).ListenPort - naslouchající port.
PrivateKey - soukromý klíč generovaný
wg genkey
příkaz. (Chcete-li zobrazit obsah typu souboru:sudo cat / etc / wireguard / privatekey
)SaveConfig - Pokud je nastavena na hodnotu true, aktuální stav rozhraní se při vypnutí uloží do konfiguračního souboru.
PostUp - příkaz nebo skript, který se provede před spuštěním rozhraní. V tomto příkladu používáme iptables k povolení maškarády. To umožňuje provoz opustit server a dát klientům VPN přístup k Internetu.
Nezapomeňte vyměnit
ens3
po-POSTROUTING
aby odpovídal názvu vašeho veřejného síťového rozhraní. Rozhraní můžete snadno najít pomocí:trasa ip -o -4 zobrazit výchozí | awk 'print $ 5'
PostDown - Příkaz nebo skript, který se provede před spuštěním rozhraní. Jakmile bude rozhraní nefunkční, pravidla iptables budou odstraněna.
The wg0.konf
a privatekey
soubory by neměly být čitelné pro běžné uživatele. Použití chmod
nastavit oprávnění souborů na 600
:
sudo chmod 600 / etc / wireguard / privatekey, wg0.conf
Po dokončení přineste wg0
rozhraní pomocí atributů uvedených v konfiguračním souboru:
sudo wg-quick up wg0
Výstup bude vypadat asi takto:
[#] ip link přidat wg0 typ wireguard [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 adresa přidat 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A dopředu -i wg0 -j PŘIJMOUT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Chcete-li zkontrolovat stav a konfiguraci rozhraní, spusťte:
sudo wg show wg0
rozhraní: wg0 veřejný klíč: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = soukromý klíč: (skrytý) naslouchající port: 51820
Stav rozhraní můžete také ověřit pomocí ip show wg0
:
ip show wg0
4: wg0: mtu 1420 qdisc stav fronty NEZNÁMÁ výchozí skupina qlen 1000 odkaz / žádný inet 10.0.0.1/24 rozsah globální wg0 valid_lft navždy preferovaný_lft navždy
WireGuard lze spravovat pomocí Systemd. Chcete-li přivést rozhraní WireGuard v době spuštění, spusťte následující příkaz:
sudo systemctl povolit wg-quick @ wg0
Konfigurace sítě a konfigurace brány firewall #
Aby NAT fungovalo, musí být povoleno přesměrování IP. Otevři / etc / sysctl.konf
soubor a přidejte nebo odkomentujte následující řádek:
sudo nano / etc / sysctl.konf
/ etc / sysctl.konfsíť.ipv4.ip_forward = 1
Uložte soubor a použijte změnu:
sudo sysctl -p
síť.ipv4.ip_forward = 1
Pokud ke správě brány firewall používáte UFW, musíte na portu otevřít provoz UDP 51820
:
sudo ufw povolit 51820 / udp
A je to. Byl nastaven rovnocenný partner Debianu, který bude fungovat jako server.
Nastavení klientů Linux a macOS #
Pokyny k instalaci pro všechny podporované platformy jsou k dispozici na https: // wireguard.com / install / . V systémech Linux můžete balíček nainstalovat pomocí správce distribučních balíků a v systému macOS s vařit
.
Po instalaci nakonfigurujte klientské zařízení podle následujících pokynů.
Proces nastavení klienta se systémem Linux a macOS je téměř stejný jako u serveru. Nejprve vygenerujte veřejný a soukromý klíč:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Vytvořte soubor wg0.konf
a přidejte následující obsah:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Rozhraní] PrivateKey = CLIENT_PRIVATE_KEY Adresa = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 AllowedIPs = 0.0.0.0/0
Nastavení v sekci rozhraní mají stejný význam jako při nastavování serveru:
- Adresa - Čárkami oddělený seznam IP adres v4 nebo v6 pro
wg0
rozhraní. - PrivateKey - Chcete-li zobrazit obsah souboru na klientském počítači, spusťte:
sudo cat / etc / wireguard / privatekey
Sekce peer obsahuje následující pole:
- PublicKey - veřejný klíč partnera, ke kterému se chcete připojit. (Obsah serveru
/ etc / wireguard / publickey
soubor). - Endpoint - IP nebo název hostitele peer, ke kterému se chcete připojit, následovaný dvojtečkou a poté číslem portu, na kterém vzdálený peer poslouchá.
- AllowedIPs - Čárkami oddělený seznam IP adres v4 nebo v6, ze kterých je povolen příchozí provoz pro peer a na který je směrován odchozí provoz pro tento peer. Používáme 0.0.0.0/0, protože směrujeme provoz a chceme, aby server peer odesílal pakety s libovolnou zdrojovou IP.
Pokud potřebujete nakonfigurovat další klienty, opakujte stejné kroky pomocí jiné soukromé adresy IP.
Nastavení klientů Windows #
Stáhněte a nainstalujte balíček Windows msi z webu WireGuard .
Po instalaci otevřete aplikaci WireGuard a klikněte na „Přidat tunel“ -> „Přidat prázdný tunel…“, jak je znázorněno na obrázku níže:
Publickey pair je automaticky vytvořen a zobrazen na obrazovce.
Zadejte název tunelu a upravte konfiguraci následujícím způsobem:
[Rozhraní] PrivateKey = CLIENT_PRIVATE_KEY Adresa = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 AllowedIPs = 0.0.0.0/0
V sekci rozhraní přidejte nový řádek k definování adresy tunelu klienta.
V sekci peer přidejte následující pole:
- PublicKey - Veřejný klíč serveru Debian (
/ etc / wireguard / publickey
soubor). - Endpoint - IP adresa serveru Debian následovaná dvojtečkou a portem WireGuard (51820).
- Povolené IP - 0.0.0.0/0
Po dokončení klikněte na tlačítko „Uložit“.
Přidejte klienta peer na server #
Posledním krokem je přidání veřejného klíče a IP adresy klienta na server. Chcete-li to provést, spusťte na serveru Debian následující příkaz:
sudo wg set wg0 peer CLIENT_PUBLIC_KEY enabled-ips 10.0.0.2
Nezapomeňte změnit KLIENT_PUBLIC_KEY
s veřejným klíčem, který jste vygenerovali na klientském počítači (sudo cat / etc / wireguard / publickey
) a upravte IP adresu klienta, pokud je odlišná. Uživatelé Windows mohou zkopírovat veřejný klíč z aplikace WireGuard.
Po dokončení se vraťte ke klientskému počítači a vyvolejte rozhraní tunelování.
Klienti Linux a macOS #
Spusťte následující příkaz k vyvolání rozhraní:
sudo wg-quick up wg0
Nyní byste měli být připojeni k serveru Debian a přes něj by měl být směrován provoz z vašeho klientského počítače. Můžete zkontrolovat připojení pomocí:
sudo wg
rozhraní: wg0 veřejný klíč: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = soukromý klíč: (skrytý) poslechový port: 53527 fwmark: 0xca6c peer: r3imyh3MCYggaZACmkx + CxlD6uAcIC8 = PG.XXX.XXX.XXX: 51820 povoleno IPS: 0.0.0.0/0 poslední podání ruky: před 53 sekundami přenos: 3.23 KiB obdrženo, 3.50 KiB odesláno
Můžete také otevřít prohlížeč, napsat „what is my ip“ a měla by se zobrazit IP adresa vašeho serveru Debian.
Chcete-li zastavit tunelování, stáhněte dolů wg0
rozhraní:
sudo wg-quick down wg0
Klienti Windows #
Pokud jste nainstalovali WireGuard ve Windows, klikněte na tlačítko „Aktivovat“. Jakmile jsou partneři připojeni, stav tunelu se změní na Aktivní:
Závěr #
Ukázali jsme vám, jak nainstalovat WireGuard na Debian 10 a nakonfigurovat jej jako server VPN. Toto nastavení umožňuje anonymní procházení webu tím, že vaše provozní data zůstanou soukromá.
Pokud čelíte jakýmkoli problémům, neváhejte zanechat komentář.