Virtual Private Network
Zkratka VPN je z názvu Virtual Private Network, což je privátní počítačová síť, která dovolí připojit vzdálené uživatele nebo pobočky do LAN organizace přes veřejné telekomunikační služby, převážně přes internet. Pro bezpečné vytvoření sítě na větší vzdálenost je možné využít pronajatých linek, ale to je velice drahé řešení (a pro připojení mobilních pracovníků nepoužitelné). VPN toto umožňuje přes relativně levný internet a bezpečnost řeší pomocí vytvoření šifrovaného tunelu mezi dvěma body (nebo jedním a několika). VPN řeší důvěrnost, autentizaci, neporušenost komunikace, apod.
VPN je velice široký termín a zahrnuje řadu protokolů a technologií. Hlavní typy VPN jsou dva:
- Site-to-Site VPN - spojujeme dvě (nebo více) sítě dohromady, většinou centrálu a pobočky, používají se speciální síťová zařízení (VPN koncentrátor, firewall, router, server), která slouží jako VPN gateway a naváží mezi sebou VPN spojení (příchozí komunikaci rozbalí a do sítě posílají standardně, odchozí zapouzdří do VPN tunelu), uživatelské stanice pak nepotřebují VPN klienta, často používané protokoly/typy jsou IPsec VPN a MPLS VPN
- Remote Access VPN - připojujeme individuální klienty do lokální sítě, klienti musí mít speciální SW - VPN klienta, na straně privátní sítě je opět speciální síťové zařízení, často používané protokoly/typy jsou SSL VPN a IPsec VPN
Druhým nejčastějším dělením VPN je podle primárně použitého protokolu, na kterém je VPN postavena:
- IPsec VPN - Internet Protocol Security je asi nejrozšířenější forma VPN, je to součást IPv6 a hojně se používá v IPv4, často se kombinuje s L2TP (L2TP over IPsec), má problémy s NATem (řeší to NAT-T)
- SSL VPN - moderní metoda VPN, která využívá Transport Layer Security (TLS) nebo Secure Sockets Layer (SSL), často se využívá port 443 (HTTPS) a VPN dobře prochází přes FW (pracuje na vyšší vrstvě, takže nemá problémy s NATem), Microsoft vytvořil Secure Socket Tunneling Protocol (SSTP), což je přenos PPP nebo L2TP skrz SSL
- MPLS VPN - Multiprotocol Label Switching využívají hlavně ISP, kdy vytváří privátní sítě pro zákazníky přes MPLS
Existuje i řada dalších typů VPN (třeba PPTP, SSH), které jsou ale méně rozšířené/používané.
Typy VPN na Cisco ASA
- IPsec VPN
- Site-to-Site - spojují se VPN zařízení
- Remote Access - používá se Cisco VPN Client (nebo jiný SW VPN klient)
- SSL VPN
- Clientless SSL VPN - přístup přes webový prohlížeč, dříve se označovala WebVPN
- Cisco SSL VPN Client (Remote Access) - používá Cisco AnyConnect VPN Client
Od verze ASA 8.4 (a ASDM 6.4) přidalo Cisco podporu IKEv2 a rozděluje IPsec VPN na IPsec(IKEv1) a IPsec(IKEv2) pro který je potřeba Cisco AnyConnect Client verze 3.0 (a také Anyconnect licence).
IPsec Remote Access VPN
IPsec, plným názvem Internet Protocol Security, je standardizovaná skupina protokolů pro zabezpečení IP komunikace mezi dvěma koncovými systémy. Obsahuje obousměrnou autentizaci a vyjednání kryptografických metod a klíčů. IPsec pracuje na IP vrstvě, to znamená na Layer 3 OSI modelu, a doplňuje IPv4 protokol (v IPv6 je povinnou součástí protokolu).
IPsec nejprve zařídí to, že se obě strany navzájem identifikují (autentizují) a následně šifruje veškerou komunikaci pomocí domluveného algoritmu. Komunikujícím stranám říkáme peers. V rámci IPsecu můžeme používat velké množství standardních protokolů a algoritmů. IPsec neurčuje, jaké algoritmy se musí použít pro komunikaci, ale definuje mechanismy vyjednávání a základní množinu algoritmů.
IPsec režimy funkce
IPsec může pracovat ve dvou módech (host-to-host) Transport a (network) Tunnel Mode (defaultní), rozdíl je v tom, co se šifruje.
- Tunnel mode - šifruje celý paket (včetně hlavičky) a doplňuje novou hlavičku. Tento mód se může použít pro IPsec proxy, klient posílá data, router je šifruje a posílá dál. Z komunikace se nedá odhalit adresa klienta.
- Transport mode - šifruje pouze data, IP hlavička se ponechá a doplní se pouze IPsec hlavička. Někteří klienti podporují pouze transport mode, například L2TP/IPsec klient ve Windows.
IPsec protokoly
IPsec využívá tři hlavní protokoly:
- Authentication Header (AH) - zajišťuje integritu a autentizaci zdroje dat, využívá hashovací funkce (jako MD5 či SHA1) a společný klíč (který si na začátku domluví), v hlavičce obsahuje pořadové číslo paketu, pro komunikaci používá protokol IP číslo 51, dnes se téměř nepoužívá
- Encapsulating Security Payload (ESP) - zajišťuje důvěrnost, autentizaci zdroje a integritu, využívá šifrovací algoritmy (jako DES či AES), pro komunikaci používá protokol IP číslo 50
- Security Association (SA) - skupina algoritmů, které poskytují parametry pro bezpečnou komunikaci pomocí AH a ESP, používá ISAKMP Framework (Internet Security Association and Key Management Protocol) a nějaký protokol, většinou IKE (Internet Key Exchange), pro vyjednání atributů, atributy obsahují zvolený šifrovací algoritmus, dobu platnosti klíče, kompresi a způsob zapouzdření, komunikace probíhá šifrovaně
Navázání IPsec VPN
Běžně IPsec VPN komunikace probíhá:
- pomocí IKE se na UDP portu 500 vyjedná SA, používá certifikáty (klientský a serverový) nebo PSK
- z parametrů SA se naváže na IP 50 šifrovaná komunikace pomocí ESP
IKE - Internet Key Exchange
Často se na začátku IPsec komunikace používá IKE protokol pro vyjednání Security Association. IKE používá pro komunikaci UDP port 500 a pro autentizaci certifikáty nebo Pre-Shared Key (PSK). Pro výměnu klíčů se používá metoda Diffie-Hellman (vytvoří shared session secret a z něj se odvodí šifrovací klíče). Takže komunikace je šifrována a IKE může sloužit jako část autentizace (musíme mít certifikát nebo znát PSK). Nověji se používá také IKEv2.
IKE pracuje ve dvou fázích:
- Phase 1 - autentizují se účastníci a vyjedná se IKE SA (pomocí Diffie-Hellman), díky tomu se vytvoří bezpečný kanál pro vyjednání IPsec SA ve fázi 2, pracuje v režimu main mode (chrání identitu komunikujících stran) nebo aggressive mode
- Phase 2 - vyjedná IPsec SA parametry a nastaví odpovídající SA, pouze režim quick mode
Perfect Forward Secrecy (PFS) - volitelné rozšíření zabezpečení fáze 2. Standardně při IPsec vyjednávání jsou klíče fáze 2 odvozeny od klíčů fáze 1. PFS využije novou výměnu klíčů pomocí Diffie-Hellman.
Rozšíření IKE protokolu XAUTH (Extended User Authentication) dovoluje použít autentizaci uživatele vůči RADIUS serveru. Nejde o náhradu, ale o rozšíření. Standardně IKE podporuje ve fázi 1 pouze autentizaci počítače. XAUTH přidává další fázi (po fázi 1 a před fází 2), kdy dojde k autentizaci uživatele (pomocí AAA metod).
NAT-T - Network Address Translation - Traversal
Pakety posílané s IPsec jsou chráněny hashem, aby nemohl být jejich obsah změněn. Pokud je v cestě NAT, tak ten modifikuje IP hlavičku, potom nesouhlasí hash a takový paket je zahozen. Řešením, aby komunikace fungovala, je využití NAT-T. Ten doplní paketu novou UDP hlavičku (provede zapouzdření paketu do UDP), ta může být cestou modifikována. Na druhé straně se hlavička odstraní a příchozí paket je OK. Vyjednávání během IKE může domluvit UDP zapouzdření. Komunikace používá UDP port 4500 a označuje se jako IPsec over UDP nebo IPsec over NAT-T.
U Cisca je možné zapouzdření nejen do UDP, ale také do TCP a stanovení portu. Cisco také používá různá označení, třeba Transparent Tunneling či NAT Transparent.
L2TP over IPsec
Layer 2 Tunneling Protocol (L2TP) je tunelovací protokol pro podporu VPN. Sám o sobě neobsahuje žádné šifrování, pouze vytváří tunel. Komunikuje na UDP portu 1701. Často se používá dohromady s IPsec, který zajišťujte důvěrnost (šifrování) a autentizaci. Mluvíme pak o L2TP/IPsec.
Proces navazování spojení může probíhat:
- pomocí IKE se na UDP portu 500 vyjedná SA, používá certifikáty (klientský a serverový) nebo PSK
- z parametrů SA se naváže na IP 50 šifrovaná komunikace pomocí ESP v transportním módu
- vyjedná se a naváže L2TP tunel mezi koncovými body, komunikace probíhá přes UDP 1701, ale to je zabalené v IPsec, takže v paketu jde o IP 50
Další vlastnosti
Split Tunneling - pouze část komunikace od klienta jde do VPN (firemní rozsah adres) a zbytek jde přímo do internetu. Běžný způsob je, že veškerá komunikace je směrovaná do VPN tunelu.
Parametry pro některé IPsec VPN klienty
Když vytváříme VPN, tak potřebujeme znát, jaké algoritmy a protokoly podporuje určitý klient, aby nám výsledná komunikace fungovala.
Cisco VPN client
Cisco VPN client podporuje většinu možností a téměř vše, co můžeme nastavit na Cisco ASA. IPsec musí být v tunnel mode a není podporován L2TP. Můžeme použít IPsec ESP s NAT-T jako IPsec/UDP či IPsec/TCP. Zabezpečení ESP šifrování DES, 3DES (56/168-bit) a AES (128/256-bit), pro integritu hashovací funkce MD5 a SHA, IKE s digitálními certifikáty, Diffie-Hellman (DH) Groups 1,2 a 5 s PFS. Kompresi dat LZS. Pro autentizaci RADIUS, ale nepodařilo se mi rozchodit autentizaci uživatelským certifikátem.
Windows XP či Windows 7
Microsoft má v řadě svých klientů zabudovaného IPsec VPN klienta (ve Windows 7 je také podpora SSTP a IKEv2, nezkoušel jsem). Podporuje i NAT-T, ale pokud je server za NATem, tak se na klientovi musí povolit v registrech.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters\"NegotiateDh2048"=dword:1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec\"AssumeUDPEncapsulationContextOnSendRule"=dword:2
Ve Windows 7 se druhá hodnota nachází na jiném místě.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent\"AssumeUDPEncapsulationContextOnSendRule"=dword:2
Standardní klient je L2TP/IPsec, takže L2TP je potřeba, a musí jít o transport mode. Zabezpečení je podporováno ESP šifrování DES a 3DES, integritu MD5 nebo SHA a D-F group 1, 2, 2048. Není zde problém s využitím EAP smartcard, tedy autentizace uživatelským certifikátem.
Google Android
V OS pro mobilní telefony Google Android je integrovaný VPN klient (údajně) již od verze 1.6. Volíme mezi L2TP/IPsec PSK VPN (pro IKE se použije PSK) a L2TP/IPsec CRT VPN (pro IKE máme certifikát). Nikde jsem nenašel popis vlastností, ale z praktických testů vyplívá, že podpora je podobná jako ve Windows XP. Tedy L2TP/IPsec v transportním módu, ESP s DES a 3DES, MD5 a SHA1.
Velmi pěkné shrnutí základů VPN, díky.
Doplním zkušenosti s VPN klientem ve W7 - občas ho používám na L2TP over IPsec a moc bych ho jako nějaké stále řešení nedoporučoval. Krom toho, že se tam dá nastavit minimum možností, se občas prostě stane, že nefunguje a je třeba restartovat systém / případně zapnout manuálně služby. Navíc pokaždé když klienta zapnu, se nikdy nezdaří notebook následně uspat a dojde k zakousnutí.
A ve chvíli, kdy do systému nainstalujete další VPN klient, ten integrovaný je pak z funkčností vyloženě na štíru ...
odpověď na [1]Jech: Já používám nativního klienta ve Windows XP, později Windows 7, již asi 5 let. Naprosto bez problémů. Možná také záleží vůči jakému serveru. A teď mám dočasně dohromady toto řešení spolu s Cisco VPN clientem a také žádný problém.
Když jsme u těch klientů. Používám ShrewSoft VPN Clienta proti ZyWALLům. Je to free i pro firmy a běží to jak na Windows tak na Linuxu. Mohu jen doporučit.
A mate nejake zkusenosti s Androidim klientem proti VPN v IOSu v rezimu klasickeho IPsecu (nikoliv SSL)?
odpověď na [4]Lobo: Stačí si přečíst 3. díl seriálu , tam je to podrobně popsané.
Snazim sa rozbehat vpn z HTC desire S, cize android. Po nastaveni adroid vpn, na asa dostanem stale chybu ...can't find a valid tunnel group aborting...
Vie mi niekto pomoct ?
Chyba mi nastavenie group authentication name v adroid nastaveniach :(
odpověď na [7]Mikulas: Já používám certifikát zařízení. Jinak tu mám podrobný návod, jak to s Androidem funguje.
Takze PSK riesenie nemas zpojazdnene ? Ten podrobny navod je kde ;) ? Neviem ho najst :(
odpověď na [9]Mikulas: Odpovídám na stejný dotaz zde v komentáři 5! 3. díl tohoto seriálu podrobně popisuje nastavení VPN pro různé klienty (včetně Androidu).
Riesil uz niekto spojenie Asus prime s androidom 4.x.x na ipsec.?Na druhej strane je zyxell usg 300.
odpověď na [3]ViSte: ViSte
Diky, zachranil jsi mi zivot, pouzival jsem VPN klienta od Zyxelu ktery je placeny a asi 50 hodin resil proc pres to nejde synchronizace outlooku (se pripojil ale nestahl data). S tim klientem od shrewsoftu to jde jedna basen a jeste je zadarmo Nadhera
Zdravím lidi, máte někdo zkušenosti s nastavováním VPN na Macu (10.7 Lion), na druhé straně mám Cisco 4400n. Bohužel na Maca momentálně není žádný funkční VPN klient, který by fungoval ve 64-bitové verzi systému. Díky za případné informace.
Větší sra..,, než je VPN Cisco AnyConnect Secure Mobility jsem neviděl. Je to absolutně uživatelsky nepříjemný SW. Pokud se přes něj připojuji do více firem, tak si to nepamatuje absolutně nic. Jenom pořád první zadanou IP, a poslední zadané přihlašovací jméno. Fakt hrůza, kdo tohle vůbec může vymyslet. Žije jenom v tom, že se bude připojovat k jedné IP. Pokud spravujete vzdálené servery, a 10krát za den máte pořád dokola přepisovat IP, Group, jméno tak to je fakt zážitek. Jestli mi někdo poradí, jak v tom alespoň zapamatovat parametry připojení (bez hesla) - alespoň tak, jak to je v klasickém VPN Cisco, nebo jiných trochu rozumných SW (OpenVPN, SecureRemote), tak je u mě KING.
Luboš
Na win7 mam v cestě C:\Users\xxx\AppData\Local\Cisco\Cisco AnyConnect Secure Mobility Client konfigurák preferences.xml, teoreticky lze mít více takových templejtů ... pokud neni lepší řešení?