Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| navody:server:wireguard [2023/07/31 15:03] – smazan lsmod Aither | navody:server:wireguard [2026/08/16 18:56] (aktuální) – Přirozenější znění návodů, lokalizace ukázek a doplnění týdenního vyzkoušení VPS aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | < | ||
| + | |||
| ====== WireGuard ====== | ====== WireGuard ====== | ||
| - | WireGuard je nová linuxová | + | WireGuard je VPN zabudovaná |
| + | vpsAdminOS, takže ve VPS stačí nainstalovat uživatelské nástroje. | ||
| + | |||
| + | Tento příklad propojí dvě zařízení: | ||
| + | |||
| + | * server ve vpsFree.cz má veřejnou adresu '' | ||
| + | * klient má adresu ve VPN '' | ||
| + | |||
| + | '' | ||
| + | nahraď skutečnou veřejnou IPv4 nebo IPv6 adresou serveru. Samotnou IPv6 adresu | ||
| + | uzavři v '' | ||
| + | '' | ||
| + | |||
| + | ===== Instalace nástrojů ===== | ||
| + | |||
| + | Nainstaluj balíček '' | ||
| + | |||
| + | <code bash> | ||
| + | # Debian a Ubuntu | ||
| + | apt update | ||
| + | apt install wireguard-tools | ||
| + | |||
| + | # Fedora | ||
| + | dnf install wireguard-tools | ||
| + | |||
| + | # Alpine Linux | ||
| + | apk add wireguard-tools | ||
| + | |||
| + | # Arch Linux | ||
| + | pacman -S wireguard-tools | ||
| + | </ | ||
| + | |||
| + | Aktuální odkazy pro další systémy najdeš na | ||
| + | [[https:// | ||
| + | |||
| + | ===== Klíče ===== | ||
| + | |||
| + | Na serveru i klientovi vytvoř samostatný pár klíčů. Soukromý klíč nikomu | ||
| + | neposílej | ||
| + | |||
| + | <code bash> | ||
| + | install -d -m 700 / | ||
| + | umask 077 | ||
| + | wg genkey | tee / | ||
| + | </ | ||
| + | |||
| + | Veřejný klíč vypíšeš příkazem: | ||
| + | |||
| + | <code bash> | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | V následujících příkladech nahraď '' | ||
| + | '' | ||
| + | odpovídajícími hodnotami. Soubor s konfigurací musí zůstat | ||
| + | roota. | ||
| + | |||
| + | ===== Konfigurace serveru ===== | ||
| - | ===== Instalace ===== | + | Na serveru vytvoř ''/ |
| - | Balíčky s modulem pro jádro není třeba instalovat, na sdíleném jádře je stejně není možné nainstalovat. Budete tedy potřebovat jen balíček '' | + | <code ini> |
| + | [Interface] | ||
| + | Address = 10.77.0.1/24 | ||
| + | ListenPort = 51820 | ||
| + | PrivateKey = SERVER_PRIVATE_KEY | ||
| - | Pozor na to, že balíček ještě není součástí aktuálního Debianu | + | [Peer] |
| + | PublicKey = CLIENT_PUBLIC_KEY | ||
| + | AllowedIPs = 10.77.0.2/32 | ||
| + | </ | ||
| - | Do souboru ''/ | + | ===== Konfigurace klienta ===== |
| - | deb http://deb.debian.org/ | + | Na klientovi vytvoř '' |
| - | Poté už můžeme rovnou instalovat: | + | <code ini> |
| + | [Interface] | ||
| + | Address = 10.77.0.2/ | ||
| + | PrivateKey = CLIENT_PRIVATE_KEY | ||
| - | # apt update | + | [Peer] |
| - | # | + | PublicKey = SERVER_PUBLIC_KEY |
| + | AllowedIPs = 10.77.0.1/ | ||
| + | Endpoint = 185.8.164.10: | ||
| + | PersistentKeepalive = 25 | ||
| + | </ | ||
| - | ===== Generování klíčů ===== | + | '' |
| + | adresy, ze kterých WireGuard od něj přijme pakety. Tento příklad směruje pouze | ||
| + | provoz mezi dvěma adresami VPN. Nedělá z VPS výchozí bránu a nenastavuje NAT. | ||
| - | Ve VPN vytvořené pomocí WireGuardu jsou jednotlivé stroje identifikovány pomocí kombinace veřejného klíče | + | '' |
| + | firewallem | ||
| + | protějšky přímo dosažitelné, | ||
| + | alespoň strana, která | ||
| + | adresu klienta z přijatých paketů. | ||
| - | # wg genkey | tee wg-private.key | wg pubkey > wg-public.key | + | Na obou strojích povol čtení konfigurace pouze uživateli '' |
| - | V aktuálním adresáři vzniknou dva soubory: '' | + | <code bash> |
| + | chmod 600 / | ||
| + | </ | ||
| - | ===== Konfigurace | + | ===== Firewall a spuštění |
| - | WireGuard má vlastní konfigurační soubor, ve kterém je popsáno nastavení našeho stroje a všech jeho komunikačních partnerů. Do tohoto souboru budeme vkládat svůj soukromý klíč a veřejné klíče všech ostatních. | + | Používáš-li na serveru firewall, povol příchozí UDP port '' |
| + | IPv6 podle adresy | ||
| + | informací najdeš v článku [[navody: | ||
| - | Konfigurační soubor můžeme uložit kamkoliv, ale výchozí stav je ''/ | + | Na distribuci se systemd spusť rozhraní a nastav jeho start po bootu: |
| - | [Interface] | + | <code bash> |
| - | | + | systemctl enable --now wg-quick@wg0 |
| - | | + | </code> |
| - | [Peer] | + | |
| - | AllowedIPs = 192.168.100.2/32 | + | |
| - | PublicKey = TcCK+JJLHZcH9zdLRqtJ7cHiCJH2a6iBN2TjVi6zIxw= | + | |
| - | Endpoint = 192.0.2.123: | + | |
| - | První část '' | + | Na systému bez systemd jej můžeš spustit |
| - | Položka '' | + | <code bash> |
| + | wg-quick up wg0 | ||
| + | </ | ||
| - | ===== Spuštění VPN ===== | + | Konfiguraci ověř příkazy: |
| - | Nyní už stačí jen konfiguraci použít. Slouží k tomu utilita '' | + | <code bash> |
| + | wg show | ||
| + | ping -c 3 10.77.0.1 | ||
| + | ping -c 3 10.77.0.2 | ||
| + | </ | ||
| - | # wg-quick up wg0 | + | Ve výstupu '' |
| - | + | přenesených dat. Pokud handshake neproběhne, zkontroluj veřejné klíče, | |
| - | Stav máme vždy možnost zjistit pouhým spuštěním utility | + | '' |
| + | [[https:// | ||
| - | # wg | ||
| - | interface: wg0 | ||
| - | public key: xcC08j4bC0Z756eokOM1nezhbTU6k25XGSeTmEpVKUQ= | ||
| - | private key: (hidden) | ||
| - | listening port: 51820 | ||
| - | peer: TcCK+JJLHZcH9zdLRqtJ7cHiCJH2a6iBN2TjVi6zIxw= | ||
| - | endpoint: 192.0.2.123: | ||
| - | allowed ips: 192.168.100.2/ | ||