
Nastavení vlastního VPN serveru s WireGuardem a připojení z Androidu je jedním z nejjednodušších způsobů, jak... Bezpečný vzdálený přístup k vaší domácí síti nebo VPSI když se na první pohled může zdát pohled na příkazy, klíče a konfigurační soubory zastrašující, ve skutečnosti je proces poměrně mechanický, pokud budete postupovat klidně.
V této příručce se naučíte, jak nasadit server WireGuard na Linuxu (například na VPS s Ubuntu) a připojit se z mobilního zařízení Android, abyste mohli Přistupujte k místní síti LAN, NAS, IP kamerám, routerům nebo procházejte web, jako byste byli doma.Kromě toho vysvětluje základní koncepty, bezpečnostní tipy, příklady konfigurace a jak využít lokální doménová jména pro pohodlný a bezproblémový vzdálený přístup.
Co je WireGuard a proč ho používat pro vzdálený přístup z Androidu
WireGuard je moderní VPN protokol, který vyniká tím, že... mnohem jednodušší, rychlejší a bezpečnější než klasické alternativy jako OpenVPN nebo IPsec. Jeho implementace je minimalistická (několik tisíc řádků kódu) a spoléhá na nejmodernější kryptografii, jako je Curve25519, ChaCha20, Poly1305 nebo BLAKE2s.
Jejich filozofie se zaměřuje na konfiguraci, která je co nejjasněji: každé zařízení má pár veřejného/soukromého klíčeDefinujete jen pár možností (interní IP, port, povolené IP adresy…) a to je vše, co potřebujete pro funkční šifrovaný tunel. Žádné desítky kryptických parametrů ani soubory plné obtížně srozumitelných direktiv.
Co se týče výkonu, WireGuard funguje pouze přes UDP a lze jej dokonce integrovat do linuxového jádra, což se promítá do… nízká latence, vysoké rychlosti a efektivní využití zdrojůTo je obzvláště patrné, když se připojujete z Androidu pomocí mobilních sítí nebo WiFi s proměnlivou kvalitou.
Další silnou výhodou je, že WireGuard je Je multiplatformní a má oficiální aplikace pro Android, iOS, Windows, macOS a Linux.To znamená, že si můžete nastavit server na VPS nebo kompatibilním routeru a připojit se z mobilního zařízení jednoduše importem souboru .conf nebo naskenováním QR kódu.
Předpoklady před nastavením serveru WireGuard
Než začnete psát příkazy, je dobré se ujistit, že máte připravené základní prvky, které potřebujete. VPN server WireGuard dostupný z AndroiduUšetříte si tak spoustu času a vyhnete se hloupým chybám na cestě.
Nejběžnějším přístupem je použití VPS nebo dedikovaného Linuxového serveru, kam službu nainstalujete. Ubuntu 22.04 je jednou z nejpohodlnějších možnostíprotože WireGuard je součástí oficiálních repozitářů a existuje k němu spousta dokumentace, ale postačí jakákoli moderní distribuce.
Budete také potřebovat uživatele s administrátorskými oprávněními, ať už přímý root nebo uživatel se sudoProtože budete instalovat balíčky, upravovat síťová nastavení a povolovat přesměrování IP adres, je důležité, abyste měli přístup k serveru přes SSH a věděli, jak se připojit z počítače.
Nakonec budete potřebovat klienta pro připojení k tomuto serveru: může to být váš Mobilní zařízení s Androidem a oficiální aplikací WireGuardale i další systémy (Windows, macOS, Linux, iOS). V tomto článku se zaměříme konkrétně na Android, i když uvidíte, že konfigurační soubor je pro všechny prakticky stejný.
Nastavení Linuxového serveru: Aktualizace a instalace WireGuardu
S VPS nebo serverem již inicializovaným a nainstalovaným s Ubuntu 22.04 (nebo podobnou verzí) je prvním rozumným krokem aktualizace systémových balíčků abyste zajistili, že je vše aktuální a že nepřenášíte známé chyby nebo zranitelnosti.
Připojte se k serveru přes SSH a spusťte:
apt update
apt upgrade -y
První příkaz aktualizuje seznam balíčků v repozitářích a druhý aktualizuje již nainstalované balíčky automaticky na nejnovější verze. To může chvíli trvat, zejména pokud je server nový nebo nebyl delší dobu aktualizován.
Jakmile je systém aktualizovaný, pokračujte v instalaci WireGuardu z oficiálních repozitářů pomocí:
apt install -y wireguard
Tento příkaz nainstaluje hlavní balíček, utility jako například wg a wg-rychle a v případě potřeby bude načten požadovaný modul jádra. Některé tutoriály také explicitně ukazují použití:
modprobe wireguard
Tento příkaz jednoduše vynutí ruční načtení modulu WireGuard do jádra, což může být užitečné. pokud se modul z jakéhokoli důvodu nenačetl automaticky nebo pokud se nacházíte v poněkud neobvyklejším prostředí.
Generování klíčů a základní konfigurační struktura serveru
Srdcem systému WireGuard je jeho správa klíčů, takže dalším krokem je vytvořit pár soukromého a veřejného klíče serveruVeškerá konfigurace se obvykle nachází ve standardním adresáři /etc/wireguard/.
Zadejte tento adresář pomocí:
cd /etc/wireguard/
Pro ochranu klíčů je vhodné nejprve upravit výchozí masku oprávnění tak, aby vytvořené soubory měly omezující oprávnění a nejsou čitelné pro ostatní uživatele systému. To se provádí pomocí:
umask 077
Dále jednoduchým způsobem vygenerujte pár klíčů serveru:
wg genkey > privatekey
wg pubkey < privatekey > publickey
Soubor soukromý klíč Soukromý klíč musí být bezpečně uchováván a nikdy nesdílen, zatímco veřejný klíč může být distribuován autorizovaným klientům. Pro další posílení zabezpečení explicitně upravte oprávnění soukromého klíče:
chmod 600 privatekey
Pokud chcete vidět obsah kláves na obrazovce, můžete použít jednoduchý příkaz:
tail privatekey publickey
Tím získáte přehled řetězců, které pak budete muset zkopírovat do konfiguračního souboru wg0.conf a konfigurace klienta. vždy respektovat, co je veřejné a co soukromé.
Vytvoření a úprava souboru wg0.conf na serveru
WireGuard je organizován pomocí virtuálních rozhraní, která se dle konvence obvykle nazývají wg0, wg1 atd.Každé rozhraní má svůj vlastní konfigurační soubor v souboru /etc/wireguard/. V našem případě vytvoříme wg0.conf jako hlavní rozhraní.
Pro úpravu souboru můžete použít libovolný textový editor v konzolovém režimu, ale mnoho tutoriálů doporučuje nano kvůli jeho jednoduchosti. Pokud ho nemáte nainstalovaný, můžete ho přidat pomocí:
apt install -y nano
Jakmile jej máte, vytvořte a otevřete konfigurační soubor serveru:
nano /etc/wireguard/wg0.conf
Před zápisem konfigurace je vhodné zjistit název fyzického síťového rozhraní, přes které se server připojuje k internetu, protože Budete to potřebovat pro pravidlo NAT.K tomu použijte:
ip a
V mnoha VPS se toto rozhraní nazývá ens3, eth0, enp0s3 nebo podobně a bude to to, kterému je přiřazena veřejná IP adresa nebo interní IP adresa, přes kterou se připojujete přes SSH.
Úplný příklad bloku na serveru by mohl být:
PrivateKey = <tu_clave_privada_servidor>
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <nombre_interfaz_salida> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <nombre_interfaz_salida> -j MASQUERADE
V tomto příkladu přiřadíte serveru interní IP adresu. 10.30.0.1/24 uvnitř VPNPosloucháte na UDP portu 51928 a přidáváte pravidla iptables pro povolení přesměrování a použití NAT, když se rozhraní wg0 aktivuje (PostUp), a tato pravidla odstraňujete, když dojde k jeho výpadku (PostDown).
Nezapomeňte, že v nano můžete ušetřit s Ctrl + a jít ven s Ctrl + XPo uložení bude soubor wg0.conf základem, na kterém později přidáte různé uzly (klienty).
Povolte přesměrování IP adres a službu WireGuard na serveru
Aby klienti připojení přes WireGuard měli přístup k internetu nebo jiným sítím za serverem, je nezbytné povolit přesměrování IP paketů na úrovni systému. To se provádí úpravou konfigurace sysctl.
V mnoha případech stačí pouhé spuštění následujícího:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p
Tím se aktivuje přesměrování pro IPv4 i IPv6 a parametry jádra se znovu načtou pomocí `sysctl -p`. Je důležité na tento krok nezapomenout, protože pokud je přesměrování zakázáno, Budete mít tunel, ale nebudete se moci dostat k lokální síti ani k internetu. od zákazníků.
Nyní můžete spustit službu WireGuard spojenou s wg0 pomocí příkazu wg-quick, což výrazně zjednodušuje správu rozhraní:
systemctl start wg-quick@wg0
Pokud chcete, aby se rozhraní WireGuard spouštělo automaticky při každém spuštění serveru, povolte službu pomocí:
systemctl enable wg-quick@wg0
Chcete-li zkontrolovat, zda je služba aktivní, můžete se podívat na její stav:
systemctl status wg-quick@wg0
Stav by se měl zobrazit takto aktivní (běží)Kromě toho můžete použít příkaz:
wg
zobrazit informace v reálném čase o rozhraní, klíčích, nakonfigurovaných uzlech a provozu vyměňovaném tunelem.
Přidání klientů k serveru: PC, mobilní zařízení Android a další zařízení
Jakmile je serverová část spuštěna a funguje, je třeba začít přidávat klienty, kteří se budou připojovat jako peerové zařízení. Pro každé zařízení, ke kterému se chcete připojit (počítač, telefon, tablet, klientský router atd.) Musíte vygenerovat nový pár klíčů a přiřadit mu IP adresu v rámci VPN sítě.
Pro zjednodušení mnoho administrátorů generuje klientské klíče přímo na serveru, ačkoli z bezpečnostního hlediska by ideální bylo vytvořit je přímo na klientském zařízení a na server přenést pouze veřejný klíč. Postup je stejný, takže se podíváme na jednoduchý případ generování klíčů v souboru /etc/wireguard/.
Například pro stolní počítač byste mohli udělat:
wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey
A pro váš mobilní telefon s Androidem:
wg genkey > myphone_privatekey
wg pubkey < myphone_privatekey > myphone_publickey
S jednoduchým:
ls
Uvidíte všechny klíčové soubory. A s:
tail mypc_publickey myphone_publickey
Jejich hodnoty uvidíte na obrazovce. Tyto veřejné klíče vložíte do souboru wg0.conf serveru v samostatných blocích a každému z nich přiřadíte jeho IP adresu tunelu.
Znovu otevřete wg0.conf:
nano wg0.conf
a přidejte definice zákazníků, například:
PublicKey = <clave_publica_mipc>
AllowedIPs = 10.30.0.2/32
VeřejnýKlíč =
PovolenéIPs = 10.30.0.3/32
Těmito řádky indikujete, že peer, jehož veřejný klíč se shoduje s mypc_publickey, bude v rámci VPN používat IP adresu 10.30.0.2 a že Mobilní telefon s Androidem bude používat verzi 10.30.0.3.AllowedIPs s /32 znamená, že se jedná o individuální IP adresu, což je běžné v konfiguracích Road-Warrior.
Uložte změny a restartujte službu, aby server mohl přečíst novou konfiguraci:
systemctl restart wg-quick@wg0
Kdykoli upravíte soubor wg0.conf na serveru (například pro přidání nebo odebrání uzlů), budete muset dobijte službu Aby se změny projevily, nový `systemctl status wg-quick@wg0` potvrdí, že je vše stále zelené.
Vytváření konfiguračních souborů pro klienty
Jakmile jsou uzly na serveru zaregistrovány, dalším krokem je příprava souborů .conf, které klienti použijí pro připojení. Tyto soubory obsahují soukromý klíč klienta, jeho tunelová IP adresa, DNS a podrobnosti o serveru (veřejný klíč, IP adresa a port).
Podle tohoto příkladu byste pro PC mohli vytvořit soubor mypc.conf v souboru /etc/wireguard/:
nano mypc.conf
a napsat něco podobného:
PrivateKey = <clave_privada_mipc>
Address = 10.30.0.2/32
DNS = 8.8.8.8
VeřejnýKlíč =
Koncový bod = :51928
PovolenéIPs = 0.0.0.0/0
PersistentKeepalive = 20
Tato část popisuje klientskou stranu: soukromý klíč zařízení, jeho IP adresu v síti WireGuard a DNS server, který bude používat, když bude tunel aktivní. Server je definován v sekci `defines`, kde je uvedeno... váš veřejný klíč, IP adresa nebo doména, přes kterou se k němu dostanete a port, který jste nakonfigurovali dříve (v tomto příkladu 51928).
Nastavení AllowedIPs = 0.0.0.0/0 směruje veškerý klientský provoz přes VPN (typické, když chcete skrýt svou skutečnou IP adresu nebo vždy používat IP adresu serveru). Pokud chcete dosáhnout pouze určitých vzdálených podsítí, můžete ji omezit například na 10.30.0.0/24 nebo 192.168.0.0/24, v závislosti na topologii vaší sítě.
Parametr PersistentKeepalive udržuje krátkou, periodickou výměnu paketů, aby se zabránilo ukončení připojení, když je klient za NAT nebo firewally, které ukončují neaktivní připojení. Hodnota 20–25 sekund obvykle funguje dobře. pro mobilní zákazníky připojené k síti 4G/5G.
Konfigurace specifická pro klienta Android s WireGuardem
Pro Android je přístup úplně stejný jako pro PC: mobilní telefon potřebuje svůj vlastní soukromý klíč, který mu je přiřazen. odkazují se na jeho IP adresu tunelu a veřejný klíč serveru.Klíče můžete vygenerovat na samotném serveru (stejně jako jsme to udělali dříve) nebo přímo z aplikace pro Android.
Podle předchozího postupu byste již měli mít v souboru `/etc/wireguard/` vytvořené soubory `myphone_privatekey` a `myphone_publickey`. Stále je třeba zaregistrovat konfiguraci klienta, kterou poté importujete do mobilního zařízení. Příklad souboru pro Android by mohl vypadat takto:
nano myphone.conf
a uvnitř:
PrivateKey = <clave_privada_mitelefono>
Address = 10.30.0.3/32
DNS = 8.8.8.8
VeřejnýKlíč =
Koncový bod = :51928
PovolenéIPs = 0.0.0.0/0
PersistentKeepalive = 20
Tento soubor obsahuje vše potřebné pro fungování oficiální aplikace WireGuard na Androidu. vytvořit tunel a vyjednat handshake se serveremNejzáludnější je bezpečně dostat tento soubor do telefonu a co nejvíce se vyhnout zanechání nebezpečných stop.
V laboratorním prostředí byste mohli nastavit webový server (například Apache), zkopírovat soubor myphone.conf do kořenového adresáře dokumentu a stáhnout jej z prohlížeče Android. V reálném prostředí je však vhodnější... Použijte metody jako USB, šifrované synchronizační nástroje nebo ještě lépe QR kód generované ze samotného serveru.
Chcete-li to provést, můžete na server nainstalovat utilitu qrencode:
apt install -y qrencode
a z konfiguračního adresáře spusťte:
qrencode -t ansiutf8 -r myphone.conf
Tento příkaz zobrazí v terminálu QR kód ve znacích, který můžete naskenovat. přímo z aplikace WireGuard na Androidu Použití možnosti přidání nového tunelu pomocí funkce „Skenovat z QR kódu“. Tímto způsobem nemusíte soubor posílat e-mailem ani jej nahrávat do externích služeb.
Konfigurace vzdáleného přístupu k místní síti LAN, DNS a názvů lokálních domén
Kromě vytvoření základního tunelu často chcete mít přístup z mobilního telefonu Android k serverová LAN zařízení, jako je NAS, IP kamera, router nebo interní server, používají své lokální doménové názvy namísto zapamatování IP adres.
Některé routery, které fungují jako servery WireGuard (například některé značky, které integrují VPN server do svého firmwaru), mají sekci pro správu těchto lokálních názvů. V panelu webové administrace obvykle najdete možnosti jako SÍŤ → DNS → Upravit hostitele, ze kterého můžete definovat páry IP/jméno (například 192.168.1.50 nas-casa.local).
Pokud váš router automaticky nerozpoznává lokální domény správně, můžete ručně přidat položky pro zařízení, ke kterým chcete mít přístup prostřednictvím VPN, a změny aplikovat. Tím zajistíte, že problém dokáže vyřešit jak samotný router, tak i klienti používající jeho DNS. správně vyřešit tyto interní názvy.
Servery WireGuard zabudované do routerů s různými verzemi firmwaru mají často specifická nastavení, která umožňují vzdálený přístup k místní síti LAN. Například některá rozhraní nabízejí možnosti s názvem „Povolit vzdálený přístup k podsíti LAN“ nebo „Vzdálený přístup k místní síti LAN“, které musíte povolit v konfigurační části serveru WireGuard.
Povolením této možnosti zpřístupníte router a zařízení v místní síti přes tunel, což vám umožní dosáhnout na ně z klientské sítě (například z vaší sekundární domácí sítě LAN nebo mobilní sítě Android). interní služby serverového routeru a zařízení v hlavní síti LAN.
V mnoha případech tyto routery umožňují exportovat konfigurační profil WireGuard pro použití na externích klientech. Na kartě „WireGuard Server“ můžete obvykle vygenerovat soubor .conf, který již obsahuje IP adresu tunelu, správný DNS (ukazující na IP adresu rozhraní tunelu serveru) a všechny potřebné parametry pro připojení z jiného klientského routeru nebo mobilní aplikace.
Ověřování, řešení problémů a zabezpečení ve WireGuardu
Jakmile nastavíte tunel a importujete konfiguraci do systému Android, je třeba nejprve ověřit, zda stisk ruky Úspěšně dokončeno. Aplikace WireGuard na vašem mobilním zařízení zobrazí stav tunelu a nejnovější časová razítka handshake.
Na serveru spusťte následující příkaz:
wg
Zobrazí vám pro každého peer veřejný klíč, IP adresu koncového bodu, ze kterého se připojuje, poslední handshake a přenesené bajty. Pokud vidíte, že poslední aktivita je prázdná nebo velmi stará, je pravděpodobné, že se jedná o klienta. Možná se nepřipojuje, nebo může být problém s firewallem či přesměrováním portů..
Pokud není k dispozici připojení, zkontrolujte, zda je nakonfigurovaný UDP port (například 51928 nebo 51820) správně otevřený ve firewallu serveru a na všech mezilehlých routerech. Nezapomeňte, že pokud se váš server nachází za domácím routerem, budete muset... přesměrování UDP portu WireGuardu na interní IP adresu serveru.
Pokud je tunel spuštěný, ale nemáte přístup k internetu z klienta, zkontrolujte, zda je povoleno přesměrování paketů (net.ipv4.ip_forward a net.ipv6.conf.all.forwarding) a zda bylo pravidlo NAT v iptables správně použito na správné odchozí rozhraní (eth0, ens3 atd.).
Problémy s DNS se obvykle projevují tak, že sice můžete pingnout konkrétní IP adresy, ale nerozlišuje doménová jménaV takovém případě ověřte, zda v konfiguračním souboru klienta (Android, PC, klientský router) pole DNS ukazuje na správný server: může se jednat o veřejný DNS (8.8.8.8, 1.1.1.1) nebo IP adresu tunelu serveru, pokud chcete, aby fungoval také jako resolver.
Z hlediska bezpečnosti je kromě kryptografické robustnosti protokolu zásadní následující:
- Chraňte soukromé klíče a nikdy se o ně nedělte.
- Co nejvíce omezit Povolené IP adresy každého peer aby měli přístup pouze k tomu, co je nezbytně nutné.
- Používejte nestandardní UDP porty pro snížení šumu z automatických skenerů.
- Udržujte systém a samozřejmě i samotný WireGuard aktuální.
- Použít další pravidla firewallu na omezit, kdo má přístup k portu WireGuard na vašem serveru.
Díky celé této sadě opatření je vaše VPN s WireGuardem nejen rychlá a funkční, ale také odolná vůči běžným útokům, které zneužívají špatné konfigurace nebo nedbalost při správě klíčů.
Po provedení všech těchto kroků budete mít správně nastavený server WireGuard se vzdáleným přístupem z Androidu a dalších systémů, šifrovaným provozem, plnou možností procházení tunelů a možností přístupu k vašim domácím nebo kancelářským zařízením pomocí interních doménových jmen; zkrátka poměrně elegantní způsob, jak... Vezměte si síť s sebou, ať jdete kamkoli aniž byste si rozbili hlavu.
