GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit WireGuard VPN na CentOS 8

WireGuard je jednoduchá a moderní VPN (Virtual Private Network) s nejmodernější kryptografií. Je rychlejší, snadněji konfigurovatelný a výkonnější než jiná podobná řešení, jako je IPsec a OpenVPN.

WireGuard je multiplatformní a lze jej spustit téměř kdekoli, včetně Linuxu, Windows, Androidu a macOS. Wireguard je peer-to-peer VPN; není založen na modelu klient-server. V závislosti na své konfiguraci může peer fungovat jako tradiční server nebo klient.

WireGuard funguje vytvořením síťového 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 povoleny v tunelu. Provoz VPN je zapouzdřen v UDP.

Tento tutoriál popisuje, jak nastavit WireGuard na počítači CentOS 8, který bude fungovat jako server VPN. Ukážeme vám také, jak nakonfigurovat WireGuard jako klienta. Provoz klienta bude směrován přes server CentOS 8. Toto nastavení lze použít jako ochranu proti útokům Man in the Middle, anonymnímu surfování na webu, obcházení geograficky omezeného obsahu nebo umožnění vašim kolegům, kteří pracují z domova, bezpečně se připojit k firemní síti.

Předpoklady #

Budete potřebovat server CentOS 8, ke kterému budete mít přístup jako root nebo účet s právy sudo.

Nastavení serveru WireGuard #

Začneme instalací WireGuard na stroj CentOS a nastavíme jej tak, aby fungoval jako server. Nakonfigurujeme také systém tak, aby přes něj směroval provoz klientů.

Instalace WireGuard na CentOS 8 #

Nástroje WireGuard a modul jádra jsou k dispozici pro instalaci z úložišť Epel a Elrepo. Chcete-li přidat úložiště do systému, spusťte následující příkaz:

sudo dnf install epel-release elrepo-release 

Po dokončení nainstalujte balíčky WireGuard:

sudo dnf install kmod-wireguard wireguard-tools

Můžete být požádáni o import repozitářů GPG klíčů. Zadejte y až budete vyzváni.

Konfigurace WireGuard #

wireguard-tools balíček obsahuje dva nástroje příkazového řádku s názvem wg a wg-quick které vám umožní konfigurovat a spravovat rozhraní WireGuard.

Uložíme konfiguraci serveru VPN a v /etc/wireguard adresář. Na CentOS se tento adresář nevytváří během instalace. Spusťte následující příkaz k vytvoření adresáře:

sudo mkdir /etc/wireguard

Vygenerujte veřejný a soukromý klíč v /etc/wireguard adresář.

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Soubory můžete zobrazit pomocí cat nebo less . Soukromý klíč by nikdy neměl být s nikým sdílen.

Nyní, když jsou vygenerovány klíče, je dalším krokem 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 nebo vytvořením konfiguračního souboru pomocí textového editoru.

Vytvořte nový soubor s názvem wg0.conf a přidejte následující obsah:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp     = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
PostDown   = firewall-cmd --zone=public --remove-port 51820/udp && firewall-cmd --zone=public --remove-masquerade

Rozhraní lze pojmenovat jakkoli chcete, ale doporučuje se použít něco jako 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í. Použijte adresy IP 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 – port, na kterém bude WireGuard přijímat příchozí připojení.

  • PrivateKey – soukromý klíč generovaný wg genkey příkaz. (Chcete-li zobrazit obsah spouštěného souboru:sudo cat /etc/wireguard/privatekey )

  • SaveConfig – při nastavení na true se aktuální stav rozhraní 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 firewall-cmd otevřete port WireGuard a povolte maskování. To umožní provozu opustit server a klientům VPN poskytne přístup k Internetu.

  • PostDown - příkaz nebo skript, který se provede před spuštěním rozhraní. Jakmile bude rozhraní vypnuto, pravidla brány firewall budou odstraněna.

Soubor wg0.conf a privatekey soubory by neměly být čitelné pro normální uživatele. Použijte chmod nastavte oprávnění 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

Příkaz vydá něco takového:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Chcete-li zobrazit stav a konfiguraci rozhraní, spusťte:

sudo wg show wg0
interface: wg0
  public key: My3uqg8LL9S3XZBo8alclOjiNkp+T6GfxS+Xhn5a40I=
  private key: (hidden)
  listening port: 51820

Můžete také použít ip příkaz k ověření stavu rozhraní:

ip a show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Chcete-li přinést wg0 rozhraní při spouštění spusťte následující příkaz:

sudo systemctl enable wg-quick@wg0

Síť serveru #

Aby NAT fungoval, musíme povolit přesměrování IP. Vytvořte nový soubor /etc/sysctl.d/99-custom.conf a přidejte následující řádek:

sudo nano /etc/sysctl.d/99-custom.conf
/etc/sysctl.d/99-custom.conf
net.ipv4.ip_forward=1

Uložte soubor a použijte změnu pomocí sysctl :

sudo sysctl -p /etc/sysctl.d/99-custom.conf
net.ipv4.ip_forward = 1

A je to. Byl nastaven partner CentOS, který bude fungovat jako server.

Nastavení klientů Linuxu a macOS #

Pokyny k instalaci pro všechny podporované platformy jsou k dispozici na adrese 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 pomocí brew . Po instalaci WireGuard nakonfigurujte klientské zařízení podle níže uvedených kroků.

Proces nastavení klienta pro Linux a macOS je v podstatě stejný jako u serveru. Začněte vygenerováním veřejného a soukromého klíče:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Vytvořte soubor wg0.conf a přidejte následující obsah:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 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 /etc/wireguard/publickey serveru soubor).
  • Koncový bod – IP nebo název hostitele partnera, ke kterému se chcete připojit, následovaný dvojtečkou a poté číslem portu, na kterém vzdálený peer naslouchá.
  • 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 tohoto peer. Používáme 0.0.0.0/0, protože směrujeme provoz a chceme, aby partner serveru posílal pakety s jakoukoli zdrojovou IP adresou.

Pokud potřebujete nakonfigurovat další klienty, opakujte stejné kroky s jinou privátní IP adresou.

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:

Automaticky se vytvoří pár veřejného klíče a zobrazí se na obrazovce.

Zadejte název tunelu a upravte konfiguraci následovně:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 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 pro definování adresy tunelu klienta.

V peer sekci přidejte následující pole:

  • PublicKey – veřejný klíč serveru CentOS (/etc/wireguard/publickey soubor).
  • Koncový bod – IP adresa serveru CentOS následovaná dvojtečkou a port WireGuard (51820).
  • Povolené IP – 0.0.0.0/0

Po dokončení klikněte na tlačítko „Uložit“.

Přidat klientského partnera na server #

Posledním krokem je přidání klientského veřejného klíče a IP adresy na server:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

Nezapomeňte změnit CLIENT_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 se liší. Uživatelé Windows mohou zkopírovat veřejný klíč z aplikace WireGuard.

Po dokončení se vraťte na klientský počítač a vyvolejte rozhraní tunelování.

Klienti Linux a macOS #

Na klientech se systémem Linux spusťte následující příkaz pro vyvolání rozhraní:

sudo wg-quick up wg0

Nyní byste měli být připojeni k serveru CentOS a provoz z vašeho klientského počítače by měl být směrován přes něj. Připojení můžete zkontrolovat pomocí:

sudo wg
interface: wg0
  public key: sZThYo/0oECwzUsIKTa6LYXLhk+Jb/nqK4kCCP2pyFg=
  private key: (hidden)
  listening port: 60351
  fwmark: 0xca6c

peer: My3uqg8LL9S3XZBo8alclOjiNkp+T6GfxS+Xhn5a40I=
  endpoint: XXX.XXX.XXX.XXX:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 213.25 KiB received, 106.68 KiB sent

Můžete také otevřít prohlížeč, napsat „what is my ip“ a měli byste vidět IP adresu vašeho serveru CentOS.

Chcete-li zastavit tunelování, snižte wg0 rozhraní:

sudo wg-quick down wg0

Klienti Windows #

Pokud jste nainstalovali WireGuard na Windows, klikněte na tlačítko „Aktivovat“. Po připojení peerů se stav tunelu změní na Aktivní:


Cent OS
  1. Jak nastavit Wireguard VPN na CentOS 8

  2. Jak nastavit WireGuard VPN na Ubuntu 20.04

  3. Jak nastavit WireGuard VPN na CentOS 8

  1. Jak nainstalovat Vagrant na CentOS 7

  2. Jak nastavit WireGuard VPN na Ubuntu 18.04

  3. Jak nastavit WireGuard VPN na Ubuntu 20.04

  1. Jak nainstalovat Gitea na CentOS 8

  2. Jak nainstalovat Memcached na CentOS 8

  3. Jak nainstalovat Nginx na CentOS 7