Raspberry Pi jako VPN server s podporou WireGuard a OpenVPN

Vzhledem k tomu, že jsem často na cestách, potřebuji vyřešit přístup k různým online službám z jediné IP adresy. Řešením je samozřejmě VPN. Roky sice používám to zabudované ve svém NAS, ale nyní jsem se rozhodl proměnit ve VPN server svoje Raspberry Pi 3.

Proč používat VPN? Většina článků začíná výčtem důvodů, jak se tím zamaskujete před internetovými šmíráky, jak se dostanete ke službám, které jsou dostupné jen z nějakého geografického umístění vyhodnoceného na základě IP adresy. Tyto ambice nemám. Vše, co potřebuji, je neměnná IP adresa, ideálně ta domácí.

V kanceláři používám mobilní internetové připojení, které perfektně stačí pro práci webaře i případnou návštěvu někoho během školení. Stejně tak na cestách. Ale měnící se IP adresa po každém připojení mě právě nutí používat VPN. Což o to, v zásadě je to bez problémů. Umí jej jak přímo můj router, tak NAS, které je za ním.

V NAS od Synology mám nějaké webové aplikace, ke kterým řídím přístupy přes reverzní proxy. Bohužel v momentě, kdy využiji VPN u routeru nebo NASu, tak se směrem k těmto aplikacím dostává má měnící se venkovní IP adresa, nikoli lokální nebo ta od místního připojení.

Hledal jsem tedy možná řešení, a nakonec můj pohled spočinul na momentálně vypnuté Raspberry Pi 3 v poličce vedle monitoru. Nebylo co řešit. Rozběhnutí VPN v operačním systému Raspbian je otázkou jednoho příkazu v terminálu, několika stisků Enteru a exportu konfiguračního souboru.

PiVPN s podporou OpenVPN a WireGuard

Skutečně, rozběhnout VPN na malinkatém počítači Raspberry Pi je otázkou jediného příkazu v terminálu, a to díky projektu PiVPN. Stačí vám totiž odentrovat následující:

curl -L https://install.pivpn.io | bash

Skript postupně nainstaluje potřebný software a nabídne několik konfiguračních obrazovek. V nich v podstatě stačí, abyste odsouhlasili výchozí nastavení stiskem klávesy Enter. Samozřejmě, předpokladem úspěšného fungování je neměnná IP adresa vašeho routeru a samozřejmě i stále stejná lokální IP adresa Raspberry Pi. Na konci instalace se dozvíte, jaký port nastavit pro přesměrování ve vašem routeru do malinového počítače.

PiVPN

Jako VPN volím WireGuard

Ke konci je nutné se rozhodnout, zda jako VPN server použijete starší technologii OpenVPN nebo novější, modernější a rychlejší WireGuard. Oboje bude vyžadovat na klientském počítači aplikaci třetí strany. Tedy minimálně na MacOS. Pro OpenVPN tam používám hodně geekovsky vypadající TunnelBlick. Ano, funguje to, ale připojování je docela pomalé a po prvních zkušenostech i po roce stále čekám, kdy to spadne.

PiVPN

Proto jsem také nyní vyzkoušel WireGuard. Na straně PiVPN to znamenalo po instalaci pouze spuštění příkazu pivpn add a následně zadání uživatelského jména pro identifikaci připojení k VPN. V domovské složce na Raspberry Pi a podsložce config vám vznikne konfigurační soubor, který si nějak překopírujte do koncového počítače.

PiVPN

Na MacOS bylo nutné nainstalovat bezplatnou připojovací aplikaci pro WireGuard, protože VPN zabudované v operačním systému si s tímto spojením nerozumí (umí jen L2TP/IPSec). Po spuštění aplikace v ní načtete vygenerovaný konfigurační soubor z Raspberry Pi a veškeré nastavení pro připojení se připraví.

Pak už stačí se jedním kliknutím připojit a jste hotovi. Ověření je bleskurychlé.

Je rychlejší VPN v Synology Routeru nebo WireGuard na Raspberry Pi?

Jen ze zajímavosti jsem chtěl zjistit, jak velké rozdíly v rychlosti obou řešení mohu očekávat. Na mobilním připojení v kanceláři to pravděpodobně nebude postřehnutelné po většinu času. Ale připojil jsem se na kabelový internet a pustil několik testů.

WireGuard na Raspberry Pi: ping 31 ms, jiter 2,24 ms, download 60 Mbps, upload 9,48 Mbps

L2TP/IPec na routeru Synology: ping 31 ms, jiter 2,58 ms, download 85 Mbps, upload 9,17 Mbps

Je tu jistý rozdíl v rychlosti stahování, kdy buď Raspberry Pi nestíhá nebo naráží na nějaký limit svého síťového rozhraní. Nicméně pro moje potřeby stačí i těch 60 Mbps, nad které jsem se při opakovaném měření nedostal.

Další příkazy PiVPN

Během používání PiVPN využijete i další informace, které vám skrze příkazový řádek sdělí. Já si zatím vystačil se dvěma:

pivpn -c, který vypíše seznam aktuálně připojených klientů

pivpn -d, který zkontroluje a případně opraví nastavení, v mém případě rozhozenou konfiguraci u IPTABLES po změně připojení maliny z Wi-Fi na Ethernet.

Budete-li potřebovat upravit konfiguraci, stačí znovu spustit instalátor, který nabídne aktuální hodnoty a jejich editaci.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru