VPN
VPN eli Virtual Private Network tarkoittaa kahden yksityisen verkon yhdistämistä julkisen, turvattoman verkon (yleensä Internet) yli yhdeksi kokonaisuudeksi. VPN-tekniikan tavallisin käyttökohde on yrityksen haarakonttorin tai etätyöntekijän turvallinen liittäminen sisäiseen verkkoon Internetin yli.
Tekniikoita
Hamachi
Hamachi on Windowsille, Linuxille ja Mac OS X:lle saatavilla oleva, keskitettyyn palvelimeen pohjautuva, freewarena julkaistava VPN-ohjelmisto. Hamachia käytetään erityisesti lähiverkkojen yhdistämiseen pelaamisessa sekä etähallintaan. Hamachi-protokolla ei ole julkinen.
IPsec
IPsec eli IP Security Architecture on matalan tason protokollaperhe Internetin pakettivirtojen suojaamiseen. Koska IPsec toimii OSI-mallin kolmannella kerroksella (verkkokerros), eivät ylemmän tason protokollat, kuten TCP ja UDP, tarvitse erillistä tukea sitä varten. IPseciä voidaan käyttää joko kuljetustilassa, jossa tietyllä välillä kulkeva liikenne salataan päästä päähän, tai tunnelitilassa, jossa esimerkiksi kahden lähiverkon välinen liikenne ohjataan tiettyjen pisteiden kautta, joilloin liikenne salataan vain näiden pisteiden välillä. Kumpaakin tilaa voidaan käyttää VPN-toteutuksiin. Linuxin ytimessä on ollut IPsec-tuki sen 2.6-versiosta lähtien.
FreeS/WAN
FreeS/WAN on ensimmäinen Linuxille kehitetty kokonainen IPSec-toteutus. Sen kehitys päättyi 2004. Projektia jatkamaan on perustettu Openswan ja strongSwan.
Openswan
Openswan on FreeS/WANin pohjalta kehitettävä IPsec-ohjelmisto 2.0-, 2.2-, 2.4- ja 2.6-ytimille.
strongSwan
strongSwan on vahvaan autentikointiin keskittyvä, FreeS/WANista haarautettu IPsec-ohjelmisto 2.4- ja 2.6-ytimille.
L2F
L2F eli Layer 2 Forwarding on Ciscon kehittämä VPN-protokolla.
L2TP
L2TP on Microsoftin ja Ciscon PPTP:n ja L2F:n pohjalta kehittämä VPN-protokolla. Turvallisuuden parantamiseksi sen kanssa käytetään usein IPseciä (L2TP/IPsec). L2TP:stä on kehitteillä uusi L2TPv3-versio.
OpenVPN
OpenVPN on OpenSSL:ään pohjautuva, GPL-lisensoitu VPN-protokolla.
Asennus
OpenVPN on asennettavissa useissa jakeluissa pakettienhallinnan avulla, RPM-pohjaisissa käyttöjärjestelmissä se on käännettävissä rpmbuild-ohjelman avulla tai kääntämällä ./configure-menetelmällä suoraan lähdekoodista. Joissain jakeluissa se on jo valmiiksi asennettuna. Esimerkiksi Fedoralla tai vastaavalla RPM-pohjaisella voidaan tarkistaa:
shell>rpm -qa | grep openvpn
RPM-paketista asennettaessa sillä on seuraavat riippuvuudet:
- openssl
- lzo
- pam
Ja jos ollaan rakentamassa itse käännettyä RPM-pakettia, myös seuraavat riippuvuudet:
- openssl-devel
- lzo-devel
- pam-devel
Huomaa, että näiden pakettien nimet eroavat jakelusta riippuen.
Lähdekoodista kääntämällä OpenVPN asennetaan seuraavasti:
shell>tar xfz openvpn-[versionro].tar.gz
Purkamisen jälkeen siirrytään puretun kansion juureen ja kirjoitetaan vaiheittain seuraavat komennot:
shell>./configure shell>make shell>make install
Katso lisätiedot kääntämisestä.
Staattinen avain
Staattisella avaimen edut:
- Yksinkertainen asennus
- Ei X509 Julkisen avaimen infrastruktuurin ylläpitoa
Staattisen avaimen haitat:
- Vain yksi asiakas per palvelin
- Puute salauksessa (avaimen paljastuminen paljastaa aikaisempien istuntojen sisällön)
- Avaimen pitää olla selväkielinen jokaisella yhdistämiskerralla ja avaimen vaihto tapahtuu jo valmiina olevassa turvatussa tunnelissa.
Esimerkki staattisella avaimella
Tässä esimerkissä esitellään hyvin yksinkertainen tapa OpenVPN yhteyden konfigurointiin staattisella avaimella. Esimerkin asetustiedot ja komennot on lainattu OpenVPN.net[1] sivustolta ja on luettavissa sivustolta sellaisenaan.
Staattinen avain luodaan komennolla:
shell>openvpn –genkey –secret static.key
Huomio, että avaimen nimi voi olla mikä tahansa .key päätteinen.
Kopioi luotu avain sekä asiakaskoneelle että palvelimelle käyttäen salattua tunnelia pitkin tai esim. Siirrettävällä medialla. Tehdään palvelimelle konfigurointitiedosto:
dev tun ifconfig 10.8.0.1 10.8.0.2 secret static.key
Ensimmäisellä rivillä määritellään tunnelointitapa (tun = reititetty IP tunneli, tap = siltaava ethernet-tunneli), toisella rivillä ensin palvelimen ja toisena asiakaskoneen osoite. Viimeisellä rivillä määritellään staattinen avain.
Asiakaskoneen konfigurointitiedosto:
remote munmasiina.mundomain dev tun ifconfig 10.8.0.2 10.8.0.1 secret static.key
Ensimmäiseltä riviltä on muutettava munmasiina.mundomain joko palvelimen domainnimeksi tai IP-osoitteeksi.
Varmistetaan ja tarvittaessa avataan UDP portti 1194 palvelimella. Varmistetaan myös, ettei asiakaskoneella tai palvelimella estetä OpenVPN:n käyttämää virtuaalista TUN-käyttöliittymää. Linuxissa pitäisi löytyä nimellä tun0 ja Windows koneilla nimellä Local Area Connection n, jossa n on automaattinen järjestysnumero.
Seuraavaksi käynnistetään OpenVPN komentoriviltä (ongelmanratkaisun helpottamiseksi) seuraavalla tavalla ensin palvelimella ja sitten asiakaskoneella:
shell>openvpn [palvelimen/asiakkaan asetustiedosto]
Jos kaikki on mennyt nappiin eikä palomuuri estä tunnelin luomista, tee yhteyskokeilu asiakaskoneelta VPN kautta:
shell>ping 10.8.0.1
Jos palvelimessa käytetään siltaavaa tilaa (dev tap asetustiedostossa), IP-osoite on palvelimen IP-osoite sen aliverkossa. Jos ping onnistuu, niin muodostettu VPN tunneli toimii.
PPTP
PPTP eli Point-to-Point Tunneling Protocol on Microsoftin kehittämä, PPP:hen pohjautuva VPN-protokolla. Tuki sille on löytynyt Windows 95 -versiosta lähtien. Linux-ytimeen on sisältynyt PPTP-tuki 2.6.14-versiosta lähtien. PPTP:n kehitys on nykyisin pysähtynyt.
Katso myös
- Verkkoliitynnät monimutkaisemmin
- HST - Henkilökortin sertifikaattien käyttö.