VPN

Linux.fista
Versio hetkellä 8. huhtikuuta 2012 kello 12.13 – tehnyt Sauron (keskustelu | muokkaukset) (→‎OpenVPN: Esimerkkikonfigurointi staattisella avaimella)
Siirry navigaatioon Siirry hakuun

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

Aiheesta muualla