Omrežja

OpenVPN

Glavni razvijalec VPN rešitve OpenVPN je podjetje OpenVPN Technologies, Inc. iz ZDA, ki je tudi lastnik blagovne znamke OpenVPN in ki ponuja svojo rešitev za navidezna zasebna omrežja, imenovano OpenVPN Access Server, kot nadgradnjo rešitve OpenVPN, ki je sicer izdana pod licenco GPL različice 2.

OpenVPN postaja vedno bolj priljubljen, saj je brezplačen, zagotavlja visoko stopnjo varnosti, omogoča povezovanje sistemov z različnimi operacijskimi sistemi in je enostaven za vzdrževanje.

Zasnova

Zaradi odprtosti in možnosti vpogleda v izvorno kodo, namerno izdelane dokumentacije o zasnovi rešitve še ni; je pa rešitev sestavljena iz naslednjih elementov.

TUN/TAP prilagodilni člen

Ta člen predstavlja osredni element rešitve, katerega operacijski sistem obravnava kot omrežno napravo in se uporablja tako na omrežnem nivoju za povezave točka-na-točko (TUN) kot tudi na povezovalnem nivoju za poljuben promet (TAP).

UDP in TCP prenosni način

OpenVPN lahko vzpostavi predor (po obstoječem, podrejenem omrežju) na dva načina; preko TCP ali preko UDP prenosnega načina. Zaradi narave TCP prenosa, ki zagotavlja dostavo, se lahko prepustnost navideznega omrežja preko načina TCP, ki prenaša TCP promet, razpolovi, kar je najbolj opazno pri slabšem podrejenem omrežju. Enako velja tudi za UDP promet preko načina UDP, zato je za TCP promet bolje uporabiti način UDP.

Ko se odločamo ali uporabiti UDP ali TCP prenosni način, najprej uporabimo UDP prenosni način. Če ta deluje, ga uporabljajmo še naprej. Če ta ne deluje, uporabimo TCP prenosni način.

Kanali in šifriranje

OpenVPN za šifriranje uporablja TLS, vendar se ta razlikuje od TLS, ki ga uporablja HTTPS, zato lahko požarni zidovi s podporo za DPI razlikujejo med prometom. OpenVPN uporablja dva kanala; nadzornega in prenosnega, ki si delita ena vrata.

Nadzorni kanal se vzpostavi preko TLS mehanizma, pri čemer se tudi dogovori o izbiri šifrirnih mehanizmov in zgostitvene funkcije za nadzorni kanal. V nadaljevanju nadzorni kanal služi za izmenjavo šifrirnih ključev.

Pri prenosnem kanalu ni začetnega dogovarjanja o izbiri mehanizmov in zgostitvene funkcije, temveč sta ta dva določena v nastavitvah strežnika in odjemalca. Privzeto se uporablja Blowfish šifrirni mehanizem in SHA1 zgostitvena funkcija za HMAC.

Seznam podprtih šifrirnih mehanizmov in zgostitvenih funkcij za nadzorni kanal je dostopen preko ukaza openvpn --show-tls. Seznam je odvisen od različice uporabljene SSL knjižnice.

Seznam podprtih šifrirnih mehanizmov za prenosni kanal se izpiše z openvpn --show-ciphers, in seznam zgostitvenih funkcij za HMAC z openvpn --show-digests.

Privzeto je OpenVPN uporabljal OpenSSL knjižnico, vendar ga je od različice 2.3 možno uporabiti tudi s knjižnico mbed TLS, s čimer se je rešila zagata okoli licenc.

Nastavljanje

OpenVPN se lahko nastavi preko argumentov, katere podamo za imenom izvršljive datoteke, ali preko datoteke nastavitev. Datoteka nastavitev je sestavljene iz vrstic, kjer se vsaka začne z imenom možnosti in nato nadaljuje z vrednostmi, ki se tičejo možnosti. Naslednja dva primera nastavitve, prvi preko argumentov in drugi preko datoteke z nastavitvami, sta enakovredna.

openvpn --ime vrednost1 vrednost2
ime vrednost1 vrednost2

Datoteko nastavitev nastavitve.conf podamo izvršljivi datoteki preko argumentov --config nastavitve.conf. Za tem argumentom lahko še vedno podamo argumente z nastavitvami, ki pa bodo preglasili nastavitve iz datoteke.

Za kratka opravila (npr. pregled podprtih zgostitvenih funkcij, ustvarjanje ključev) se svetuje uporaba argumentov. Za vse ostalo pa se naj uporabi datoteko z nastavitvami, ki lahko hranijo tudi vsebino certifikatov.

Namestitev

OpenVPN je na voljo tudi za Android naprave.