OpenVPN

Linux.fista
Versio hetkellä 13. toukokuuta 2014 kello 22.06 – tehnyt Oselotti (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun
OpenVPN

Käyttöliittymä teksti
Lisenssi GPLv2
Kotisivu openvpn.net

OpenVPN on vapaa VPN-ohjelmisto. Se ei käytä IPseciä, vaan kuljettaa kaiken liikenteen yksittäisen UDP- tai TCP-portin läpi. Se tukee liikenteen salausta OpenSSL-kirjaston avulla, ja osaa myös pakata tietovirran. OpenVPN on saatavissa sekä Unix-tyyppisille alustoille että Windowsille. Esimerkiksi NetworkManager osaa OpenVPN-asiakkaana toimimisen lähes suoraan.

Asennus

OpenVPN löytyy useimpien jakeluiden paketinhallinnasta nimellä openvpn. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.

NetworkManager tarvitsee myös paketin network-manager-openvpn.

Avaimet

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.

Jakelukohtaista

Fedora-pohjaiset jakelut

Fedora-pohjaisissa jakeluissa SELinux ei anna tietoturvasyistä ladata sertifikaattia mistä tahansa. Tehdään kotihakemistoon .cert-hakemisto:

$ mkdir ~/.cert

Säädetään asetukset:

$ restorecon -R -v ~/.cert

Lopuksi siirretään .ca-päätteinen sertifikaattitiedosto ~/.cert-hakemistoon.

Ongelman voi myös ratkaista kytkemällä SELinuxin pois päältä, mikä ei ole missään tapaksessa suositeltavaa.