Janne Mäki:

Virtual Private Network (VPN) soveltajan näkökulmasta

Johdanto

Tutkielman tarkoituksena on esitellä lyhyesti muutamaa virtuaalisen yksityisverkon (VPN) toteuttavaa ohjelmaa. Tavoitteena on lyhyesti esittää, mikä VPN on, miten se käytännössä toteutetaan ja tämän jälkeen perehtyä pariin VPN:n käytännössä toteuttavaan ohjelmaan. VPN on niin laaja käsite, että tämän tutkielman osalta voidaan vain käsitellä sitä pintapuolisesti. Käytännön toteutuksista esitellään OpenVPN-ohjelmisto sekä Linuxin ytimen IPsec-tuki.

VPN:n lyhyt esittely

Virtuaalinen yksityisverkko (VPN, Virtual Private Network) tarkoittaa näennäisesti yksityistä verkkoa, joka on toteutettu julkisen verkon avulla. Mekanismien kuten salauksen, autentikoinnin ja pääsynvalvonnan avulla toteutetaan verkko, joka loogisella tasolla näyttää yksityiseltä, vaikka fyysisellä tasolla toteutus käyttääkin jotain turvatonta verkkoa, yleensä Internetiä. Virtuaalinen yksityisverkko voidaan toteuttaa sekä laitteiston että ohjelmiston avulla ja toteutuksia löytyy monille OSI-mallin tasoille. Virtuaalisten yksityisverkkojen hienous on siinä, että yritykset, organisaatiot ja toki myös yksittäiset käyttäjät, voivat muodostaa turvallisia yhteyksiä toistensa välille käyttäen julkista verkkoa, johon liittyminen onnistuu halvalla melkein missä vain. [VPN Resources, VPN Consortium]

Turvallisen VPN-toteutuksen ideana on, että kaikki liikenne salataan ja kommunikoivat osapuolet autentikoivat eli todentavat toisensa. Turvallisissa toteutuksissa matkustajana, eli protokollana, jonka paketteja halutaan turvallisesti siirtää, toimii yleensä OSI-mallin tason 2 (esim. Ethernet) tai tason 3 (esim. IP) protokolla. Tämän protokollan paketti sijoitetaan yleensä salattuna kääreprotokollan paketin sisään. Tällaisia kääreprotokollia ovat esimerkiksi IPsec (taso 3) ja SSL (taso 5). Kääreprotokollan paketit siirretään käytössä olevan julkisen verkon kantoprotokollan, yleensä IP-protokollan pakettien sisällä. Autentikoinnista, salauksesta ja pakettien käärimisestä voi vastata erikseen tätä tarkoitusta varten kehitetty laite (VPN-reititin), VPN-tuella varustettu palomuuri tai tavallisessa tietokoneessa ajettava VPN-ohjelmisto. [TTJ-aineisto]

Testattujen toteutusten lisäksi muita protokollia VPN:n toteuttamiseen ovat muunmuassa PPTP (Point-to-Point Tunneling Protocol), jossa PPP-protokollan yhteys tunneloidaan IP-verkon yli sekä L2TP (Layer 2 Tunneling Protocol), joka perustuu PPTP- ja L2F- (Layer 2 Forwarding) protokolliin. Microsoftin PPTP-toteutuksesta on löydetty vakavia puutteita, eikä sitä pidetä enää turvallisena [Schneier PPTP Analysis]. L2TP puolestaan ei tarjoa vahvaa autentikointia tai luottamuksellisuutta ja sen kanssa käytetäänkin usein esimerkiksi IPsec-protokollaa näiden saavuttamiseksi [RFC 3193].

VPN:n toteuttamisesta löytyy lisätietoa kurssin materiaalista (ks. linkit).

VPN-toteutusten kokeiluympäristö ja vaatimukset toteutuksille

Tavoitteena on käytännössä testata virtuaalisen yksityisverkon toteuttamista. Käytössä olevat laitteet eivät tiedä VPN:stä mitään, joten on tyytyminen ohjelmistoratkaisuihin. Näin pienimuotoisen kokeilun osalta ei ole järkevää hankkia kaupallisia toteutuksia, joten pitäydytään ilmaisissa. Testattavien toteutusten pitää luonnollisesti toimia testiympäristössä, joka on seuraava: Windows XP Professional ja Windows XP Home Saunalahden (Ethernet)-siltaavan ADSL-yhteyden päässä sekä Linux (Redhat 6.2:n päälle kasattu) Elisan ADSL-yhteyden päässä. Turvallisuuden kannalta, kriittisissä sovelluksissa, toteutuksen perustuminen avoimeen lähdekoodin on selkeä etu.

OpenVPN?

Kuvia OpenVPN-testailuun liittyen.?

Linuxin IPsec?

Kuvia IPsec-testailuun liittyen.?

Päätelmät

VPN-sovellukset esiintyvät yleensä yrityskäytössä, ja tavallinen käyttäjä törmää niihin lähinnä etätyöyhteyksien muodossa, ja tällöin yrityksen tietohallinto on valmiiksi asentanut ja säätänyt käytetyt sovellukset. Peruskäyttäjä ei tarvitse henkilökohtaisessa käytössään VPN-sovelluksia oikeastaan missään, eikä kokeneempikaan käyttäjä kovin montaa sovelluskohdetta löydä. Testattujen ohjelmien asentaminen ja säätäminen oli hieman työlästä, vaikka minulla onkin jonkinlainen perustietämys sekä tietoliikenneverkkojen toiminnasta että Linux-käyttöjärjestelmästä. Molempiin toteutuksiin löytyy hyvät HOWTO-oppaat ja malliasetustiedostot, jotka avustavat paljon järjestelmän saattamisessa käyttökuntoon. Säätömahdollisuuksia on paljon, joten niihin perehtyminen ja testaaminen veisi paljon aikaa.

Windows -ympäristöön on mahdollista rakentaa ilmainen IPSec VPN-palvelin Windows 2000:n ja Windows Server 2003:n päälle. Tämä on kuitenkin hyvin työlästä ja ei kovinkaan helppokäyttöistä, kuten lähteestä ilmenee. [WindowsIPSec] Käyttämäni TheGreenBow-asiakasohjelman kokeiluversio sisältää ainakin yhden häiritsevän virheen, eivätkä ohjeetkaan ole parhaat mahdolliset. OpenVPN-ohjelman käyttöönottoa helpottaa se, että sekä palvelin- että asiakasohjelma ovat saman tahon tekemiä ja ne toimivat käyttäjän näkökulmasta lähes samoin sekä Linux- että Windows-ympäristössä. OpenVPN:n käyttöönotto onnistui helpommin, ja mikäli tarvitsisin VPN-ratkaisua pienimuotoiseen käyttöön, harkitsisin ensiksi OpenVPN-ohjelmaa. Ilmainen ja toimiva IPsec-asiakasohjelma tekisi myös IPsec:stä varteenotettavan ratkaisun.

Näin pitkällisen säätämisen jälkeen seuraavilla kerroilla homman pitäisi onnistua nopeammin, kun on hieman tiedossa, millaisiin ongelmiin voi törmätä. Kyseiset sovellukset eivät selvästikään ole tavalliselle käyttäjälle tarkoitettuja, mutta harvoinpa tavallinen käyttäjä näiden tarjoamia ominaisuuksia tarvitsee. Kuitenkin mikäli tarvetta on, voi kyseisillä työkaluilla ilmaiseksi viritellä melko monipuolisen VPN-palvelun.

Lähteet

Muita linkkejä

Kurssimateriaalia VPN:stä

Kurssimateriaalia IPsec:stä

Muita aiheeseen liittyviä linkkejä

-- AnttiOrava? - 16 Nov 2009
Print version |  PDF  | History: r3 < r2 < r1 | 
Topic revision: r3 - 16 Nov 2009 - 21:08:27 - AnttiOrava
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback