Zkratka proVirtual Private Networkvé-pé-enTakéVPN tunel, VPN připojení, virtual private networkPokročilý

Definice

VPN je technologie, která vytvoří šifrovaný tunel mezi zařízením a vzdálenou sítí, takže provoz putuje veřejným internetem, ale chová se, jako by šlo o soukromé propojení. Používá se pro vzdálený přístup zaměstnanců do firemní sítě, propojení poboček a skrytí obsahu i cíle komunikace před poskytovatelem připojení.

Kategorie: Sítě a protokolyAktualizováno

Než se na to spolehnete: Wikidata identifikátor Q42056 pro VPN uvádím z paměti a nemusí být přesný; doporučuji ověřit. Rovněž URL formát odkazu na NIST SP 800-207 se v minulosti měnil.

Co VPN ve skutečnosti řeší

VPN vznikla z praktického problému: firma má servery v interní síti, ale zaměstnanci sedí doma nebo v hotelu. Vystavit interní služby přímo do internetu je riskantní, natáhnout fyzickou linku ke každému nemožné. VPN tenhle rozpor obchází tím, že po veřejném internetu postaví zapouzdřený a šifrovaný kanál, kterým se pakety tváří, jako by pocházely přímo z vnitřní sítě.

Průběh spojení: od handshake k tunelu

Navázání VPN probíhá ve dvou fázích. Nejdřív se obě strany ověří a dohodnou na klíčích: buď certifikátem, předsdíleným klíčem, nebo veřejným klíčem protistrany. Teprve potom začne samotné tunelování, kdy se původní IP paket kompletně zabalí do nového paketu s jinou hlavičkou a zašifrovaným tělem.

Rozdíl proti běžnému HTTPS je v úrovni, na které to funguje. HTTPS chrání obsah jedné aplikační relace, ale okolí vidí, na kterou IP adresu se připojujete a kterou doménu žádáte. VPN šifruje celou síťovou vrstvu naráz, takže poskytovatel připojení vidí jen jeden trvalý tok dat na VPN server.

Nejrozšířenější protokoly

  • IPsec s IKEv2: standard IETF, obvyklý u hardwarových firewallů a propojení poboček.
  • OpenVPN: pracuje nad TLS, dobře prochází restriktivními sítěmi, když běží na portu 443.
  • WireGuard: mnohem menší kódová základna, pevně zvolená sada kryptografie, součást linuxového jádra.

Split tunnel proti full tunnelu

Split tunneling posílá do tunelu jen provoz mířící do firemních rozsahů, zbytek jde přímo. Šetří to linku a latenci, ale rozbíjí to představu, že veškerý provoz prochází firemní kontrolou. Full tunnel vede tunelem všechno včetně Netflixu, což zatíží koncentrátor, zato dává jednotný bod pro logování a filtrování.

Kde VPN naráží na své hranice

VPN je binární rozhodnutí o důvěře: kdo je v tunelu, je uvnitř. Ukradený notebook s uloženým profilem tak dostane útočníka rovnou do vnitřní sítě. Proto ji v korporátech nahrazuje model Zero Trust, kde se ověřuje každý požadavek na každou službu zvlášť, nikoli jen jednou při připojení.

U komerčních VPN služeb pro spotřebitele platí jiná výhrada: provoz se nezneviditelní, jen se přesune důvěra od poskytovatele internetu k provozovateli VPN. Ten vidí totéž a jeho sliby o nelogování nelze zvenčí ověřit.

Provozní detaily, které bolí

Zapouzdření zvětšuje každý paket o hlavičku tunelu, takže se snižuje efektivní MTU. Pokud se nastavení MSS nezvládne, projdou malé pakety a velké přenosy zamrznou uprostřed. Druhý klasický problém je únik DNS: klient sice tuneluje data, ale dotazy posílá na lokální resolver poskytovatele, který tím zjistí celou historii navštívených domén.

Příklady z praxe

  1. Přístup k databázi bez veřejného portu

    Produkční PostgreSQL běží v privátní podsíti a nemá žádnou veřejnou IP. Vývojář se připojí firemní VPN, dostane adresu z interního rozsahu a databázi otevře, jako by seděl v kanceláři. Bez tunelu je port 5432 z internetu neviditelný, takže odpadá celá třída útoků hrubou silou.

    # po připojení VPN se interní rozsah směruje do tunelu
    $ ip route | grep tun0
    10.20.0.0/16 dev tun0 scope link
    $ psql -h 10.20.4.11 -U analytik warehouse
  2. WireGuard mezi dvěma pobočkami

    Malá firma propojí server v Praze a v Brně jedním WireGuard rozhraním. Konfigurace se vejde do několika řádků, každá strana zná veřejný klíč té druhé a povolené rozsahy. Tiskárny i NAS jsou pak dostupné z obou míst bez veřejného vystavení.

    [Interface]
    Address = 10.9.0.1/24
    PrivateKey = <klic-praha>
    ListenPort = 51820
    
    [Peer]
    PublicKey = <verejny-klic-brno>
    AllowedIPs = 10.9.0.2/32, 192.168.20.0/24
    Endpoint = brno.example.com:51820
    PersistentKeepalive = 25

Časté omyly

MýtusS VPN jsem na internetu anonymní.
Ve skutečnostiVPN skryje provoz před poskytovatelem připojení a nahradí zdrojovou IP adresu, ale přihlášené účty, cookies a otisk prohlížeče identifikují uživatele dál. Provozovatel VPN navíc vidí přesně to, co dřív viděl operátor.
MýtusVPN je zbytečná, když všechno běží přes HTTPS.
Ve skutečnostiHTTPS chrání obsah jednotlivých relací, nikoli fakt, kam se připojujete, a nedá přístup ke službám, které vůbec nejsou vystavené do internetu. VPN řeší dosažitelnost vnitřní sítě, ne jen důvěrnost.
MýtusKdyž jsem v tunelu, jsem v bezpečí.
Ve skutečnostiVPN ověřuje připojení, ne to, co se v něm děje. Nakažené zařízení uvnitř tunelu má přímou cestu k interním systémům, proto se doplňuje segmentací sítě a ověřováním na úrovni jednotlivých služeb.

Časté dotazy

Zpomaluje VPN internetové připojení?
VPN prakticky vždy něco ubere, protože provoz jde oklikou přes další server a přibývá režie šifrování i zapouzdření. Nejvíc se projeví latence: pokud je VPN server v jiné zemi, každý požadavek urazí cestu navíc. Moderní protokoly jako WireGuard mají malou výpočetní režii a na běžné lince rozdíl v propustnosti bývá jednotky procent, zatímco starší softwarová řešení s pomalým šifrováním dokážou linku srazit výrazně. Roli hraje i kapacita koncentrátoru, přes který se připojují všichni zaměstnanci naráz.
Jaký je rozdíl mezi VPN a proxy serverem?
VPN pracuje na síťové vrstvě a přesměruje veškerý provoz zařízení včetně DNS, aktualizací systému i aplikací, které o ní vůbec nevědí. Proxy server naproti tomu obsluhuje jen konkrétní aplikaci, typicky prohlížeč nastavený na HTTP nebo SOCKS proxy, a zbytek systému chodí napřímo. Proxy také nemusí provoz vůbec šifrovat, kdežto u VPN je šifrovaný tunel definiční vlastností. Pro přístup do firemní sítě je proto proxy nedostatečná, pro jednorázové obejití geografického omezení v prohlížeči naopak stačí.
Kdy VPN nestačí a je čas na Zero Trust?
VPN nestačí ve chvíli, kdy se aplikace rozpadnou mezi vlastní datové centrum a několik cloudů, protože pak neexistuje jediný perimetr, za který by se dalo vstoupit. Druhým signálem jsou dodavatelé a zařízení, kterým firma nechce dát plný přístup do vnitřní sítě, ale jen k jedné aplikaci. Zero Trust přistupuje k problému jinak: každý požadavek se ověřuje podle identity uživatele, stavu zařízení a kontextu, nikoli podle toho, že klient prošel jednou branou.
Je používání VPN v Česku legální?
Používání VPN je v České republice legální a běžně je vyžadují samy firmy pro vzdálenou práci. Nelegální zůstává obsah činnosti, ne tunel: VPN nezmění právní posouzení šíření chráněných děl ani neoprávněného přístupu do cizího systému. Odlišná je situace v zemích, které provoz VPN regulují nebo vyžadují licenci poskytovatele, což se týká například některých států Blízkého východu a Asie. Firemní použití navíc podléhá interním pravidlům zaměstnavatele a logování provozu má dopady na ochranu osobních údajů.

Zdroje

  1. Security Architecture for the Internet Protocol(otevře se v novém okně)RFC Editor, 2005
  2. Internet Key Exchange Protocol Version 2 (IKEv2)(otevře se v novém okně)RFC Editor, 2014
  3. Virtual private network(otevře se v novém okně)Wikipedia
  4. Zero Trust Architecture (SP 800-207)(otevře se v novém okně)NIST, 2020

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.