Telepítés előkészítése

Mielőtt telepíteni kezdessz néhány dolgot ellenőrizz! Létezik-e a tunnel eszköz:

 ls -lah /dev/net/ | grep tun

Ha nincs ilyen készítened kell:

 mknod /dev/net/tun0 c 10 200

Támogatja-e a kerneled a virtuális hálózati eszközöket, alagutakat:

 modprobe -l | grep tun

(Bár ha a kernel moduláris az rizikó faktor főképp egy tűzfal esetében. Ha jól van felkészítve a tűzfalad és monolitikus kernelt használsz ez nem is ad eredményt, ebben az esetben a menuconfig segít, nézzd meg abban a Network Device Support ---> Universal TUN/TAP device driver support. Ha nem forgattál be ilyen támogatést (tunneling), fordítsd újra a kernelt. Ha moduláris kernelt használsz be kell még töltened a tun modult.

 insmod tun

A tulajdonképpeni telepítés

Mostmár akár telepíthetünk is

Csomagok telepítése

Mint ahogy már ítram nem bonyolult a forgatás, de én csomagot telepítettem, tehát:

 apt-get install openvpn

Így a függőségekkel együtt feltelepül és elvégzi a szükséges beállításokat. (Alapvetően innen már majdnem működőképes az OpenVPN.)

Létrehozott a telepítő a /usr/share/doc/packages/openvpn alatt egy könyvtárat amiben minden benne van ami nekünk kell, nézzük is meg, mi is van benne

 ls -lahR /usr/share/doc/packages/openvpn | less

Hogy később gyorsabban dolgozhassunk (és hogy rendet tartsunk) ezt a könyvtárat másoljuk át

 mkdir -p /usr/share/openvpn
 cp /usr/share/doc/packages/openvpn/* /usr/share/openvpn/*

mivel kell még ide néhány könyvtár és fájl azokat hozzuk létre

 cd /usr/share/openvpn/easy-rsa/2.0/
 mkdir keys
 cd keys/
 echo 01 > serial
 touch index.txt

Találhatók itt példa configok, és jó kis shell scriptek amik oly gyorsá teszik a beállítást. Kezdődhet is a használatbavétel. Lépjünk be tehát a /usr/share/openvpn/easy-rsa/2.0 könyvtárba és itt szerkesszük úgy a vars állományt, hogy a file végén található változókba értelem szerint behelyettesíted az értékeket.

 export KEY_COUNTRY="HU"
 export KEY_PROVANCE=""
 export KEY_CITY="Városom"
 export KEY_ORG="NIMPHAS Corp."
 export KEY_EMAIL="it@nimphas.com"



Azért mielőtt lecserélnéd, vagy szerkesztenéd a vars fájlt másold le mondjuk vars.old címmel. Ezeken kívül kell még néhány további fájl és könyvtár:

 mkdir /var/log/openvpn
 touch /etc/openvpn/ipp.txt

Kell egy server konfigurációs fájl én ezt használom server.conf néven van elmentve a /etc/openvpn könyvtárban (a /usr/share/doc/packages/openvpn/sample-config könyvtárban találsz részletesebbeket is magyarázatokkal, feltétlen nézd meg őket):

 port 1194
 proto udp
 dev tun
 ca /etc/openvpn/ca.crt
 cert /etc/openvpn/server.crt
 key /etc/openvpn/server.key
 dh /etc/openvpn/dh1024.pem
 server 10.8.0.0 255.255.255.0
 ifconfig-pool-persist /etc/openvpn/ipp.txt
 push "route 192.168.5.0 255.255.255.0" # A helyi hálózathoz való routolás
 keepalive 10 120
 comp-lzo
 ;client-to-client # Engedélyezi, hogy a távolról felcsatlakozó kliensek "lássák egymást"
 persist-key
 persist-tun
 status /var/log/openvpn/openvpn-status.log
 verb 3
 mute 20

Tanúsítványok készítése

Ha a könyvtárak és fájlok elkészültek, létrhozzuk a tanusítványokat: A felső szintű tanusítvány és kulcs generálása:

   cd /usr/share/openvpn/easy-rsa/2.0
   source vars
   ./build-ca

Diffie Hellman paraméter előállítása (ez egy igen hosszú alap értelmezés szerint 1024 bit hosszú prímszám)

   ./build-dh

Paranojások a KEY_SIZE értékét megnövelhetik (a vars állományban), de ez nem szükséges, nagyban nem növeli a biztonságot de az előállítás idejét igen.

(Ha az unable to write 'random state' hibaüzenetet kapod segíthet ez az oldal: http://www.openssl.org/support/faq.cgiPróbáld meg ezt a parancsot: export KEY_SIZE=1024 && export KEY_DIR=$(pwd)/keys && export KEY_CONFIG=$(pwd)/openssl.cnf && export HOME=$(pwd)/keys && export RANDFILE=$(pwd)/keys && ./build-dh)

Következhet a server kulcsok legyártása

   ./build-key-server server

A paraméter amit vár a fájl neve (a kiterjesztés nékül). Így mostmár a legszükségesebb tanusítványok készen vannak, ezután csak a kliensek tanusítványai vannak hátra. Tehát készítsük el ezeket is:

   source vars
   ./pkitool --interact --inter client00

A paramétereket a ./pkitool --help elmagyarázza, amit itt használtam:

--interact = interaktív kulcsgenerálás Ez annyit jelent, hogy a tanusítvány adatait meg kérdezi tőled, csak annyi a dolgod, hogy elolvasod a kérdést és ésszerűen válaszolsz rájuk
--inter = belső kulcs generálása
client00 = a létrehozandó állományok nevének az eleje



Ezt persze addig ismételjük ameddig minden kliens tanusítványait el nem készítettük. Ha megvannak át másolgathatjuk őket a helyükre, illetve a kliensek fájljait be is tömöríthetjük, hogy aztán egyszerűbb legyen bánni velük

A serveren használandó tanusítvány állományai:

 ca.crt
 ca.key
 server.crt
 server.csr
 server.key
a "server.*" csak akkor érvényes, ha a ./build-key-servernek paraméterként a servert adtad meg.

A kliens által használt tanusítvány fájljai:

 ca.crt
 ca.key
 client00.crt
 client00.csr
 client00.key

Ha a ./pkitoolnak ezt adtad meg

Rendrakás

Kliensek telepítése

Windows

Ez sem bonyolult az OpenVPN oldaláról letölthető installer szinte mindent meg csináll. Itt is kell készítenünk egy configot (client.ovpn itt a kiterjesztés csak ez lehet), valahogy így nézzen ki:

 client
 remote xxx.xxx.xxx.xxx # a távoli server IP címe megadhatsz domaint is
 port 1194
 proto udp
 ca C:\\Progra~1\\OpenVPN\\config\\ca.crt
 cert C:\\Progra~1\\OpenVPN\\config\\client.crt
 key C:\\Progra~1\\OpenVPN\\config\\client.key
 dev tun
 comp-lzo
 verb 3
 mute 10
 ns-cert-type server
 persist-key
 persist-tun

Ha elkészítetted, pl jegyzettömbel, vagy valamilyen text editoral mentsd el az OpenVPN/config könyvtárba client.ovpn névvel. Az indításhoz pedig egy kis denevér (Én ovpn.bat névvel szoktam a config könyvtárban elhelyezni):

 openvpn --config C:\\Progra~1\\OpenVPN\\config\\client.ovpn

Ha lefuttatod létrejön a VPN kapcsolat ezt onnan tudod, hogy megnyílik egy parancssori ablak és egy csomó bla-bla után kiíródik a Connection Saccesfulli Completted, illetve az ablak nyitva is marad, hogy a kapcsolat megmaradjon pingelgeti a hálózatot, és hálózati csomagokat küldözget a távoli hálózatba. Ha a Windows kliensnek a munkacsoportja ugyan az mint a hálózat gépeié akkor kisvártatva a hálózati helyek között meg is jelennek a gépek ikonjai. Még annyit érdemes megtenni a kényelem kedvéért, hogy teszel parancsikont az asztalra (már arra amit a monitoron látsz ;-) ).

Linux kliens

A server beállításaitól csak anyiban különbözik, hogy itt a config más (ugyan az mint a windows kliens esetében értelem szerint a ~/.openvpn/ könyvtárba kell tenni a tanusítványhoz kapcsolódó fájlokat, az útvonalakat a helyesre megadni és csatlakozni a

 openvpn --config ~/.openvpn/client.ovpn

parancsal. Annyit azért ne felejts el, hogy itt nem indul el konzol, ha látni akarod a történéseket konzolon indítsd az OpenVPNt

Ötletek

 iptables -A INPUT -i tun+ -p UDP -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT
Persze a 00:00:00:00:00:00 helyére a valódi MAC cím kerüljön