Objavljeno: 31.3.2009 | Avtor: Luka Kropivnik | Monitor Marec 2009

Odprtokodni VPN

Vsakdo se je že znašel v situaciji, ko je potreboval varno povezavo z oddaljeno točko v omrežju. Pri tem nimamo v mislih le interneta, temveč vse vrste povezav, pri katerih lahko tretji nepooblaščeno prestreza podatke. Težavo lahko enostavno rešimo z vzpostavitvijo navideznega zasebnega omrežja (VPN). Na trgu je na voljo veliko različnih komercialnih rešitev VPN, mi pa smo si tokrat ogledali odprtokodno različico OpenVPN.

Varen pretok podatkov lahko sicer zagotovimo na več načinov. Varno povezavo z oddaljeno točko lahko npr. vzpostavimo z različnimi obstoječimi varnimi protokoli, kot so npr. SFTP, HTTPS ali SSH, ki pa imajo žal omejitve. Predvsem pa ti protokoli ne koristijo, če bi radi doma uporabljali program, ki potrebuje za svoje delovanje zbirko podatkov, ki je v podjetju. Takrat pomaga le VPN.

OpenVPN je program, ki omogoča vzpostavitev navideznega zasebnega omrežja ob pomoči varnostnega protokola SSL/TLS. Dostopen je brezplačno pod licenčnimi pogoji GNU GPL za različne operacijske sisteme. Tako ga lahko naložimo na Okna od različice 2000 naprej, OSX, Linux in druge unixne izpeljanke. Varno povezavo lahko vzpostavimo med posameznimi računalniki ali pa med omrežji računalnikov.

Najpogostejša raba omrežij VPN so med zunanjimi sodelavci in krajevnim omrežjem podjetja ali pa med oddaljenimi poslovnimi enotami in matičnim podjetjem. Ne glede na namen, za katerega uporabljamo VPN, imamo pri povezavi med dvema točkama vsaj en strežnik, ki čaka na dohodne povezave in odjemalca, ki se z omenjenim strežnikom poveže. Pri tem mora imeti strežnik statičen IP naslov, na katerem je vedno dosegljiv. Tisti strežniki, ki nimajo možnosti statičnega IP naslova, lahko dosežejo enako dosegljivost z uporabo domene in dinamične DNS storitve. Ta ob vsaki spremembi IP naslova ustrezno popravi DNS zapis. Prav tako moramo na strani VPN strežnika poskrbeti, da bo promet skozi določena vrata potekal nemoteno (požarni zid!). Pri OpenVPN je to 1194/UDP. Lahko pa namesto protokola UDP uporabimo tudi protokol TCP.

OpenVPN lahko deluje na dva načina. Prvi in najbolj enostaven je vzpostavitev usmerjene povezave (Routing). Pri tem program oblikuje nov navidezen razpon IP številk, ki jih dodeli svojemu omrežnemu vmesniku in priključenim VPN uporabnikom. Pomembno je, da je na novo oblikovan razpon različen od krajevnega razpona IP številk. Tako lahko računalnik, ki ima nameščen OpenVPN, razlikuje med paketi, ki so namenjeni prek vmesnika VPN, in tistimi, ki so namenjeni v krajevno omrežje. Težava pa nastopi, ko želi neki VPN uporabnik dostop do virov v krajevnem omrežju, na katero je priključen strežnik OpenVPN. Temu se lahko izognemo tako, da vpišemo statične smeri (static routes). Slabost pri tem je, da je to treba storiti ročno, za vsak računalnik v omrežju posebej.

Grafični uporabniški vmesnik nam omogoča izvajanje le omejenih ukazov.

Lahko pa vzpostavimo most med uporabnikom VPN in krajevnim omrežjem (Bridging). Pri tem načinu prejmejo vsi VPN uporabniki IP naslov iz razpona IP številk krajevnega omrežja. Prav tako imajo vsi uporabniki dostop do vseh virov v omrežju, enako kot če bi bili priklopljeni fizično. V primerjavi z usmerjeno povezavo je pri vzpostavitvi mostu povezava manj učinkovita, saj se teže prilagaja večjemu številu uporabnikov in je bolj podvržena IP konfliktom. Zanjo je značilno tudi to, da je teže omejevati dostopnost do virov na ravni posameznega uporabnika.

Drug pomemben vidik varnosti pri vzpostavitvi VPN omrežja je avtentikacija oz. prijava. To je proces, v katerem se strani v povezovanju prepričata, da sta to, kar trdita, da sta. Najbolj znan način je vpis uporabniškega imena in gesla. Omenjeno metodo podpira tudi OpenVPN, vendar je z vidika varnosti slaba, saj je podvržena napadom Man-in-the-middle. Bolj varna je metoda uporabe statičnega ključa. Pri tem prejme vsak uporabnik enak ključ, ki ga uporabi za zaklepanje/odklepanje poslanega/prejetega sporočila. Pri tem moramo paziti, da uporabniki prejmejo ključe prek varne povezave. Če pride do razkritja ključa, se mora ta izdelati na novo in poslati vsem uporabnikom. Tretja, najbolj varna oblika avtentikacije je s certifikati. Ta metoda deluje na podlagi javnega in zasebnega ključa. Strežnik in uporabniki imajo vsak svoj lasten certifikat. Strežnik dovoli povezavo le, če je certifikat pravilen. Uporabnik prav tako avtenticira strežnikov certifikat. Če je na obeh straneh avtentikacija uspela, se povezava vzpostavi. Za zagotovitev še večje varnosti pa lahko certifikat skupaj z zasebnim ključem hranimo na pametni kartici, saj OpenVPN podpira knjižnice Crypto-API oz. standard PKCS #11. Pri izvajanju metod avtentikacije program uporablja algoritme iz knjižnic OpenSSL.

Okno stanja prikazuje stanje povezave.

Kot lahko vidimo iz zgoraj opisanega, nam OpenVPN omogoča veliko različnih nastavitev. Tako lahko vzpostavimo omrežje VPN, ki popolnoma ustreza določenim potrebam. Po drugi strani pa je ravno zaradi veliko različnih možnosti teže nastaviti program tako, kot želimo. Še posebej bodo imeli težave z nastavljanjem uporabniki, ki so vajeni grafičnih uporabniških vmesnikov in čarovnikov. Res je, da je na voljo neki grafični vmesnik, vendar je omejen le na osnovne ukaze, kot so vzpostavitev povezave in prekinitev. Vse drugo moramo storiti sami ob pomoči nastavitvenih datotek, ki jih program ob zagonu prebere. Prav zato bomo opisali postopek enostavne nastavitve sistema v primeru, ko želimo vzpostaviti varno povezavo med dvema računalnikoma (en uporabnik VPN in en strežnik). Pri tem smo za prenos podatkov uporabili protokol UDP in usmerjeno povezavo (Routing), za avtentikacijo pa statični ključ.

OpenVPN na usmerjevalniku

Podprt je tudi bolj "grafični" WRT - operacijski sistem DDWRT. Ta ima v osnovi le nekaj možnosti prepuščanja prometa VPN, z OpenVPN mu lahko dodamo še vse kaj več.

OpenVPN lahko namestimo in uporabljamo tudi z usmerjevalnikom, ki ga imamo. Seveda je pogoj, da je mogoče na usmerjevalnik namestiti odprtokodni namenski sistem OpenWRT (npr. na usmerjevalnike serije WRT54G znamke Linksys), ki temelji na operacijskem sistemu Linux. Namen OpenWRT je sprememba WLAN usmerjevalnika tako zelo, da omogoča dodajanje funkcij, ki prvotno s strani izdelovalca sploh niso bile mišljene. Funkcije dodajamo enostavno prek namestitvenih paketov, to velja tudi za OpenVPN. Vendar kljub temu ni vse tako enostavno, kot se sprva bere. Največja težava je v procesorski moči usmerjevalnika, saj ne bo zmogel več kot 1 ali 2 povezavi hkrati. Vse je odvisno od pretoka, ki ga želimo doseči, saj se lahko zgodi, da se bo ta zelo zmanjšal.

Namestitev paketa OpenVPN je enostavna, prek ukazne vrstice. Po vnosu ustreznega ukaza se usmerjevalnik poveže v internet, prenese primerni paket in ga namesti. Nato vnesemo potrebne nastavitve v požarni zid in oblikujemo primerne ključe. Seveda je vse odvisno od tega, za kakšen namen bomo OpenVPN uporabljali. Poleg običajnega povezovanja zunanjih uporabnikov v krajevno omrežje lahko npr. uporabimo OpenVPN tudi za varovanje naše komunikacije WLAN. Vendar - naj še enkrat opozorimo, da se bo zaradi procesorske moči usmerjevalnika pretok zmanjšal ...

Zgled

Program OpenVPN smo prenesli z uradne spletne strani in ga namestili. Postopek nameščanja je potekal brez težav, saj namestitveni program stori vse korake samodejno. Med nameščanjem preveri tudi, ali je na voljo starejša različica programa, ki jo odstrani. Po uspešni namestitvi smo preverili, ali imamo v računalniku, ki je sprejel povezavo, odprta vrata 1194/UDP. V našem primeru smo predpostavili, da bo imel strežnik dodeljeno številko 10.1.0.1 in uporabnik 10.1.0.2. Najprej smo izdelali statični ključ in ga prenesli v oba računalnika. Postopek izdelave je naslednji.

Odpremo terminalsko okno Command Prompt. Z ukazom cd se pomaknemo v mapo, v kateri je nameščen program OpenVPN (če ste pustili med namestitvijo vse privzeto, je na "C:\Program Files\OpenVPN\bin"). Nato vnesemo ukaz

openvpn --genkey --secret static.key

Ta nam izdela statični ključ in ga shrani v datoteko static.key. Tega nato prenesemo v oba računalnika, v mapo, v kateri je nastavitvena datoteka. Gre za običajno besedilno s končnico *.ovpn. V računalniku, ki bo rabil kot strežnik, ustvarimo naslednjo nastavitveno datoteko:

dev tun

ifconfig 10.1.0.1 10.1.0.2

secret static.key

V računalniku, ki bo rabil za povezovanje na strežnik, pa ustvarimo naslednjo datoteko:

remote IP_STREZNIKA

dev tun

ifconfig 10.1.0.2 10.1.0.1

secret static.key

Na koncu nam preostane le še to, da OpenVPN zaženemo z namestitveno datoteko. To storimo tako, da se postavimo z mišjim kazalcem nad nastavitveno datoteko, pritisnemo na desni gumb in z menuja izberemo "Start OpenVPN on this config file".

OpenView je zmogljiv program, ki deluje na večini operacijskih sistemov. Vendar pa so nastavitve za običajne uporabnike, še posebej tiste, vajene uporabniških vmesnikov iz okenskih okolij, precej zahtevne.

OpenVPN

Kaj: Program za vzpostavitev navideznega zasebnega omrežja.

Spletna stran: www.openvpn.net.

Cena: Brezplačen.

Za: Zmogljivost, podprta je večina operacijskih sistemov.

Proti: Zahtevna konfiguracija sistema.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Najbolj brano

  • Redka zmaga malega rudarja kriptovalut

    V času, ko rudarjenje bitcoina obvladujejo velika podjetja s specializirano opremo in ogromnimi viri, je neodvisnemu solo rudarju uspel izjemen podvig. 

    Objavljeno: 27.7.2025 13:00
  • Šibko geslo in hekerski vdor pogubila 158 let staro podjetje

    Britansko podjetje KNP iz Northamptonshira, ki se je ukvarjalo s prevozi, je po 158 letih obratovanja zaprlo vrata, zaradi česar je brez dela ostalo 700 ljudi. Razlog ni slabo poslovanje, težke tržne razmere, izgube ali celo poneverbe, temveč precej bolj banalen. Podjetje je opustošil hekerski napad, v katerem so napadalci odnesli podatke o vseh strankah.

    Objavljeno: 23.7.2025 05:00
  • ChatGPT je bogatejši za pravega raziskovalnega agenta

    ChatGPT agent je nova generacija digitalnega pomočnika, ki združuje sposobnosti vizualnega in tekstovnega brskanja ter neposredne interakcije z zunanjimi platformami, kot so Google Drive, GitHub in SharePoint.

    Objavljeno: 18.7.2025 08:00
  • Tehnologija je orodje za množično nadzorovanje

    Ko je minuli teden kamera na koncertu skupine Coldplay v Bostonu prikazala par, ki objet posluša Chrisa Martina, bi bil lahko to le še eden izmed množice povsem običajnih in dolgočasni prizor. A ker se je ženska na posnetku obrnila proč in obraz zakopal v roke, moški pa se je sklonil pod kader, je posnetek vzbudil veliko pozornosti. Pevec Chris Martin ga je na odru komentiral z besedami, da sta bodisi zelo sramežljiva bodisi razmerje skrivata – in ostalo je bilo zgodovina.

    Objavljeno: 21.7.2025 05:00
  • ChatGPT je slab v šahu

    Najboljši šahist sveta Magnus Carlsen je v spletnem dvoboju premagal umetno inteligenco ChatGPT v vsega 53-ih potezah, pri čemer sam ni izgubil niti ene same figure. 

    Objavljeno: 21.7.2025 09:00
  • ChatGPT-5 bo na voljo avgusta

    Sam Altman, izvršni direktor OpenAI, je potrdil, da bo model GPT-5 izšel že v začetku avgusta. 

    Objavljeno: 25.7.2025 09:00
 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji