UNIVERZITET SINGIDUNUM

FAKULTET ZA INFORMATIKU I RAČUNARSTVO

OpenVPN - virtualna privatna mreža Projektni rad iz predmeta Računarske mreže

Mentor: dr. Aleksandar Jevremović

Studenti: Kristina Kunjadić-Ćulibrk 2011/200525 Milutin Đukanović 2011/200072 Dalibor Marijančević 2011/200933

Beograd, 2013.

OpenVPN

1

Sadržaj

1

UVOD ........................................................................................................................................................... 2 1.1 1.2 1.3 1.4 1.5 ŠTA JE VPN? ............................................................................................................................................. 2 VRSTE VPN-A ........................................................................................................................................... 2 POVERLJIVOST I PRIVATNOST .................................................................................................................... 3 INTEGRITET ............................................................................................................................................... 4 AUTENTIFIKACIJA ..................................................................................................................................... 4

2

OPENVPN ................................................................................................................................................... 6 2.1 ŠIFROVANJE (ENCTYPTION) ...................................................................................................................... 6 OpenSSL ......................................................................................................................................... 6

2.1.1 2.2 2.3 2.4 3 4 5 6 7

AUTENTIFIKACIJA (AUTHENTICATION) ..................................................................................................... 7 UMREŽAVANJE (NETWORKING) ................................................................................................................ 7 SIGURNOST (SECURITY) ........................................................................................................................... 8

INSTALACIJA OPENVPN-A NA LINUX SERVERU ........................................................................... 9 INSTALACIJA OPENVPN NA KLIJENTU ......................................................................................... 15 USPOSTAVA VEZE KLIJENT-SERVER ............................................................................................. 23 ZAKLJUČAK............................................................................................................................................ 24 LITERATURA .......................................................................................................................................... 25

OpenVPN

2

1
1.1

Uvod
Šta je VPN?

VPN (Virtual Private Network) je skraćenica koja se koristi za označavanje šifrovanog tunela između dva uređaja preko neobezbeđene mreže kao što je Internet. VPN predstavlja drugačiju formu VPS-a (Virtual Private Server). VPN grupiše dve lokalne mreže iza VPN uređaja i time stvara jedinstvenu privatnu mrežu. VPN omogućuje transport podataka između pojedinih lokalnih mreža i korisnika preko Interneta ali ipak zadržavaju svojstvo sigurnosti i privatnosti. VPN mreže su i znatno fleksibilnije od zakupljenih kanala. Njihova se fleksibilnost ogleda u tome da nije potrebna direktna veza između privatnih lokalnih mreža ili zaposlenih, a to znači tri stvari: • veliko smanjenje troškova uspostavljanja i održavanja • veća sposobnost prilagođavanja promenama potreba preduzeća (npr. povećanje broja ispostava i njima pripadajućih lokalnih mreža)
• podrška radu na terenu, odnosno mobilnoj radnoj snazi

1.2 •

Vrste VPN-a Remote-Access (daljinski-pristup) – koji se takođe naziva i Virtual Private Dial-up Network (VPDN), ovo je user-to-LAN veza koju koriste kompanije šiji zaposleni moraju da se povežu na privatnu mrežu sa različitih udaljenih lokacija. Dobar primer za kompaniju kojoj je potreban remote-access VPN bi bila velika firma sa stotinama prodavaca na terenu. Remote-access VPN dozvoljava bezbedne, šifrovane veze između privatne mreže kompanije i udaljenih korisnika preko nekog drugog provajdera.

Site-to-site – kroz korišćenje namenske opreme i veliko-razmernog šifrovanja, kompanija može da poveže više fiksnih sajtova preko javne mreže kao što je Internet. Svakom sajtu treba samo lokalna veza sa istom javnom mrežom, čime štedi novac ne

OpenVPN

3

koristeći duge, privatne, iznajmljene linije. Site-to-site VPN se dalje može podeliti na intranet ili ekstranet site-to-site VPN-ove. Site-to-site VPN koji povezuje kancelarije iste kompanije se naziva intranet VPN, dok se VPN koji povezuje određenu kompaniju sa njenim partnerima ili klijentima naziva ekstranet VPN. Da bi se VPN smatrao sigurnom mrežom mora poštovati naredne ključne stavke:

1.3 -

Poverljivost i privatnost Podaci ne mogu biti viđeni u čitljivom formatu Koriste tipične simetrične algoritme: DES, 3DES, AES, Blowfish Šifarski i sigurnosni protokoli u VPN-u

Šifrovanje je proces kodiranja podataka, tako da je samo računar sa pravim dekoderom u mogućnosti da pročita i iskoristi podatke. U VPN-u, računari na svakom kraju tunela šifruju podatke koji ulaze u tunel i dešifruju ih na drugom kraju. Međutim, VPN-u je potrebno mnogo više od par ključeva da bi se primenilo šifrovanje. Tada se javljaju protokoli. Site-to-site VPN može da koristi ili IPsec (Internet Protocol Security) protokol ili GRE (Generic Routing Encapsulation) protokol. I GRE obezbeđuje radno okruženje za pakovanje protokola podataka za saobraćaj

preko Internet Protokola. Ovo okruženje sadrži informacije o tome koji tip paketa enkapsulirate i podatke o vezi između pošiljaoca i primaoca. II IPsec je veoma rasprostranjen protokol koji se koristi za obezbeđenje saobraćaja na IP

mrežama, uključujući i Internet. IPsec može da šifruje podatke između raznih uređaja: između dva rutera, firewall-a i rutera, desktopa i rutera i desktopa i servera. IPsec se sastoji od dva pod-protokola koji obezbeđuju uputstva koje su potrebne VPN-u da bi obezbedio svoje pakete: 1) Encapsulated Security Payload (ESP) koji šifruje korisnu nosivost paketa (podaci koji se transportuju) sa simetričnim ključem.

2) Autentication Header (AH) koristi hash funkciju na zaglavlju paketa, kako bi doprineo sakrivanju određenih informacija iz paketa (kao što je identitet pošiljaoca) dok ne stigne na svoje odredište.

OpenVPN

4

Umreženi uređaji mogu da koriste IPsec u jednom od dva načina šifrovanja. U transport mode-u (transportnom režimu), uređaji šifruju podatke koji putuju između njih. U tunnel mode-u (režimu tunela), uređaji grade virtuelni tunel između dve mreže. VPN koristi IPsec u tunnel mode-u sa IPsec ESP i IPsec AH koji rade zajedno. U remote-access VPN-u, usmeravanje (tunneling) se obično oslanja na Point-to-point Protocol (PPP) koji je deo maternjeg protokola kojeg koristi Internet. Tačnije, remote-access VPN koristi jedan od tri protokola baziranih na PPP: 1) L2F (Layer 2 Forwarding) – koga je razvio Cisco; On koristi sve autentifikacijske šeme podržane od strane PPP 2) PPTP (Point-to-point Tunneling Protocol) – koji podržava 40-bitno i 128-bitno šifrovanje i sve autentifikacijske šeme podržane od strane PPP 3) L2TP (Layer 2 Tunneling Protocol) – koji kombinuje osbine PPTP i L2F i u potpunosti podržava IPsec; Takođe se može primeniti u site-to-site VPN-ovima

1.4

Integritet Podaci se ne mogu menjati Tipični hash-funkcijski algoritmi: sha1, md5

1.5

Autentifikacija U VPN mrežnom prolazu je siguran identitet druge strane Tipični algoritmi: RSA, DH

OpenVPN

5

Slika prikazuje kako izgleda paket kada putuje unutar LAN-a i VPN-a

OpenVPN

6

2

OpenVPN

OpenVPN je open source aplikacija koja omogućava uspostavljanje virtuelne privatne mreže. Ova aplikacija je napravljena od strane James Yonan 2001. godine, dok je poslednja stabilna verzije aplikacije 2.3.0 objavljena u januaru 2013. godine. Aplikacija koristi vlastiti protokol koji je razvijen na SSL/TLS protokolima. Korisnici se u OpenVPN-u mogu autentifikovati preko tajnih ključeva koje su pre razmenili, sertifikata ili preko korisničkih imena i lozinki Za sigurnost koristi OpenSSL biblioteku, SSLv3/TLSv1 protokol kao i mnoge druge sigurnosne zaštite. Još neke od mogućnosti su podrška za dinamičke IP adrese i podrška za NAT (eng. Network Address Translation)

2.1

Šifrovanje (Enctyption)

Open VPN koristi OpenSSL biblioteku koja omogućava šivrovanje podataka i naredbi koje aplikacija razmjenjuje. OpenSSL odrađuje sav posao prilikom šifrovanja podataka i dozvoljava OpenVPN aplikaciji da koristi sve šifre koje su dostupne unutar OpenSSL paketa. Osim ovakve zaštite moguća je i dodatna zaštita preko HMAC (Hash-based Message Authentication Code) paketa autentifikacijskih funkcija, radi dodavanja dodatnog sloja zaštite u vezi koji se naziva “HMAC Firewall”. Takođe se može koristiti hardversko ubrzanje da bi se postigle bolje performanse za šifrovanje. 2.1.1 OpenSSL OpenSSL je projekt kojem je početna namena bila da napravi open source implementaciju protokola SSL i TLS. Osim ovih protokola OpenSSL sadrži i kriptografsku biblioteku. Projekt se razvijao slično kao i OpenVPN pomoću različitih programera širom sveta. OpenSSL je pisan u C jeziku pa ga je moguće upotrebljavati na različitim platformama. Poslednja stabilna verzija je 1.0.1e koja je objavljena 11. februara 2013. godine. OpenSSL je izdat pod Apache licencom koji omogućava da se koristi besplatno u komercijalne svrhe, i ne postoji previše prepreka za njegovu upotrebu.

OpenVPN

7

2.2

Autentifikacija (Authentication)

OpenVPN ima nekoliko načina na koji se može sprovesti autentifikacija: 1) Najlakši način je pomoću tajnih ključeva koje korisnici prethodno razmene i zatim ih prilikom uspostavljanja VPN konekcije upotrebljavaju. 2) Sledeći način koji možemo koristiti je pomoću sertifikata koji nam omogućavaju prepoznatljivost. Ovaj način autentifikacije sadrži najviše mogućnosti i smatra se najsnažnijim. (Kod Windows okruženja možemo čitati sertifikate sa pametnih kartica.) U server – klijentskoj konfiguraciji OpenVPN omogućava da server klijentima izda sertifikate za autentifikaciju ili izradi digitalni potpis. 3) Poslednji način je pomoću korisničkog imena i lozinke koji možemo, ali i ne moramo, koristiti zajedno sa sertifikatima. Problem kod autentifikacije sa korisničkim imenom i lozinkom je u tome što sam OpenVPN ne može pružiti ovakvu autentifikaciju već zavisi od nadogradnja treće strane

2.3

Umrežavanje (Networking)

OpenVPN može raditi preko UDP (User Datagram Protocol) ili TCP (Transmission Control Protocol), pomoću multipleksiranja kreira SSL tunele na samo jednom TCP/UDP portu. Aplikacija ima mogućnost da radi preko većine proxy servera (uključujući HTTP), dobra je u radu sa NAT-om (Network address translation) i prolasku kroz firewall. Server ima mogućnost da prosledi klijentima određene opcije vezane za konfiguraciju mreže, kao što su: IP adrese, naredbe za usmeravanje i nekoliko opcija vezanih za konekciju. OpenVPN nudi dve vrste interface-a za ostvarivanje veze putem univerzalnih TUN/TAP drajvera. On može kreirati ili IP tunel (TUN) na trećem (mrežnom) sloju, ili Eternet TAP konekciju na drugom sloju (sloju veze) koja može prenositi bilo koji tip mržnog saobraćaja. OpenVPN može koristiti LZO (Lempel–Ziv–Oberhumer je algoritam za
kompresovanje koji je fokusiran na brzinu dešifrovanja) za kompresovanje toka podataka.

Port 1194 je zvanično dodeljeni broj porta za OpenVPN od strane IANA (Internet Assigned Numbers Authority) i novije verzije programa automatski koriste ovaj port. Funkcija u verziji 2.0 omogućava da jedan proces upravlja istovremeno sa više tunela,

OpenVPN

8

nasuprot originalnoj zabrani da može da postoji samo jedan tunel po procesu (u 1.x verzijama). Kako OpenVPN koristi uobičajne mrežne protokole (TCP i UDP) to ga čini poželjnom alternativom za IPsec u situacijama kada ISP (Internet Service Provider) blokira određene VPN protokole, sa ciljem da prisili korisnike da se pretplate na usluge koje koštaju više ("business grade" nivo usluga). Može se reći da je uvođenje TUN/TAP dalo OpenVPNu prednost nad konkurencijom.

2.4

Sigurnost (Security)

Sigurnost kao glavni segment VPN komunikacije je u ovoj aplikaciji omogućena preko više funkcija. Sve radnje se odvijaju u korisničkom prostoru, umesto da zahtevaju IP stack (a samim time i kernel) operacije. OpenVPN ima mogućnost da ukine root privilegije, koristi mlockall (funkcija koja zaključava/otključava adresni prostor nekog procesa) kako bi se sprečilo brisanje osetljivih podataka sa diska, ulaskom u chroot jail (okruženje u kojem je korisniku promenjen root direktorijum i ne može raditi van tog direktorijuma) nakon

inicijalizacije i sprovođenja SELinux sadržaja SELinux (eng. Security Enhanced Linux) je nadogradnja za Linux koja omogućuje veću kontrolu nad sadržajem. Kao što je već spomenuto OpenVPN koristi protokole koji su bazirani na SSL i TLS (Transport Layer Security). OpenVPN takođe nudi podršku za smart kartice preko kriptografskih tokena baziranih na PKCS#11.

OpenVPN

9

3

Instalacija openVPN-a na Linux serveru

U okviru ovog projektnog rada, za VPN server smo koristili operativni sistem Ubuntu server 8.04. Korišćena je instalacija ovog OS na VMWare plejeru pomoću datoteke mini.iso koja je preuzeta sa zvaničnog Ubuntu sajta na linku:

http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/ mini.iso. Prilikom instalacije VMWare plejer je podešen da koristi 512MB RAM memorije za ovaj OS i mrežni adapter je postavljen u mod “Bridged” sa uključenom opcijom za replikaciju. Instalacija je obavljena u terminalskom modu i nije izabran ni jedan serverski paket koji je poduđen a OpenSSL paket je standardno uključen u instalaciju. Potrebno je da napomenemo da je konfiguracija mreže na kojoj je postavljen server i priključeni uređaji sledeća:
Adresa mreže Mrežna maska Gateway (adresa routera) DHCP pool routera Statička adresa koju ćemo dodeliti VPN serveru PC na kom se nalazi VM server 192.168.10.0 255.255.255.0 192.168.10.1 192.168.10.2 – 192.168.10.40

192.168.10.50

192.168.10.3

Nakon završene instalacije OS-a i logovanja na sistem sa korisničkim imenom i šifrom, pristupamo instalaciji paketa openVPN i njegovog podešavanja za serverski mod. Komandom “sudo su” prelazimo u administratorski režim sa root privilegijama, tako da sve komande unosimo privilegovano. S obzirom da podešavamo VPN server za povezivanje klijenata na lokalnu mrežu instaliraćemo dva paketa na OS. To su openvpn i bridge-utils paketi. Bridge-utils nam omogućava da “premostimo” eternet inferfejs na TAP interfejs i obezbedi TAP drajveru da direktno radi sa eternet okvirima na 2. sloju.

OpenVPN

10

root@ubuntu:/# apt-get install openvpn bridge-utils

Ova komanda vrši automatsko preuzimanje i instaliranje ova dva paketa sa interneta, tačnije baze softverskih alata koja podržava Ubuntu OS. Zatim ćemo pomoću text editora da izvršimo premošćavanje mrežnog adaptera eth0 u konfiguracionom fajlu za mrežni pristup pomoću sledeće komade:

root@ubuntu:/# vi /etc/network/interfaces

U okviru ovog konfiguracionog fajla izbrisaćemo linije „auto eth0“ i „iface eth0 inet dhcp“ i umesto njih uneti sledeće podatke za premošćavanje:
auto br0 iface br0 inet static address 192.168.10.50 netmask 255.255.255.0 network 192.168.10.0 gateway 192.168.10.1 broadcast 192.168.10.255 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp on bridge_prio 1000

Zatim ćemo sačuvati ovaj fajl i pristupiti izmeni fajla sysctl.conf da bi smo omogućili klijenet računarima da koriste internet preko našeg mrežnog prolaza (gateway):

root@ubuntu:/# vi /etc/sysctl.conf

i uklonite znak # ispred linije net.ipv4.ip_forward=1 a zatim snimite fajl i izvršite restartovanje mrežnog menadžera radi aktiviranja novih postavki:

root@ubuntu:/# /etc/init.d/networking restart

Ovim je podešavanje mrežnog pristupa i premošćavanja adaptera završeno. Sada podešavamo openVPN server. Prvo je potrebno da generišemo sve fajlove sa ključevima za

OpenVPN

11

zaštitu pristupa openVPN serveru. Potrebno je da kopiramo skripte koje se standardno distribuiraju u paketu openVPN (easy-rsa) u folder easy-rsa koji ćemo kreirati u folderu openvpn:
root@ubuntu:/# mkdir /etc/openvpn/easy-rsa root@ubuntu:/# rsync –avP /usr/share/doc/openvpn/examples/easyrsa/2.0/* /etc/openvpn/easy-rsa/

Prvo ćemo podesiti osnovne podatke našeg VPN sertifikata. Ti podaci se nalaze u fajlu vars u okviru easy-rsa foldera. Potrebno je promeniti parametre KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG i KEY_EMAIL:

root@ubuntu:/# vi /etc/openvpn/easy-rsa/vars

Ovi parametri se nalaze na kraju fajla a mi smo ih podesili na sledeći način:
export KEY_COUNTRY=“RS“ export KEY_PROVINCE=“RS“ export KEY_CITY=“Beograd“ export KEY_ORG=“Singidunum“ export KEY_EMAIL=“admin@example.org“

Zatim generišemo serverske RSA i SSL ključeve i sertifikat pomoću dodatnog paketa Easy-RSA koji se nalazi u paketu openVPN, a zatim ih kopiramo u openvpn folder u kome će ih server koristiti:
root@ubuntu:/# chown –R root:admin /etc/openvpn/easy-rsa root@ubuntu:/# chmod g+w /etc/openvpn/easy-rsa root@ubuntu:/# cd /etc/openvpn/easy-rsa root@ubuntu:/etc/openvpn/easy-rsa# source ./vars root@ubuntu:/etc/openvpn/easy-rsa# sh ./clean-all root@ubuntu:/etc/openvpn/easy-rsa# sh ./build-dh root@ubuntu:/etc/openvpn/easy-rsa# sh ./pkitool --initca root@ubuntu:/etc/openvpn/easy-rsa# sh ./pkitool --server server
root@ubuntu:/etc/openvpn/easy-rsa# cd keys root@ubuntu:/etc/openvpn/easy-rsa/keys# openvpn --genkey --secret ta.key root@ubuntu:/etc/openvpn/easy-rsa/keys# cp server.crt server.key ca.crt

dh1024.pem ta.key /etc/openvpn/

OpenVPN

12

Posle kreiranja ključeva potrebnih za rad VPN servera, kreiraćemo dva skript fajla koja će se pokretati kada se openVPN server startuje ili zaustavlja. Prvo kreiramo fajl down.sh:

root@ubuntu:/# vi /etc/openvpn/down.sh

sa sadržajem:

#!/bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin BR=$1 DEV=$2 brctl delif $BR $DEV ip link set "$DEV" down

a zatim i fajl up.sh:

root@ubuntu:/# vi /etc/openvpn/up.sh

sa sadržajem:
#!/bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin BR=$1 DEV=$2 MTU=$3 ip link set "$DEV" up promisc on mtu "$MTU" if ! brctl show $BR | egrep -q "\W+$DEV\$"; then brctl addif $BR $DEV fi

i na kraju oba fajla modifikujemo da budu izvršnog tipa:

root@ubuntu:/# chmod a+x /etc/openvpn/down.sh /etc/openvpn/up.sh

Sada je potrebno da konfigurišemo openVPN server, a to možemo uraditi preko konfiguracionog fajla server.conf kojeg ćemo kreirati na sledeći način:

root@ubuntu:/# vi /etc/openvpn/server.conf

OpenVPN

13

i u fajl ćemo upisati sledeći sadržaj:

port 1194 proto udp dev tap0 server-bridge 192.168.10.1 255.255.255.0 192.168.10.110 192.168.10.150 push „route 192.168.10.0 255.255.255.0“ push „dhcp-option DNS 192.168.10.1“ push „redirect-gateway def1 bypass-dhcp“ ca ca.crt cert server.crt key server.key dh dh1024.pem tls-auth ta.key 0 ifconfig-pool-persist ipp.txt keepalive 10 120 persist-key persist-tun comp-lzo cipher BF-CBC verb 3 mute 20 status openvpn-status.log client-config-dir ccd client-to-client up „/etc/openvpn/up.sh br0“ down „/etc/openvpn/down.sh br0“

Posle snimanja fajla izvršiti restartovanje openVPN servera:

root@ubuntu:/# /etc/init.d/openvpn restart

Ako pogledamo konfiguracioni fajl, podešavanja koja smo postavili se odnose na: VPN port koji ćemo koristiti i to je defaultni port 1194, zatim smo podesili tip protokola kroz kanal na udp, postavili smo za mrežni adapter premošćeni adapter tap0, zatim smo odredili DHCP opciju servera kojom se zadaje opseg IP adresa koje će server dodeljivati klijentima (u ovom slučaju 192.168.10.110 do 192.168.10.150) i na početku komande se prosleđuje mrežni prolaz mreže na kojoj se nalazi server kao i maska mreže, zatim navodimo imena fajlova ključeva koje će server koristiti kao i algoritam šifrovanja podataka kroz VPN kanal (u ovom

OpenVPN

14

slučaju BlueFish) i omogućavamo kompresiju podataka na strani servera. Sve konekcije klijenata će biti upisane u fajl openvpn-status.log i komandom client-to-client omogućavamo da se klijenti međusobno „vide“ u mreži (bez ovog podešavanja klijenti bi bili u mogućnosti da „vide“ samo server). Komandom push prosleđujemo parametre klijentima kako bi izvršili podešavanje openVPN klijent programa. Ovim smo završili podešavanje openVPN servera i pustili smo ga u rad. Sada je potrebno da na serveru generišemo ključeve za svakog klijenta posebno. Pomoću ovih ključeva klijenti će moći da pristupe serveru sa udaljenih lokacija putem internet konekcije. Postoji mogućnost da se generiše samo jedan set ključeva i da svi klijenti koriste iste ključeve ali iz bezbednosnih razloga ovo je neproporučljivo i koristi se samo u slučaju testiranja openVPN konekcije. Generisanje klijent RSA i SSL ključeva postižemo sledećim setom komandi:

root@ubuntu:/# cd /etc/openvpn/easy-rsa root@ubuntu:/etc/openvpn/easy-rsa# source ./vars root@ubuntu:/etc/openvpn/easy-rsa# ./build-key-pass naziv_klijenta

Ovim smo generisali ključeve za jednog klijenta. Fajlove naziv_klijenta.crt, naziv_klijenta.csr, naziv_klijenta.key, ca.crt i ta.key je potrebno iskopirati iz foldera /etc/openvpn/easy-rsa/keys i proslediti klijentu za upotrebu na openVPN klijent programu. Ukoliko želimo da generišemo ključeve za narednog klijenta ponovićemo gore navedenu proceduru.

OpenVPN

15

4

Instalacija openVPN na klijentu

Instalacija i konfigurisanje openVPN na klijentu. Konfigurisanje na klijentu Ubuntu 12.10

Nakon preuzimanja potrebnih konfiguracionih fajlova od administratora servera, otvoriti konekcije i izabrati Edit Connections,

Nakon toga na kartici VPN napraviti novu ili Edit za postojeću

OpenVPN

16

Uneti gateway i priložiti odgovarajuće crt sertifikate kao i privatni ključ administratora.

dobijen od

OpenVPN

17

Zatim otići na Advanced i na kartici General potvrditi polja Use LZO data compresion i Use a TAP Device.

Na kartici TSL Authentifikation dodati preostali ta.key.

OpenVPN

18

Ako se konekcija i dalje ne vidi

potrebno je da se ručno uključi

OpenVPN

19

otvoriti Netvork, izabrati odgovarajuću i kliknuti na ON / OFF dugme.

OpenVPN

20

Sada bi trebalo da izgleda ovako, tako da je moguće pokrenuti je.

Podešavanja na Windows klijentu

Preuzeti i instalirati grafički intefejs sa adrese http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.1-I001-i686.exe i u folder “\OpenVPN\config” iskopirati sertifikate i ključeve dobijene od administratora. Zatim pokrenuti OpenVPN GUI i u System tray-u bi trebalo da se pojavi VPN agent, desni klik na ikonicu aktivirati meni i kliknuti na connect i pokrenuti konekciju. Proslediti šifru i sačekati da se veza uspostavi.

OpenVPN

21

Proverom javne IP-adrese, utvrdićemo je to adresa gateway-a VPN – servera, što je potvrda da se nalazimo u istoj udaljnoj mreži.

OpenVPN

22

Podešavanja klijenta u fajlu "\OpenVPN\config\klijent2.ovpn“

OpenVPN

23

5

Uspostava veze klijent-server

Testiranje i uspostavu veze pomoću openVPN paketa koji smo uspešno instalirali na serveru i klijentu smo izvršili između dve udaljene kućne mreže koje su svaka zasebno povezane na internet provajdera putem router uređaja. U okviru mreže na kojoj je priključen PC (Windows 8 – 64bit) sa pokrenutim openVPN serverom u VM plejeru, nalazilo se još nekoliko uređaja i još jedan PC (Windows 7 – 32 bit) kojima je dinamički router dodelio IP adrese iz DHCP opsega 192.168.10.2 192.168.10.50. Na glavnom PC-ju su deljena dva foldera a na Win7 Pc-ju još jedan folder. Prilikom uspostavljanja veze klijentski program u Windows okruženju je bez problema izvršio povezivanje sa serverom i autentifikaciju konekcije i dodeljena mu je IP adresa 192.168.10.110 i time je postao član mreže na udaljenom serveru. Ubrzo potom su se na klijentovom PC u okviru network menadžera pojavili oba PC iz udaljene mreže na kojoj je server i bilo je omogućeno pristupanje deljenim foledrima na oba mesta. Na klijentskom računaru smo proverom ARP tabele u komandnom modu ustanovili da je klijent „povukao“ ARP podatke iz udaljene mreže servera. S obzirom na to da smo u klijent podešavanjima postavili da klijent promeni sopstveni gejtvej na gejtvej udaljene mreže servera, proverom IP adrese na web-u ustanovili smo da sav internet saobraćaj koji obavljamo sa klijent mašine ide preko VPN kanala i da klijent zaista koristi serverski gejtej za pristup internetu. Kopiranje fajlova kroz openVPN kanal je bilo zadovoljavajuće brzine s obzirom da smo koristili, pored SSL zaštite kanala, i BlowFish enkripciju podataka. Isključivanjem enkripcije podataka dobili smo rezultate pingovanja za oko 30% bolje nego sa uključenom enkripcijiom, što je uticalo na povećanje brzine protoka podataka kroz komunikacioni VPN kanal. Ovim smo potvrdili upotrebnu funkcionalnost openVPN kanala koji smo ovim projektom realizovali.

OpenVPN

24

6

Zaključak

OpenVPN je paket koji radi u sloju aplikacije. Jednostavan je za konfiguraciju i na serverskoj i na klijentskoj strani i ne zahteva previše angažovanja oko NAT i firewall podešavanja. Drugi deo prihvatljivosti ovog programskog paketa se ogleda u tome da je moguće prihvatiti veći broj klijenata na samo jedan port a sa time nije potrebno ni podešavanje dodatnih portova za više klijenata kao ni podešavanje pravila firewall-a. S obzirom da se SSL šifrovanje podataka odvija u okviru samog servera, openVPN je solucija koja pati od nedostatka brzine protoka podataka kroz VPN kanal. Ukoliko koristimo i kompresiju podataka i dodatno šifrovanje podataka koji prolaze kroz kanal, brzina protoka podataka postaje direktno zavisna od brzine samog servera. Ovaj problem je delimično rešiv jedino upotrebom hardverskih dodataka za real-time enkripciju. Karakteristike openVPN-a ga svrstavaju u kategoriju VPN za upotrebu u SOHO okruženjima i nije primenljiv za zahtevne korporacijske VPN-ove. Nije preporučen za povezivanje servera ali ima i onih koji ga za to koriste. U okviru ovog paketa na raspolaganju su nam razni dodatni algoritmi za enkripciju od BlueFish, AES-128 i AES-256 do DES-a i TripleDES-a. Naravno, pošto se upotreba ovih enkripcija odvija na programskom nivou, performanse openVPN konekcije drastično opada sa njihovom upotrebom. Pored navedenih dobrih i loših osobina openVPN-a, premošćavanje mreža sa ovim paketom nam nudi solidne performanse sa jako dobrom bezbednošću podataka i zaštitom od pokušaja neovlašćenih upada u sistem i snimanja protoka saobraćaja. S obzirom na to da se može implementirati na skoro sve postojeće platforme OS, predstavlja jednostavno rešenje za manje zahtevne korisnike.

OpenVPN

25

7
• • • • •

Literatura
http://openvpn.net/ http://www.linuxsysadmintutorials.com/ http://openmaniak.com/openvpn.php http://www.cisco.com/en/US/tech/tk583/tk372/technologies_tech_note09186a008009 4865.shtml http://en.wikipedia.org/wiki/OpenVPN