először telepíteni kell az OpenVPN programot a szerver és a kliens oldalra is.
- Töltsük le a Windowsos csomagot az http://www.openvpn.net honlapjáról. (XP, Vista és Windows 7 verziók léteznek belőle, de alkalmazható Windows 2000, Windows 2003 és Windows 2008 szerverekre is). A Windows 7 x64-es verzióhoz legalább az OpenVPN 2.1.1 verziót kell letölteni.
- A szokásos módon telepítsük a windows alkalmazást. A telepítő létrehoz egy GUI-t is, ami a Windows rendszereken később még jól jöhet.
- Állítsuk be a tűzfalat, ha van
- Állítsuk be a szerver oldalon a kulcsokat
- Konfiguráljuk a szerver oldali alkalmazást
- Állítsuk be a kliens oldalakat is
- Hozzuk létre a kapcsolatot próbaként.
Windows alkalmazás telepítése
indítsuk el a telepítőt:
Elfogadjuk a licensz-feltételeket:
Válasszuk ki az OpenVPN GUI, AutoStart OpenVPN GUI és OpenVPN Service komponenseket legalább, de a többit is érdemes a könnyebb konfiguráció miatt.
Telepítési könyvtár elfogadása (alapesetben XP-n: C:\Program files\OpenVPN, Vista és Windows 7 (x64) esetén C:\Program Files (x86)\OpenVPN).
A virtuális TAP-Win32 Adapter V9 telepítésének jóváhagyása.
Figyelem!
Windows 7 és Vista esetén probléma van a régebbi OpenVPN verziókkal, mert a TAP driver nem Microsoft által aláírt változat! A jelenlegi V9-es változat ezt a problémát orvosolta.
tűzfal beállítása, ha van:
Az OpenVPN alapesetben az UDP vagy a TCP 1194-es portot használja, hacsak másképpen nem állítjuk be.
Szerver oldali beállítás
- Ha tűzfal mögött vagyunk, akkor kifelé és befelé is engedélyezni kell a 1194-es TCP vagy UDP portot.
- Ha router mögött vagyunk, akkor a számítógépünket állítsuk be fix IP címre és irányítsuk át a router 1194-es UDP vagy TCP portot a számítógépünk IP címére. (Egyes routereken ezt portforwarding, Application, NAT néven illetik)
Kliens oldalon
- A kliens oldalon a tűzfal csak akkor probléma, ha a kifelé irányuló kapcsolatot sz?rik. Ekkor a tűzfalon a 1194-es UDP vagy TCP portot kell engedélyezni kifelé a számítógépünkről. Ha személyi tűzfalunk van, akkor még az OpenVPN alkalmazásra is engedélyezni kell a portot.
- A router használata nem okoz problémát hacsak nincsen tiltva ez a port.
OpenVPN kulcsok generálása a szerveren
A telepítés során létrejött az <Telepítési könyvtár>\easy-rsa könyvtár. Ebben találhatók fájlok.
- A vars.bat.sample fájlt át kell nevezni vars.bat-ra
- az openssl.cnf.sample fájlt át kell nevezni openssl.cnf-re
Az ebben található bat file-ok segítségével lehet létrehozni a megfelelő kulcsokat a szerver és majd a kliens(ek) beállításához.
Meg kell nyitni a parancssort és utána futtatni kell a felsorolt parancsfájlokat az adott sorrendben.
Be kell állítani az alapvető értékeket
vars.bat
- Azokat az alapvető beállításokat tartalmazza, amelyek a többi batch file-ban használandók. először át kell írni benne az alábbi értékeket a szükségesnek megfelelően. Például:
set KEY_COUNTRY=HU
set KEY_PROVINCE=HU
set KEY_CITY=Budapest
set KEY_ORG=Fzolee
set KEY_EMAIL=fz@fzolee.hu
vagy valami hasonló.
Futtassuk a vars.bat-ot.
Kell generálni egy ca cert-et
clean-all.bat
- a key alkönvtárban törölni kell minden korábban létrehozott esetleges kulcsotbuild-ca.bat
- a ca.crt generálása. Ez fogja a többi kulcsot aláírni
Szerver cert létrehozása
Ez azért kell, hogy azonosítani lehessen a szerver oldaltbuild-key-server.bat <szervernév>
Kliens cert
Itt lehet előállítani a kliensek kulcsait. Minden kliensnek saját kulcsot lehet előállítani és a kapcsolat létrehozásához ezt kell kliens oldaln használni.build-key kliens1
build-key kliens2
.....
Diffie Hellman paraméter legyártása
A Diffie Hellman paraméterekről nem írok semmit. Akit érdekel az rsa titkosítás területén keressen, például itt:build-dh.bat
A fenti beállítások esetén XP-n az alábbi könyvtárban jönnek létre a kulcsok:
C:\Program Files\OpenVPN\easy-rsa\keys
Vista és Windows 7 (x64) esetén az alábbi könyvtárban jönnek létre a kulcsok:
C:\Program Files (x86)\OpenVPN\easy-rsa\keys
Ha a kulcsok létrehozásánál valamit elrontott, akkor futtassa a clean-all.bat fájlt, ami kitörli az összes korábban létrehozott kulcsot.
Szerver oldal bekonfigurálása
A konfigurációs állományokat a C:\Program Files\OpenVPN\config\ könyvtárba vagy annak egy alkönyvtárába helyezzük. Az OpenVPN a teljes könyvtár szerkezetben megtalálja a megfelelő konfigurációs állományokat. A konfigurációs állomány kiterjesztése .ovpn. Ugyanebbe a könyvtárba tegyük a korábban legenerált szerver.key, szerver.crt, ca.cert, dh1024.pem fájlokat is.
Az alábbi példa egy szerver konfigurációt ír le.
################################### # Példa OpenVPN 2.0 config file # több klienssel # # Ezt a fájlt a szerver oldalon kell használni # of a many-clients <-> one-server # # Ez a konfiguráció megy Linux és Windows szerveren is # # Windows esetén a \ helyett \\ kell használni# double backslashes, e.g.: # "C:\\Program Files\\OpenVPN\\config\\foo.key" # # A megjegyzések ilyen jelekkel kezdődhetnek: '#' or ';' ################################################# # Milyen lokális IP címen figyel az OpenVPN # Ha nem állítjuk be, akkor az összesen (opcionális) local 192.168.0.1 # Milyen TCP vagy UDP porton figyel az OpenVPN # Ha több OpenVPN példányt futtatunk, akkor mindegyiknek más portot kell beállítani # A tűzfalon aportot meg kell nyitni port 1194 # TCP vagy UDP szerver? ;proto tcp proto udp # "dev tun" route-olt IP csatornát hoz létre # "dev tap" Ethernet csatornát hoz létre # "dev tap0" -t használva ethernet bridge-et hozhatunk létre tap0 virtuális interface néven # Ha eklérési szabályokat akarsz a VPN-re beállítani, akkor a tűzfalon szabályok kellenek a # TUN/TAP interface-re beállítani. # Linux rendszereken használd az explicit egység számot, pl. tun0. # Windows rendszeren használd a "dev-node"-ot. # A legtöbb esetben a tűzfalat teljesen ki kell kapcsolni a TUN/TAP interface-re ;dev tap dev tun # Windows rendszeren a TAP-Win32 lesz az adapter neve # Ezt láthatod a Hálózati kapcsolatok ablakban. # XP SP2 vagy későbbi rendszeren külön lehet a csatolókon kapcsolni a tűzfalat # Más rendszeren erre nincsen szükség ;dev-node MyTap # SSL/TLS root certificate (ca.crt), # certificate (cert), server.crt # private kulcs (key). server.key # Minden kliensnek és szervernek van saját cert és key fájlja. # A szerverek és a kliensek ugyanazt a ca.crt fájlt használjákT # # Az "easy-rsa\keys" könyvtárban jönnek létre generáláskor a fájlok # A szervernél és minden egyes kliensnél kötelező használni a unique Common Name paramétert # ca ca.crt cert server.crt key server.key # Ezt a fájl nem szabad kiadni # Diffie Hellman paraméterek dh dh1024.pem # Konfigráljuk szerver üzemmódban a szervert, azaz # hozzunk létre egy OpenVPN alhálózatot # A szerver legyen a 10.8.0.1 # a többi IP legyen a klienseké. Minden kliens eléri a szervert # az 10.8.0.1 címen. server 10.8.0.0 255.255.255.0 # A kliensek virtuális IP címeit tároló fájladdress # HA a szerver vagy az OPenVPN lekapcsolódik, akkor az újrakapcsolódáskor # ugyanazt az IP-t kapják meg a kliensek ;ifconfig-pool-persist ipp.txt # Ethernet bridge esetén használandó beállítások # először az OS bridge lehetőségeit kell beállítani a TAP interface-re # a NIC interface felhasználásával # Utána állíthatod be az IP/netmask-ot a bridge-elt interface-re. # A példában 10.8.0.4/255.255.255.0 a tartomány # a kezdete 10.8.0.50, a vége 10.8.0.100. # Ne használjuk, ha nem ethernet bridge-elést használunk ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 # Ethernet Szerver bridge esetén használjuk ezt is. # akkor használjuk, ha a szerver oldali DHCP-t használunk, # ami az általa kiosztott IP-kel és DNS szerver címmel dolgozik. # először be kell állítani a rendszer bridge lehetőségét a TAP interface-re. # Megjegyzés: ez csak akkor működik, ha a kliens (pl. Windows) kliens oldali TAP adaptere # egyben DHCP kliens is. ;server-bridge # Routolási adatok átküldése a kliensnek. #Szükséges, hogy az OpenVPN kliensek lássák a hálózati tartományt (10.8.0.0/255.255.255.0) ;push "route 192.168.10.0 255.255.255.0" ;push "route 192.168.20.0 255.255.255.0" # To assign specific IP addresses to specific # clients or if a connecting client has a private # subnet behind it that should also have VPN access, # use the subdirectory "ccd" for client-specific # configuration files (see man page for more info). # EXAMPle: Suppose the client # having the certificate common name "Thelonious" # also has a small subnet behind his connecting # machine, such as 192.168.40.128/255.255.255.248. # First, uncomment out these lines: ;client-config-dir ccd ;route 192.168.40.128 255.255.255.248 # Then create a file ccd/Thelonious with this line: # iroute 192.168.40.128 255.255.255.248 # This will allow Thelonious' private subnet to # access the VPN. This example will only work # if you are routing, not bridging, i.e. you are # using "dev tun" and "server" directives. # EXAMPle: Suppose you want to give # Thelonious a fixed VPN IP address of 10.9.0.1. # First uncomment out these lines: ;client-config-dir ccd ;route 10.9.0.0 255.255.255.252 # Then add this line to ccd/Thelonious: # ifconfig-push 10.9.0.1 10.9.0.2 # Windows-specifikus beállításként átküldhetünk további parancsokat is # DNS vagy WINS szerver elérésére ;push "dhcp-option DNS 208.67.222.222" ;push "dhcp-option DNS 208.67.220.220" # A következő beálítás esetén a kliensek látják egymást # A megfelelő tűzfal beállításokra szükség lehet ;client-to-client # A kapcsolat ping-szerű tesztelését lehet beállítani # Ping 10 másodpercenként, és ha a túlsó oldal nem megy # 120 másodpercig, akkor fejezi be a próbálkozást keepalive 10 120 # Töörítés beállítása a kapxcsolatban # Lassú internet kapcsolat esetén hasznos. # A kliensen is alkalmazni kell. comp-lzo # A maximális párhuzamos kapcsolatok száma ;max-clients 100 # Az OpenVPN démon jogosultságainak csökkentése # Nem Windows rendszeren használjuk ;user nobody ;group nobody # The persist options will try to avoid # accessing certain resources on restart # that may no longer be accessible because # of the privilege downgrade. persist-key persist-tun # Naplófájl helye és neve status openvpn-status.log # Alapesetben a syslog-ba illetve windowson szervízként futtatva # a "\Program Files\OpenVPN\log" könyvtárba logol a rendszer. # A log újraindul, ha az OpenVPN elindul. # "log-append" hozzáf?zi a további logokat ;log openvpn.log ;log-append openvpn.log # A log fájl szintjét állítjuk be # # 0 csak végzetes hibát logol # 4 általános használat # 5 és 6 segít a kapcsolat hibakeresésében # 9 mindent ír verb 3 # Az üzenetek ismétlésének beállítása. # 20 ugyanolyan üzenetet eldob. ;mute 20
Kliens oldal konfigurálása
Az alábbiakban egy példa kliens konfigurációs állományt írunk le. A kliens.crt, kliens.crt, ca.crt fájlokat a szerveren állítjuk elő. A fájlokat a kliensen az alábbi könyvtárba célszerű tenni:
C:\Program files\OpenVPN\config\<szerverkliens>
, ahol a <szerverkliens> könyvtár egy tetszőlegesen elnevezett könyvtár. A config könyvtár minden alkönyvtárában lévő .ovpn fált megtalál a GUI.
######################################### # Kliens oldali példa # több klienses kapcsolat esetén # # Minden kliensnek van saját kulcsa (key) # és cert fájlja # Windows rendszeren a fájlnak a # kiterjesztése .ovpn ######################################### # Megmondjuk, hogy ez kliens # Néhány beállítást a szervertől kap client # Ugyanaz a beállítás kell, mint a szerveren # A tűzfalat be kell állítani megfelelően ;dev tap dev tun # Windows rendszeren a TAP-Win32 lesz az adapter neve # Ezt láthatod a Hálózati kapcsolatok ablakban. # XP SP2 vagy későbbi rendszeren külön lehet a csatolókon kapcsolni a tűzfalat # Más rendszeren erre nincsen szükség ;dev-node MyTap # TCP vagy UDP kapcsolatot használ? # Ugyanaz kell beállítani, mint a szerveren ;proto tcp proto udp # A domain név vagy IP és port beállítása a szerveren. # Ha több szervert adunk meg, akkor terhelésmegosztásként # más szerverekre kapcsolódhatunk remote szerver01 1194 ;remote szerver02 1194 # Válasszon a fent megadott szerverek közöt # Különben a fenti sorrendet használja ;remote-random # A szerver nevének ismételt feloldása. # Akkor használható, ha a gépnek nincsen állandó kapcsolata resolv-retry infinite # Port bindelés lokális portra, ha szükséges. Általban nem szükséges nobind # Nem Windows esetén. Inicializálás utáni jog lefokozás ;user nobody ;group nobody # Néhán beállítás megtartása újraindítás után persist-key persist-tun # Wifi hálózatonm gyakori az ismételt újraküldés. # Ez nem figyelmeztet az ismételt újraküldés esetén. ;mute-replay-warnings # SSL/TLS paraméterek. # A szerver cert és key, továbbá a kliens cert és key fájl a szerveren készül # Minden kliens kapjon más .crt/.key fájl párt # Minden kliensnek ugyanazt a ca fájlt kell használnia ca ca.crt cert kliens.crt key kliens.key # Szerver certificate ellenőrzése. # A szerver nsCertType mez?je ki van-e töltve. # A megfelelő mez?t a szerver cert generálásakor kell beállítani ns-cert-type server # tls-auth kulcs használata. Ha használjuk, akkor a klienseken is kell lennie ;tls-auth ta.key 1 # titkosítási mód.Select a cryptographic cipher. # Ugyanazt állítsuk be, mint a szerveren ;cipher x # A VPN kapcsolat tömörítése comp-lzo # A log fájl b?beszéd?sége verb 3 # Az ismételt üzenetek elhallgatása ;mute 2