OPENVPN - The Easy Tutorial - Co je OpenVPN?

openmaniak little square blue OpenVPN openmaniak little arrow right blue Co je OpenVPN?
Last Update: Feb 11 2008


Nástroj
Instalace
Ergonomie
Fórum



Podrobnosti Co je OpenVPN?
Ukázky
Předpoklady a instalace
Průvodce OpenVPN
-----Bezpečný režim-----------
Transparentní tunel
Statické klíče
SSL a PKI (certifikáty)
-----Případová studie-----------
VPN přes IP (TUN)
VPN přes Ethernet (TAP)
Rozšířené nastavení VPN
----------------
Přepínání
Směrování

Czech translation by Ivo Raisr.



⚠️⚠️⚠️
Please check our website about
attractions in Western Switzerland !! (Please use english translation).

⚠️⚠️⚠️
Merci de consulter notre site sur les
activités à faire en Suisse romande !!



OpenVPN OpenSSL


openmaniak little square blue OPENVPN

OpenVPN je open-source program vytvořený v roce 2002. Používá se k vytváření sítí VPN mezi různými lokalitami na základě protokolu SSL/TLS nebo předem vyměněných klíčů. Umožňuje bezpečný transport dat (tunelování) po jediném TCP nebo UDP portu přes nezabezpečenou síť (jako je internet), což je hlavní předpoklad k vytváření sítí VPN.

openmaniak openvpn tunnel picture

openmaniak little arrow right blue Jednoduchost

Největší předností programu OpenVPN je extrémně jednoduchá instalace a konfigurace, kterážto se u programů pro vytváření VPN často nenachází.

openmaniak little arrow right blue Přenositelnost

OpenVPN může být nainstalováno téměř na každé platformě včetně Linuxu, Windows 2000/XP/Vista, OpenBSD, FreeBSD, NetBSD, Mac OS X a Solaris.
Linuxové systémy musejí mít kernel verze 2.4 a vyšší. Konfigurační zásady jsou stejné na každé platformě.

openmaniak little arrow right blue Arichtektura klient - server

OpenVPN je založeno na architektuře klient - server. Musí být instalováno na obou koncích VPN; jeden je určen jako server a druhý jako klient.

openmaniak little arrow right blue Tunelování

OpenVPN vytoří TCP nebo UDP tunel a pak data v tunelu šifruje.
Na základě oficiálního přidělování portů organizací IANA je předvolený port pro OpenVPN stanoven jako UDP port 1194. Můžeš nicméně použít jakýkoli jiný TCP nebo UDP port; od verze 2.0 pak na serveru OpenVPN může být jediný port použit pro několik tunelů.

openmaniak little arrow right blue Bezpečnostní režimy:

Při použití statických klíčů se ten samý klíč používá k šifrování a dešifrování na obou stranách VPN. V tomto případě je konfigurace velmi jednoduchá, ale problém nastává v případě, že potřebuješ předat klíč (přes zabezpečený komunikační kanál) na druhou stranu tunelu jiné osobě, které nutně nemusíš věřit.
Řešením je použití Public Key Infrastructure (PKI - HW a SW vybavení pro správu veřejných klíčů a certifikátů). Každá strana vlastní dva klíče: veřejný klíč je přístupný každému a soukromý klíč je tajný. Tento proces je používán OpenSSL, volně šiřitelnou open source implementací SSL integrovanou s OpenVPN, k autentikaci stran VPN před zahájením šifrování dat.

Porovnání jednotlivých bezpečnostních režimů:

Režim OpenVPN Statické klíče SSL
Režim šifrování: symetrický asymetrický a symetrický
Implementace: jednodušší složitější
Rychlost: rychlejší pomalejší
Využití CPU: nižší vyšší
Výměna klíčů: ANO NE
Obnova šifrovacích klíčů: NE ANO
Autentikace stran: NE ANO
V dalším oddíle se zaměříme na vysvětlení funkce OpenVPN v režimu SSL (asymetrické šifrování), které je doporučeno před režimem statických klíčů (symetrické šifrování).

openmaniak little arrow right blue Směrování a přepínání

Při stavbě VPN si můžeš vybrat mezi implementací přes Ethernet (přepínání) nebo přes IP (směrování). K tomu se používají síťové ovladače TAP nebo TUN, které jsou dostupné na všech platformách a jsou již začleněny do jádra Linuxu 2.4 a vyšší.

openmaniak little arrow right blue Možnosti

Možnosti OpenVPN jsou celkem důležité, například server může klientovi poslat síťové cesty nebo může být použit jako server DHCP. Podívej se do manuálových stránek OpenVPN.
Chceš-li se naučit konfigurovat OpenVPN, podívej se do průvodce o OpenVPN, nebo můžeš pokračovat čtením výkladu o protokolu SSL.
Podíváme se nejprve na klíčové pojmy z oblasti sítí a zabezpečení, abychom lépe pochopili nástroj OpenVPN.

Nahoru



1. SSL 2. VPN 3. OPENSSL 4. IPSEC & SSL 5. IPSEC



openmaniak little square blue SSL

openmaniak little arrow right blue Úvod:

Po mnoho let byl IPSec jediný dostupný protokol k zabezpečení sítí VPN mezi lokalitami nebo mezi klientem a serverem. Nástup protokolu SSL toto naštěstí změnil. SSL již od počátku umožňuje zabezpečit konkrétní protokoly (jako HTTP), komunikace mezi aplikacemi a šifrovat data posílaná v TCP nebo UDP tunelech, používaných k vytváření sítí VPN.
V tomto průvodci se zaměříme na sítě VPN mezi lokalitami, s využitím výborného nástroje OpenVPN ...

openmaniak little arrow right blue Popis SSL:

Specifikace SSL (Secure Sockets Layer - bezpečná vrstva soketů) byla vytvořena v 90. letech společností Netscape. Dvě verze SSL byly publikovány: verze 2 (1994) a verze 3 (1995). Poté byl patent koupen organizací IETF v roce 2001, upraven a přejmenován na TLS (Transport Layer Security - bezpečnost transportní vrstvy) (RFC 2246).
Zkratka SSL je běžně užívána k označení protokolů SSL i TLS. Poslední verze TLS je 1.1.

openmaniak little arrow right blueCíle SSL:

Dva hlavní cíle SSL jsou následující:

- Autentikace serveru a klientu použitím Public Key Infrastructure (PKI - HW a SW vybavení pro správu veřejných klíčů a certifikátů).
- Vytvoření zašifrovaného spojení, pomocí kterého si klient a server předávají zprávy.

openmaniak little arrow right blue OpenVPN a model OSI:

Kam bychom umístili protokol SSL v modelu OSI?
Standardní model OSI je složen ze sedmi vrstev. Architektura TCP/IP je založena pouze na čtyřech vrstvách a je používána většinou aplikací.

SSL se nachází mezi aplikační a transportní vrstvou, tudíž bude šifrovat data aplikační vrstvy.

openmaniak osi model openvpn tcp/ip

openmaniak little arrow right blue Typy VPN přes SSL:

V minulosti byl protokol SSL používán pouze s konkrétními aplikačními protokoly jako je HTTP; několik let je již ale možné zabezpečovat jakákoli aplikační data posílaná přes internet a vytvářet šifrované tunely (VPNky) stejně, jako to dělá IPSec.

Rozeznáváme dva typy sítí VPN:
- VPN typu klient - server (nebo vzdálený přístup), ve které klient potřebuje webový prohlížeč, například Firefox.
- VPN mezi lokalitami, které vyžadují speciální program, například OpenVPN.

openmaniak little square blue Operace protokolu SSL:

Čtyři základní kroky SSL/TLS:

SSL Handshake:
SSL Change Cipher Spec:
SSL Alert:
SSL Record:
Vyjednání šifry, která se bude používat k přenosu dat
Vytvoření a přenos klíče sesssion (sezení) mezi klientem a serverem
Přenos chybových zpráv SSL mezi klientem a serverem
Přenos dat
Nahoru   Menu klíčových pojmů



openmaniak little square blue Principy VPN:

VPN (Virtual Private Network - virtuální privátní síť) je zkratka užívaná k označení šifrovaného tunelu mezi dvěma zařízeními přes nezabezpečenou síť - typicky internet.
VPN spojí dvě lokální sítě umístěné za zařízeními VPN a tak vytvoří jedinou soukromou síť.
Zkratka "VPN" může být použita jak pro zabezpečené spojení mezi lokalitami, tak mezi klientem a serverem. Nadále budeme používat OpenVPN k vytváření VPN mezi lokalitami.

K tomu, aby VPN mohla být označena jako bezpečná, musí splňovat tyto podmínky:

-
 
 

-
 
 

-
 
 
Utajení nebo soukromí:
Přenášená data se na síti nevyskytují v originální podobě.
Typické symetrické šifrovací algoritmy: DES, 3DES, AES, Blowfish.

Celistvost:
Přenášená data nemohou být změněna.
Typické hašovací algoritmy: sha1, md5.

Autentikace:
Brány VPN si navzájem ověřily identitu.
Typické algoritmy: RSA, DH.
Následující obrázek představuje stav paketu při jeho cestě uvnitř LAN a VPN.

openmaniak openvpn packets tcp/ip description


Nahoru    Menu klíčových pojmů



openmaniak little square blue OPENSSL:

OpenVPN používá volně šiřitelnou open source implementaci SSL nazvanou OpenSSL pro šifrování a autentikaci. OpenSSL je sada nástrojů složená z:
- knihovny SSL.
- šifrovací knihovny.
- programu příkazové řádky.

Šifrovací knihovna implementuje širokou škálu šifrovacích algoritmů, například:
- symetrické šifry: Blowfish, DES, 3DES, AES, atd.
- certifikáty: X.509
- hašovací funkce: HMAC, MD5

Nahoru    Menu klíčových pojmů



openmaniak little square blue Porovnání IPSec a SSL:

Cíle SSL a IPSec jsou ty samé: vytvoření VPNek a tudíž šifrování přenosu mezi dvěma zařízeními za použití těch samých algoritmů. Ale jak uvidíš, cesty vedoucí k dosažení tohoto cíle jsou velmi rozdílné.
Samozřejmě, že IPSec a SSL nejsou kompatibilní.

Podívejme se nejprve na základní srovnání SSL a IPSec.

  IPSEC SSL
RFC: 2401 4346 (TLS 1.1)
Pozice v modelu OSI:
 
síťová vrstva
 
mezi transportní a aplikační vrstvou
Umístění software: v kernelu uživatelský program
Instalace: nezávislá na dodavateli odvislá od dodavatele
Konfigurace: složitá jednoduchá
NAT: s problémy bez problémů
Firewall: přátelsky nenakloněno přátelsky nakloněno
Univerzálnost: ANO NE
Pár vysvětlivek k tabulce se srovnáním:

IPSec je protokol třetí vrstvy modelu OSI. Aby se mohl naimplementovat, vyžaduje modifikaci kernelového ovladače, který zpracovává IP. Právě kvůli této změně v kernelu musí mít každý operační systém (například Cisco, Windows, Nortel, Linux apod.) svoji vlastní implementaci IPSec.

OpenVPN se chová více jako normální aplikace. Je implementováno jako uživatelský program a tudíž má výhodu v mnohem větší bezpečnosti a přenositelnosti.

-
 
 
 
 
 
-
 
Větší bezpečnosti je dosaženo proto, že v případě IPSec je program svázán s kernelem a pád programu může poškodit kernel a tudíž i celý systém. Tento problém se s OpenVPN nevyskytuje, protože běží úplně odděleně od kernelu. Z hlediska bezpečnosti je také nutné podotknout, že v případě nabourání IPSec získá softwarový pirát přístup ke kernelu, jinými slovy práva superuživatele. OpenVPN však běží pod normálním uživatelem s omezenými právy.
Větší přenositelnost OpenVPN je získána tím, že může být nainstalováno prakticky na jakékoli platformě. Tudíž se šetří čas tím, že je třeba konfigurovat pouze jednu a tu samou aplikaci..
Běžný problém IPSec je potřeba změny pravidel firewallu tak, aby byl tento protokol a překlad síťových adres (NAT) povolen. I tento problém byl částečně vyřešen protokolem NAT Traversal.
Více detailů o problémech spojených s používáním IPSec přes NAT.

Při použití OpenVPN stačí na firewallu otevřít TCP nebo UDP port, pokud již není otevřen. OpenVPN dokonce může pracovat i přes proxy servery, čili žádná změna na firewallu není nutná! A protože vrstva IP není při použití SSL změněna, odpadá i problém s NAT.
Vytváření tunelů SSL mezi lokalitami je mnohem jednodušší než s IPSec. Složitost konfigurace IPSec často vede k bezpečnostním dírám nebo opomenutým konfiguracím, i když to provádí síťový administrátor. Navíc je konfigurace IPSec pro každého dodavatele jiná, zatímco pro SSL a OpenVPN jsou konfigurace velmi podobné na jakémkoli systému.

Největší výhodou IPSec zůstává možnost jeho použití prakticky na jakémkoli zařízení implementující přislušné RFC. Je například běžně možné vytvořit VPN mezi směrovačem Cisco a Nortel. Píšeme běžně, protože praxe ukázala, že ačkoli jsou příslušní dodavatelé vázáni dodržováním standardů IPSec, občas místo kompatibilních zařízení vyrábějí zařízení nekompatibilní.
Samozřejmě, že OpenVPN není možné instalovat na proprietární zařízení hlavních dodavatelů jako je Cisco, Checkpoint, Juniper nebo Nortel.

V oblasti sítí VPN mezi klientem a serverem už SSL předčilo IPSec a postupně jej v budoucnu nahradí. V oblasti sítí VPN mezi lokalitami přes SSL je situace velmi rozdílná: nejsou zde v současnosti žádné standardy (RFC) a drtivá většina sítí VPN mezi lokalitami je vytvářena mezi zařízeními s proprietárním neveřejným kódem. IPSec tak zůstává pro tuto oblast favoritem.

Nahoru    Menu klíčových pojmů



openmaniak little square blueIPSEC:

IPSec může být poskládáno z jednoho nebo obou následujících protokolů třetí vrstvy: ESP (IP protokol 50, RFC 2406), AH (IP protokol 51, RFC 2402). ESP může být použito pro celistvost a utajení, AH pouze pro celistvost.

S IPSec jsou úzce svázány další dva protokoly: ISAKMP (RFC 2408) a IKE (RFC 2409). ISAKMP (Internet Security Association and Key Management Protocol - internetový Protokol pro bezpečný styk a správu klíčů) je používán spolu s IKE (Internet Key Exchange - výměna klíčů po internetu) pro automatickou výměnu klíčů na UDP portu 500.

Nahoru    Menu klíčových pojmů