Professional Documents
Culture Documents
com
DIPLOMSKI RAD
DIPLOMSKI RAD
Brno 2012
TEHNIČKO SVEUČILIŠTE BRNO
TEHNOLOŠKO SVEUČILIŠTE U BRNU
DIPLOMSKI RAD
DIPLOMSKI RAD
Brno 2012
VIŠE UČENJE
TEHNIČKA U Brnu
Fakultet elektrotehnike i
komunikacijskih tehnologija
Institut za telekomunikacije
Diplomski rad
Prvostupnički smjer studija
Teleinformatika
NAZIV TEME:
UPUTE ZA PRIPREMU:
Proučite i opišite princip, osnovne komponente i način rada OpenVPN virtualnih mreža. Na temelju toga
osmislite koncept za laboratorijski zadatak pod nazivom OpenVPN virtualna mreža. Opravdajte, praktično
implementirajte, testirajte i evaluirajte svoj prijedlog. Pripremite upute za predloženi zadatak, u kojima
obratite pažnju na razumljivost, razumljivost i jasnoću.
PREPORUČENA LITERATURA:
[1] Krčmář, P.: Linux: izgraditi računalnu mrežu. Naklada Grada. Prag 2008.
[2] - : Vodič za administratore sustava OpenVPN pristupnog poslužitelja. Tehnologije OpenVPN. Pleasanton 2010.
OBAVIJEST:
Autor diplomskog rada ne smije povrijediti autorska prava trećih osoba prilikom izrade diplomskog rada, posebice ne smije
na neovlašten način zadirati u autorska prava trećih osoba i mora biti u potpunosti svjestan posljedica kršenja odredbi § 11.
et seq. Zakona o autorskim pravima br. 121/2000 Coll., uključujući moguće kaznenopravne posljedice koje proizlaze iz
odredbi drugog dijela, glave VI. dio 4. Kaznenog zakona br. 40/2009 Coll.
SAŽETAK
U uvodu, ovaj rad opisuje principe virtualnih privatnih mreža (VPN) te ukratko spominje glavne
protokole i pristupe za njihovu implementaciju. Zatim se detaljnije usredotočuje na upoznavanje
čitatelja s prirodom i karakteristikama OpenVPN mreža. Navodi pojedinačne značajke i opcije,
raspravlja o njihovim prednostima i nedostacima.
Nadalje, posvećen je osmišljavanju laboratorijskih radova usmjerenih na korištenje OpenVPN-a.
Raspravlja se o mogućnostima oblikovanja rada, posebice s tehničkog i didaktičkog gledišta. Na
temelju njih predstavlja koncept laboratorijskog zadatka s jednim OpenVPN poslužiteljem i jednim
OpenVPN klijentom koji simulira praktično rješenje problema neželjenog ograničavanja internetske
veze od strane loše ili prerestriktivno postavljenog vatrozida. Dio koncepta je i dodjela i stvarna
implementacija virtualnih strojeva koji se koriste u vježbi. Nadalje, opisane su mogućnosti proširenja
predloženog zadatka ili mogućnosti njegovog korištenja kao temelja za nove zadatke.
KLJUČNE RIJEČI
VPN Virtualna privatna mreža OpenVPN Lab Zadatak SSL TLS Linux
SAŽETAK
Ovaj diplomski rad opisuje principe virtualnih privatnih mreža (VPN) i ukratko
spominje glavne protokole i metode za implementaciju VPN-a. Nakon toga, cilj je
detaljniji opis karakteristika OpenVPN-a. Opisuje njegova svojstva i mogućnosti te
govori o njihovim prednostima i nedostacima.
U sljedećem dijelu fokusira se na laboratorijsku vježbu koja se odnosi na implementaciju
OpenVPN-a. Raspravlja se o mogućnostima izrade laboratorijskih vježbi uglavnom s
tehničkog i didaktičkog gledišta. S obzirom na njih, prikazan je koncept vježbe s jednim
OpenVPN poslužiteljem i jednim klijentom. Vježba simulira rješenje praktičnog problema
koji se često pojavljuje s neželjenim ograničenjima pristupa internetu uzrokovanim
pogrešno konfiguriranim ili previše restriktivnim vatrozidima. Koncept se sastoji od
teorijskog dijela i uputa te slika virtualnih strojeva koji se koriste u vježbi. Osim toga,
spominju se različite mogućnosti daljnjeg proširenja vježbe ili njezine upotrebe kao
podloge za neku drugu vježbu.
KLJUČNE RIJEČI
VPN virtualna privatna mreža OpenVPN laboratorijske vježbe SSL TLS Linux
KORTUS, JiříLaboratorijski zadatak Virtualne mreže tipa OpenVPN:Diplomski rad. Brno: Brno
University of Technology, Faculty of Electrical Engineering and Communication Technologies,
Institute of Telecommunications, 2011. 59 str. Voditelj je doc. Ing. Karel Burda, CSc.
DEKLARACIJA
Brno. . . . . . . . . . . . . . . ..................................
(potpis autora)
HVALA
Zahvaljujem mentoru doc. Ing. Karlu Burdu, dipl.ing.sc., na konzultacijama i vrijednim savjetima tijekom
Brno. . . . . . . . . . . . . . . ..................................
(potpis autora)
SADRŽAJ
Uvod 10
1 VPN 11
1.1 Značajke VPN-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Mehanizmi za tuneliranje 13
2.1 PPTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 L2TP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 IPsec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 SSTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 VPN topologija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 OpenVPN 18
3.1 Filozofija/Arhitektura . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Komunikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Autentifikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1 Provjera autentičnosti temeljena na PKI-ju . . . . . . . . . . . . . . . . . . . 20
3.3.2 Autentifikacija imenom i lozinkom . . . . . . . . . . . . . . . . 21
3.3.3 Autentifikacija pomoću čip kartice . . . . . . . . . . . . . . . . . . . 22
3.4 Enkripcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Sustav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 Mreža . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.1 Princip prijenosa podataka. . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.2 Sažimanje prenesenih podataka . . . . . . . . . . . . . . . . . . . . 24
3.6.3 TUN, TAP sučelje. . . . . . . . . . . . . . . . . . . . . . . 24
3.6.4 Obraćanje klijentima . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6.5 Prijenos parametara klijentima . . . . . . . . . . . . . . . . . . 25
3.6.6 Raspodjela opterećenja, redundancija . . . . . . . . . . . . . . . . . . 25
3.7 Konfiguracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.7.1 Konfiguracijske datoteke . . . . . . . . . . . . . . . . . . . . . . . 26
3.7.2 Upravljačko sučelje . . . . . . . . . . . . . . . . . . . . . . . 27
3.7.3 Grafičko sučelje . . . . . . . . . . . . . . . . . . . . . . . . . 27
7 Informacije za praktičare 47
7.1 Instaliranje virtualnih strojeva . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2 Primjeri konfiguracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2.1 poslužitelj.konf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2.2 client.conf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.3 Mogući problemi ............................. 48
7.3.1 Poslužitelj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.3.2 Klijent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.4 OpenVPN Pitanja i odgovori . . . . . . . . . . . . . . . . . 49
8 Testiranje, moguće daljnje proširenje 51
8.1 Ispitivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.2 Ostala moguća proširenja. . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9 Zaključak 53
Književnost 54
Popis priloga 59
POPIS SLIKA
1.1 Načelo virtualnih privatnih mreža. . . . . . . . . . . . . . . . . . . . 11
2.1 Shematski prikaz mrežnog tunela . . . . . . . . . . . . . . . . . 13
5.1 Topologija virtualne mreže u laboratorijskom zadatku. . . . . . . . . . . . . . . 33
6.1 Princip mrežnog tunela . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2 Princip virtualnih privatnih mreža . . . . . . . . . . . . . . . . . . . . 37
6.3 Topologija virtualne mreže . . . . . . . . . . . . . . . . . . . . . . . . . . 40
UVOD
U današnjim računalnim mrežama često se susrećemo s potrebom povezivanja udaljenih
mreža ili dopuštanja pristupa mreži korisnicima koji se nalaze izvan nje. Istodobno,
postavljamo zahtjeve za sigurnost, nisko financijsko opterećenje i druge važne aspekte
vezane uz ovu problematiku.
U prošlosti je bilo uobičajeno povezivati udaljene mreže pomoću namjenskih krugova
(fiksni telefoni),što je bilo financijski skupo i ne baš fleksibilno. Postupnim razvojem interneta
počele su se promovirati virtualne mreže (VPN) koje omogućuju pristup udaljenim mrežama i
njihovo međusobno povezivanje, temeljeno na različitim tehnološkim rješenjima. Pojedinačna
rješenja su više ili manje različita i imaju različite prednosti ili ograničenja.
Ovaj diplomski rad bavi se problematikom virtualnih mreža temeljenih na OpenVPN
tehnologiji te se fokusira na njezine glavne karakteristike i mogućnosti korištenja u
laboratorijskim vježbama. U uvodu se analiziraju svojstva VPN mreža i najčešće korištene
obitelji protokola, odn mehanizmi koji se koriste za implementaciju virtualnih privatnih
mreža. Uz karakteristike, za svaku tehnologiju ukratko su navedene i prednosti i nedostaci.
Slijedi opis OpenVPN tehnologije, s fokusom na filozofiju koja stoji iza nje,
sigurnost i mehanizme koje koristi za postizanje te tehnologije. Također su
opisane dostupne metode autentifikacije i enkripcije te osnovni principi koje
koriste, kao i rad OpenVPN-a u smislu vlastitog prijenosa podataka.
Također opisuje kako se OpenVPN može konfigurirati (konfiguracijske datoteke, grafička
korisnička sučelja). Među opisanim alatima za konfiguraciju i upravljanje OpenVPN-om
uključena je i proširena verzija OpenVPN-a -OpenVPN pristupni poslužitelj,koji nudi
sveobuhvatno okruženje za brzu implementaciju OpenVPN-a.
Sljedeći dio rada posvećen je izradi laboratorijskog zadatka čiji je cilj postaviti
jednostavnu virtualnu mrežu temeljenu na OpenVPN-u. Opisuje uvjete koji se moraju uzeti
u obzir pri izradi zadatka, kao i uvjete i specifikacije za provedbu zadatka. Razmatraju se
mogućnosti sadržaja zadatka, a iznose se i razmatrani didaktički aspekti koji ravnaju pri
zadavanju rada.
Na temelju uvjeta dodjele i njihove analize opisuje se stvarna implementacija zadatka, kako sa
stajališta implementacije (konfiguracija virtualnih strojeva na kojima je zadatak izgrađen) tako i sa
stajališta stvarne implementacije. dodjela zadatka. Dodjela zadatka dodatno je proširena
informacijama za polaznike.
10
1 VPN
VPN (Virtual Private Network) je mreža koja uglavnom koristi javnu
telekomunikacijsku infrastrukturu, kao što je Internet, kako bi omogućila pristup
udaljenim poslovnicama ili putujućim korisnicima središnjoj mreži organizacije.[1]
VPN dakle stvara vezu između pojedinih mreža ili terminalnih uređaja kroz
komunikacijski kanal koji ne pripada tim mrežama (osobito Internet) tako da se čini
kao da su povezani izravno.
Povijesno gledano, VPN principi su implementirani korištenjem iznajmljenih
podatkovnih krugova. Međutim, takvo je rješenje bilo financijski skupo i
nefleksibilno. S razvojem Interneta, tj. posebno sa sve većom dostupnošću, većim
dostupnim brzinama prijenosa i padom cijena veza, Internet (a ne više namjenski
podatkovni krugovi) počeo se koristiti za izgradnju VPN-ova[1]. Nadalje, samo će se
ova vrsta veze nazivati pod pojmom VPN.
U praksi se VPN-ovi uglavnom koriste za sigurno povezivanje mreža pojedinih
podružnica organizacija ili za udaljeni pristup radnika tim mrežama. Princip udaljene
mrežne veze i mrežne veze prikazan je na slici 1.1, isprekidana linija predstavlja vezu
pomoću VPN-a. Druga opcija za korištenje VPN-a je stvaranje tunela koji služi kao
potpuna internetska veza u okruženju u kojem su postavljena ograničenja za
korištenje određenih usluga (npr. dopuštanje samo određenih komunikacijskih
portova na vrućim točkama, itd.) [2].
11
Ovjera -provjera identiteta sugovornika (VPN poslužitelj, VPN klijent), dokaz
identiteta. Općenito, autentifikacija se može implementirati, na primjer, s korisničkim
imenom i lozinkom, zajedničkim ključem, certifikatom ili drugim sredstvima.
Autorizacija –omogućavanje pristupa VPN mreži ili pod-uslugama koje se u ovoj mreži
pružaju samo odgovarajućim subjektima.
Povjerljivost –osiguravajući da prenesene podatke (u čitljivom obliku) ne može dobiti
treća strana. Povjerljivost je osigurana u VPN-u šifriranjem komunikacije.
Integritet –mogućnost saznanja da tijekom prijenosa nije došlo do promjene prenesenih
podataka, bilo zbog pogreške u prijenosu ili namjerne izmjene od strane napadača.
Gore navedena načela važna su pri implementaciji VPN-a u okruženju koje se
po svojoj prirodi ne može smatrati sigurnim (internet), tj. u velikoj većini slučajeva.
Načini na koje je svaka sigurnosna točka osigurana razlikuju se ovisno o specifičnoj
vrsti VPN-a i njegovim postavkama. Oni se mogu dalje proširivati, ali se neki mogu
u praksi i izostaviti, ovisno o konkretnoj primjeni i zadanim zahtjevima.
12
2 TUNELSKI MEHANIZMI
Postoje mnoge vrste virtualnih privatnih mreža s različitim razinama sigurnosti, koristeći
različite (osobito tunelske) protokole. Protokol tuneliranja koristi se za stvaranje tunel,odnosno
virtualna veza od točke do točke između čvorova u mreži na linijskom ili mrežnom sloju. Tunel je
shematski prikazan na slici 2.1, tunel koji se koristi za povezivanje prve i druge mreže prikazan
je kontinuiranom linijom, protok podataka kroz tunel isprekidanom linijom.
S jednom ili više takvih veza može se ostvariti koncept virtualnih privatnih mreža. Za
tuneliranje se mogu koristiti protokoli koji su izravno dizajnirani za tu svrhu (npr. PPTP,
L2TP, itd.) ili drugi protokoli prikladni za tu svrhu, uz pomoć kojih se komunikacija
naknadno enkapsulira (npr. SSL). VPN-ovi se (prema korištenim protokolima) uglavnom
mogu svrstati u sljedeće skupine:
2.1 PPTP
PPTP (Point-to-Point Tunneling Protocol) je protokol za tuneliranje koji je razvio
Microsoft u suradnji s drugim tvrtkama [3] dokumentiran u preporuci RFC 2637.
Izgrađen je na temelju GRE protokola, u koji inkapsulira PPP pakete, komunikaciju
upravlja se vezom preko TCP protokola. Najčešća implementacija PPTP-a je
Microsoft klijent/poslužitelj (od Windows 95 OSR2). Podržava autentifikaciju putem
PAP, CHAP, MSCHAPv1/v2 ili EAP-TLS protokola, podaci koji se prenose putem PPP-
a kriptirani su MPPE protokolom.
Nedostatak je niska sigurnost (ranjivost MSCHAPv1/v2 protokola) [3], s druge
strane, nativna dostupnost u Microsoft Windows operativnim sustavima je prednost.
Dostupne su i druge PPTP implementacije, npr. PoPToP za Linux.
2.2 L2TP
L2TP (Layer 2 Tunneling Protocol)[4] je protokol za tuneliranje razvijen u suradnji s
Microsoftom i Ciscom, opisan u preporuci RFC 2661. Koristi se za tuneliranje podataka
13
na sloju veze u IP mrežama koristi UDP datagrame za prijenos podataka. Sam L2TP
protokol omogućuje samo osnovnu autentifikaciju i nema mehanizme za šifriranje
prenesenih podataka. U slučaju da je potreban snažan mehanizam provjere
autentičnosti ili sigurnost prijenosa, L2TP se može koristiti u kombinaciji s IPsec-om;
prvo se stvara sigurna IPsec veza između čvorova, u kojoj se potom stvara L2TP tunel.
L2TP protokol podržan je u operativnim sustavima MS Windows (nativno
Windows 2000 i noviji), Apple Mac OS X (verzija 10.3 i noviji) i Unix operativnim
sustavima.
2.3 IPsec
IPsec je sigurnosna ekstenzija IP protokola [5], koja omogućuje autentifikaciju i
enkripciju svakog poslanog paketa. IPsec se može koristiti za tuneliranje u kombinaciji
s L2TP (kao što je gore spomenuto) kada radite unačin transportai šifrirani su samo
preneseni podaci (i/ili njihova autentifikacija je osigurana), a ne izvorna/odredišna
adresa [5, Transportni način]. U ovom slučaju, prisutnost NAT-a u prijenosnom putu
može biti problematična.
Druga opcija je korištenje samog IPsec v protokolanačin tuneliranja. Cijeli
paket je šifriran (i/ili autentificiran) i naknadno enkapsuliran u novi paket s
novim zaglavljem [5, Tunnel mode].
IPsec je izvorno podržan u operativnim sustavima MS Windows (Windows 2000 i
noviji), podrška u kernelu ili podrška uz pomoć drugih implementacija izvan kernela
može se koristiti pod Linuxom, *BSD sustavi su također podržani (uključujući
implementaciju u KAME projekt) i drugi OS uključujući OS za mrežni hardver, npr. Cisco
IOS, Juniper Junos, itd.
2.4 SSL/TLS
Protokoli SSL (Secure Socket Layer) i TLS (Transport Layer Security) [6] koji se temelje
na SSL-u služe za osiguranje sigurne komunikacije putem Interneta. U tu svrhu koriste
asimetričnu kriptografiju (za razmjenu ključeva), simetričnu kriptografiju (za šifriranje
prenesenih podataka) i otiske poruka (MAC, Message Authentication Code) kako bi
osigurali cjelovitost prenesenih podataka. SSL omogućuje jednostranu ili dvostranu
autentifikaciju pomoću certifikata.
SSL protokol dizajnirao je Netscape, prva verzija (2.0) javno je objavljena 1995.
godine, nakon čega je uslijedila verzija 3.0 1996. godine, koja je popravila brojne
sigurnosne nedostatke [6]. TLS protokol standardiziran je u verziji 1.0 1999. godine
kao RFC 2246, trenutno je najnovija verzija TLS 1.2 (RFC 5246). Koncepti
14
TLSiSSLde facto se odnosi na isti protokol u različitoj verziji (TLS 1.0 odgovara SSL-u
3.1, TLS 1.1 odgovara SSL-u 3.2, a TLS 1.2 je ekvivalentan SSL-u 3.3), u ovom kontekstu
pojmovi se mogu smatrati labavo zamjenjivima.
Protokoli rade na aplikacijskom sloju (sa stajališta TCP/IP modela), odn
relacijski sloj (sa stajališta ISO/OSI modela), a obično se koriste za osiguranje
aplikacijskih protokola, gdje je komunikacija putem izvorno nesigurnog protokola
(npr. HTTP, SMTP, IMAP) osigurana pomoću SSL/TLS (HTTPS, SMTPS) , IMAPS).
Osim komercijalnih implementacija, dostupne su i besplatne biblioteke koje
podržavaju SSL protokol, kao što su OpenSSL, GnuTLS ili PolarSSL.
2.4.1 SSTP
Realizaciju VPN mreže (ili tunela) temeljene na TLS-u omogućuje SSTP (Secure Socket Tunneling
Protocol)[7] protokol, kada se putem SSL 3.0 kanala uspostavlja veza PPP ili L2TP protokola.
Razvio ga je Microsoft s namjerom da eliminira neke od nedostataka PPTP ili L2TP [8] protokola,
posebice mogućnost jednostavnog blokiranja ovih protokola na vatrozidima. Korištenje SSL-a s
jedne strane osigurava autentifikaciju i sigurnost prenesenih podataka, a s druge strane
omogućuje bolju propusnost VPN veza kroz vatrozide ako ne blokiraju SSL-kriptirani promet
(prema zadanim postavkama na portu 443).
Uz prednosti koje proizlaze iz korištenja SSL-a, možemo spomenuti nativnu podršku u
MS Windows Vista SP1 i novijim (nadalje, protokol podržavaju RouterOS sustavi i
djelomično pod Linuxom). Nedostatak je korištenje TCP protokola za prijenos podataka
VPN veze (objašnjeno u nastavku) i orijentacija samo na udaljeni pristup pojedinačnih
klijenata privatnoj mreži (ne povezivanje udaljenih mreža -site-to-site).
2.4.2 OpenVPN
OpenVPN je glavna VPN aplikacija koja se temelji na SSL protokolu. To je besplatni
softver licenciran pod GPL[9], čiji je razvoj 2002. godine započeo James Yonan, a
trenutno ga razvija OpenVPN Technologies Inc. i zajednica softvera otvorenog
koda (najnovija stabilna verzija u vrijeme pisanja - studeni 2011. - 2.2.1). Osim
verzije otvorenog koda, postoji i komercijalno dostupna verzija (OpenVPN Access
Server [10]), koja proširuje mogućnosti Open-VPN-a i pojednostavljuje upravljanje,
posebno u instalacijama s velikim brojem klijenata.
Zahvaljujući otvorenoj licenci, OpenVPN može biti sigurniji (svatko može pronaći i
popraviti sigurnosni propust u izvornim kodovima) i može se koristiti besplatno.
Funkcionalnost SSL protokola pruža bibliotekaOpenSSL (dostupna pod besplatnom
licencom Apache [11], jedna je od najčešće korištenih besplatnih kriptografskih
knjižnica.
15
Uz sigurnost koju pruža otvorena licenca, OpenVPN pokušava osigurati sigurnost
najprikladnijim dizajnom arhitekture, posebno modularnim dizajnom - npr. upotrebom
proširene OpenSSL SSL biblioteke (ne vlastite ponovne implementacije SSL protokola) ili
univerzalnog upravljačkog programa za stvaranje TUN/TAP mrežnih sučelja. Također
koristi sigurnosne mehanizme operativnog sustava, poput zaštite prenesenih podataka i
ključeva u memoriji prije spremanja u prostor za pohranu (na disku), mogućnost
zaključavanja u podstablo datotečnog sustava (chroot)pokretanje procesa pod korisnikom
bez administratorskih prava. Implementacija se vrši u korisničkom prostoru (korisnički
prostor),zahvaljujući tome, nema potrebe za miješanjem u jezgru operativnog sustava
prilikom instaliranja OpenVPN-a ili nadogradnje na novu verziju. OpenVPN je
višeplatformski softver koji se može pokrenuti na Unix OS-u (Linux, *BSD, Solaris, MacOS X,
itd.), MS Windows, ali i na drugim platformama uključujući mobilne uređaje.
Mogući nedostatak je potreba za instaliranjem OpenVPN aplikacije, budući da
OpenVPN protokol možda nije izvorno podržan u operativnom sustavu.
16
više grana).
Gornje topologije nisu iscrpne i mogu se (ovisno o korištenim
tehnologijama) različito kombinirati.
17
3 OPENVPN
3.1 Filozofija/Arhitektura
Jednostavnost dizajna.Filozofija OpenVPN-a temelji se na najjednostavnijem mogućem
pristupu s ciljem izbjegavanja pretjerane složenosti (IPsec pristup se ovdje često spominje
kao kontrast)[12, pogl. 3], budući da složen dizajn može dovesti do zabune i stoga biti
skloniji pogreškama. Jednostavnost dizajna također olakšava razumijevanje kako OpenVPN
radi, smanjujući rizik od konfiguracijskih pogrešaka.
Modularna arhitektura.Još jedna značajka je modularna arhitektura, tj., s jedne strane,
mogućnost proširenja funkcija, na primjer, korištenjem dinamički povezanih biblioteka
(DLL)i, s jedne strane, korištenje provjerenih sredstava za izvođenje nekih funkcija (ovo je
uglavnom OpenSSL knjižnica i upravljački program TUN/TAP virtualnog mrežnog sučelja).
3.2 Sigurnost
OpenVPN je razvijen s ciljem jednostavne konfigurabilnosti, koja se ne postiže nauštrb
sigurnosti. Također se spominju pojedinačna područja kojima se upravlja sigurnošću u
OpenVPN-u.
3.2.1 Komunikacija
Komunikacijski sigurnosni protokol (SSL/TLS) odabran je (između ostalih prednosti) jer
je to provjereni protokol koji se može smatrati industrijskim standardom u svom
području [12, pogl. 1]. SSL/TLS funkcionalnost pruža biblioteka OpenSSL1.
OpenSSL[11] je biblioteka s otvorenom licencom i fokusirana je na implementaciju
funkcija definiranih protokolima SSL 2, 3 i TLS 1.0 (od verzije 1.0.1 djelomično podržava
TLS 1.2) i opću kriptografsku podršku. OpenSSL pruža sljedeće značajke:
ˆsimetrična enkripcija (AES, Blowfish, 3DES i drugi algoritmi)
1Od verzije 2.3 planirana je podrška za alternativnu SSL/TLS biblioteku [9] – PolarSSL. Zahvaljujući
ovoj promjeni bit će lakše pokrenuti OpenVPN na uređajima s malim kapacitetom radne memorije,
odn vanjska memorija (obično MB flash memorijske jedinice) i mala računalna snaga, kao što su
kućni usmjerivači.
18
ˆraspršivanje (MD5, SHA1, SHA2 algoritmi, itd.)
ˆpodrška za kriptografiju s javnim ključem (PKI, infrastruktura javnih ključeva) –al-
algoritmi RSA, DSA, Diffie-Hellman algoritam razmjene ključeva, kriptografija
temeljena na eliptičnim krivuljama i rad s certifikatima
Komunikacija je prema zadanim postavkama kriptirana u OpenVPN-u, enkripcija se vrši
pomoću simetrične šifre, može se podesiti vrsta i duljina ključa. Simetrična enkripcija se
koristi zbog performansi (enkripcija asimetričnom kriptografijom znatno je zahtjevnija za
računalnu snagu).
Prva opcija je šifriranje statičkim ključem – ključ se generira unaprijed i prenosi putem
sigurnog puta na obje strane OpenVPN-a (klijent i poslužitelj, odnosno oba peera), a zatim
se koristi za enkripciju tijekom bilo kojeg prijenosa podataka putem OpenVPN-a. Očita
prednost je mali utrošak rada za puštanje ovakvog rješenja u rad (nema potrebe baviti se
radom s certifikatima), međutim, u usporedbi s korištenjem certifikata, statički ključ nudi
nižu razinu sigurnosti. Ako je ključ kompromitiran, potrebno je generirati novi ključ i
prenijeti ga na poslužitelj i sve klijente (ili oba peera), što čini korištenje statičkog ključa
neprikladnim za konfiguracije s velikim brojem klijenata. Drugi nedostatak je da napadač
može dešifrirati sve komunikacije snimljene prije nego što je ključ otkriven, kao i naknadne
komunikacije.
Kada se koristi PKI, strane u komunikaciji se autentificiraju i, ako je uspješna,
uspostavlja se ključ za simetričnu enkripciju, koji dodatno štiti prenesene podatke.
Kako bi se povećala sigurnost, ovaj simetrični ključ se povremeno mijenja, čime se
smanjuje količina podataka koje potencijalni napadač može analizirati i dešifrirati ako
ključ pronađe (mogu se dešifrirati samo podaci preneseni tijekom korištenja jednog
ključa). Također je nemoguće dešifrirati i promijeniti (spoof) podatke prenesene nakon
promjene ključa. Promjena ključa obično se odvija nakon jednog sata.
Postoje određeni troškovi povezani s održavanjem PKI-ja (generiranje
certifikata ili potpisivanje zahtjeva za certifikatom, distribucija, opoziv), ali pruža
veću sigurnost od statičkog ključa. U situaciji kada je privatni ključ jedne od
strana u komunikaciji ugrožen, dovoljno je opozvati (poništiti) samo certifikat
kojem taj ključ pripada, generirati novi ključ i certifikat i prenijeti ga na
odgovarajuće mjesto.
Osiguravanje cjelovitosti i autentičnosti podataka ostvaruje se otiskom prsta poruke (MAC, kod
za provjeru autentičnosti poruke).MAC je hash podataka prenesenih u određenom paketu, u
kombinaciji s utvrđenim ključem za šifriranje podataka. Dakle, pošiljatelj koristi podatke namijenjene
prijenosu i dodaje ključ za enkripciju te proizvodi hash ove cjeline, stvarajući MAC. Primatelj
dekriptira primljene podatke, dodaje im ključ za enkripciju, ponovno pravi raspršivanje ovog ključa i
primljenih podataka (to jest, MAC poruke) i uspoređuje ih s primljenim MAC-om. Ako se podudaraju,
podaci nisu oštećeni ili na drugi način modificirani usput.
HMAC sigurnost nudi još višu razinu sigurnosti u tom pogledu
19
(Kôd provjere autentičnosti raspršene poruke)[13]. Princip sigurnosti je isti kao i za MAC, ali
se koristi poseban ključ za enkripciju, koji već mora postojati prije uspostavljanja SSL sesije
(za razliku od ključa uspostavljenog tijekom SSL sesije). Korištenje HMAC-a daje mogućnost
provjere autentičnosti svih paketa koje OpenVPN prima. Osim toga, ova se provjera
autentičnosti može izvesti prije nego što se paket proslijedi na daljnju obradu SSL biblioteci
(čime se eliminiraju napadi koji bi mogli iskoristiti potencijalne sigurnosne rupe u ovoj
biblioteci). Još jedna prednost je povećana otpornost na DoS napade (Uskraćivanje usluge,
uskraćivanje usluge) i protiv skeniranja portova, čiji je cilj otkriti koji su UDP portovi
otvoreni[14].
3.3 Autentifikacija
OpenVPN nudi prilično širok raspon opcija za autentifikaciju klijenata na VPN mreži. Metode
provjere autentičnosti u nastavku mogu se kombinirati kako bi se osigurala još veća sigurnost.
Poziva se kombinacija više metoda (kao što je korištenje certifikata i provjera autentičnosti
korisničkog imena/lozinke).provjera autentičnosti s više faktora.
20
provjera potpisa ne bi uspjela). Ako je CA organizacija od povjerenja, tada se može
pretpostaviti da su podaci sadržani u certifikatu istiniti, te stoga da certifikat (i javni ključ)
pripada subjektu.
U praksi se za neke svrhe (npr. sigurni prijenosi korištenjem HTTPS protokola)
koriste certifikati koje uz naknadu izdaje akreditirani CA, čiji je korijenski certifikat
(a time i javni ključ) dio softvera koji podržava SSL/TLS (npr. web preglednik).
Korištenje certifikata izdanog od strane akreditiranog CA prikladno je ako usluzi
koja se dokazuje certifikatom pristupa neodređeni krug korisnika (za koje se
unaprijed može pretpostaviti samo poznavanje certifikata akreditiranih tijela za
izdavanje certifikata).
Ako se unaprijed može odrediti raspon korisnika koji pristupaju (ili je prihvatljiv
rizik da podaci u certifikatu nisu istiniti), moguće je uspostaviti vlastiti CA i uz
njegovu pomoć izdavati certifikate, dok CA potpisuje root sam certifikat. Takve
potvrde nazivaju sesamopotpisanii npr. u OpenVPN-u se obično koriste. Kod
korištenja samopotpisanog certifikata, međutim, potrebno je pristati (od strane
korisnika) na korištenje certifikata čiji CA nije akreditiran, ili spremiti ovaj certifikat
(ili CA korijenski certifikat) i tako razmotriti to pouzdano.
Ako je privatni ključ izgubljen ili ugrožen, njegov vlasnik može kontaktirati CA, koji
će organizirati poništavanje pridruženog certifikata (njegov opoziv). On vrši opoziv
dodavanjem informacija o ovom certifikatu na popisCRL (Popis opozvanih certifikata).
CRL je javno dostupan (u slučaju akreditiranih CA-ova), u slučaju korištenja u
OpenVPN-u dovoljno je da bude dostupan OpenVPN poslužitelju koji na temelju njega
može odbiti autentifikaciju klijenata koji se dokazuju certifikatom to jest na CRL-u.
21
ˆMogu biti po arhitekturiPAM (Plugable Authentication Module)nad-
dano PAM modulu, koji osigurava autentifikaciju prema bazi korisničkih podataka (u
slučaju Unix sustava, na primjer, može se koristiti lokalna datoteka s korisničkim
imenima i lozinkama /itd/sjena)ili dodatno prilagodite opcije provjere autentičnosti
prema postavkama uz pomoć dostupnih PAM modula.
ˆMogu se proslijediti za provjeru autentičnosti putem imeničke uslugeLDAP (lagan
Protokol za pristup imeniku)uključujućiAktivni direktorijili krozRADIUS (korisnička usluga
biranjem za daljinsku provjeru autentičnosti).Autentifikacija korištenjem navedenih
usluga moguća je samo kada se koriste moduli trećih strana ili proizvod Open-VPN
Access Server.
ˆTijekom provjere autentičnosti može se pokrenuti skripta na čiji standardni ulaz
potrebne podatke za provjeru autentičnosti. Na temelju njih skripta odlučuje hoće li
autentifikacija biti uspješna ili ne.
3.4 Enkripcija
OpenVPN šifrira prenesene podatke simetričnom šifrom, prema zadanim postavkama to je
Blowfish blok šifra s duljinom ključa od 128 bita. Može se postaviti bilo koja druga
simetrična šifra (i duljina ključa unutar raspona koju podržava data šifra) koju nudi
biblioteka OpenSSL.
3.5 Sustav
OpenVPN koristi i dodatne sigurnosne mehanizme na razini operativnog sustava:
ˆOmogućuje postavljanje pokretanja pod neprivilegiranim korisnikom (pod Unix sustavom
teme uglavnom korisničkenitko).Kada se OpenVPN pokrene, prvo izvodi
inicijalizaciju za koju su potrebna dopuštenja superkorisnika, a zatim, kada ta
prava više nisu potrebna da bi se OpenVPN sam pokrenuo, mijenja vlasnika
procesa u korisnika s ograničenim pravima. Ako je došlo do uspješnog napada
na OpenVPN proces, napadač bi dobio samo prava neprivilegiranog korisnika u
sustavu, a ne superkorisnika.
ˆSprječava pohranjivanje prenesenih podataka i ključeva za šifriranje izvan radne memorije
(spremi na disk,zamijeniti).
22
ˆNudi mogućnost zaključavanja podstabla datotečnog sustava postavljanjem
navedeni direktorij kao korijen sustava (chroot).Ako napadač dobije kontrolu nad
OpenVPN procesom, on dobiva pristup samo danom podstablu datotečnog
sustava i stoga ne može dobiti ili modificirati podatke izvan njega.
3.6 Mreža
OpenVPN implicitno koristi UDP protokol za prijenos podataka, OpenVPN poslužitelj sluša
na portu 1194. Ako je potrebno, može se postaviti korištenje TCP protokola, ali ako za to ne
postoje razlozi (npr. blokiranje UDP prijenosa na određenom portu od strane vatrozid),
povoljnije je koristiti UDP protokol. Doista, s točke gledišta od kraja do kraja, OpenVPN
implementira logičku vezu na drugom ili trećem sloju ISO/OSI modela, gdje se ne
pretpostavlja da će osigurati pouzdanost prijenosa podataka ili urediti redoslijed paketa .
Te stvari rješava samo transportni sloj, ili čak i viši slojevi. Stoga je korištenje UDP-a za
stvaranje nepouzdanog prijenosnog puta u redu s gledišta podataka koji se prenose kroz
SSL tunel (ako se TCP veza prenosi kroz tunel, ona sama po sebi osigurava pouzdanost, ako
je UDP veza, pouzdanost nije potrebna ili njime rukuju viši slojevi).
Ako se podaci SSL kanala prenose TCP protokolom, može doći do značajnog
pada brzine prijenosa podataka tijekom prijenosa podataka TCP protokolom ovim
kanalom (tzv.kolaps TCP-a) [16]. Ovaj fenomen je uzrokovan pouzdanim
mehanizmom isporuke TCP protokola, koji ne pretpostavlja da se drugi takvi
mehanizmi koriste na nižim razinama. Paketi su numerirani redoslijedom, a njihov
primitak potvrđuje primatelj. Ako pošiljatelj ne primi potvrdu da je dani paket
isporučen unutar navedenog vremena, pretpostavlja se njegov gubitak zbog
zagušenja linije i stavlja paket u red čekanja za ponovno slanje. Ali prije toga čeka
određeno vrijeme (podešeno timerom) kako linija ne bi bila preopterećena. Ako se
gubitak paketa ponavlja, tajmer se povećava (povećanje je eksponencijalno). Ako
dođe do prekida rada, TCP odgovara na podatkovnoj vezi SSL kanala povećavajući
vrijeme čekanja prije slanja i ponovnog slanja paketa. U slučaju da je vrijednost
vremena čekanja za TCP vezu koja se prenosi unutar kanala niža, iz toga nužno
slijedi da paket nije isporučen, da je u redu za slanje i da se mjerač vremena
povećava. To će uključivati više zahtjeva za ponovni prijenos TCP veze unutar SSL
kanala nego što vlastita TCP veza SSL kanala može obraditi, a to može rezultirati
ukupnim usporavanjem ili prekidom veze.
OpenVPN veza također se može implementirati putem HTTP ili SOCKS proxy
poslužitelja. Prilikom postavljanja TCP prijenosa podataka, OpenVPN nudi opciju dijeljenja
porta s drugom aplikacijom (podržava HTTP i HTTPS protokole). Ako trebate OpenVPN
23
poslužitelj je slušao na određenom portu (na primjer, 80 ili 443) - obično zbog
filtriranja prometa na drugim portovima - au isto vrijeme neka druga aplikacija (na
primjer, web poslužitelj) mora raditi na istom portu, ovo problem se može riješiti
dijeljenjem porta. Aplikacija koja dijeli port mora biti postavljena da sluša drugu IP
adresu ili port, a OpenVPN tada sluša izvorni port. Na zahtjevu za dolaznu vezu,
procjenjuje sadržaj paketa i ako ne otkrije podatke o OpenVPN vezi, prosljeđuje
ovaj paket aplikaciji s kojom dijeli port.
Ako je potrebno, moguće je koristiti limitator brzine u OpenVPN (oblikovatelj)te postavite
maksimalnu brzinu prijenosa podataka putem VPN veze. Ograničenje brzine moguće je samo u
jednom smjeru u jednom trenutku, ako je potrebno ograničiti brzinu u oba smjera, potrebno je
postaviti ograničenje za svaku stranu VPN veze posebno.
Podaci koji se prenose putem VPN veze mogu se komprimirati pomoću algoritmaOZO (oznaka
je izvedena iz imena njegovih tvoraca –Lempel, Ziv, Oberhumer).OpenVPN osigurava (osim ako
takvo ponašanje nije isključeno u konfiguraciji) da je kompresija prilagodljiva. To znači da
OpenVPN povremeno analizira uzorke prenesenih podataka i, u slučaju da se kompresija u tom
trenutku ne isplati (prilikom prijenosa nekompresibilnih ili već komprimiranih podataka),
privremeno isključuje kompresiju (dok na temelju sljedećeg uzorka podataka ne izvrši
kompresiju procjenjuje da se kompresija isplati ponovno koristiti).
24
Naziv TAP sučelja izveden je iz izrazadodirniteizražavajući izravnu (fizičku) vezu
s mrežom (analogija, na primjer, s načinom na koji su stanice spojene na Ethernet
10Base-5). TAP sučelje podržava Layer 2 (linijski) prijenos i emulira Ethernet sloj.
Tako se može implementirati VPN veza, logično simulirajući izravnu vezu krajeva
VPN tunela na Ethernet razini.
Obično je praktičnije koristiti TUN sučelje, jer ih dijeljenjem na više podmreža smanjuju
emitiratidomene (dijelovi mreže u kojima se podaci mogu slati višesmjerno, tj. do svih
povezanih stanica) i na taj način smanjiti opterećenje VPN veze. Još jedna prednost
povezivanja na 3. sloju može biti bolja podjela povezanih stanica u smislu podjele raspona
adresa ili ograničavanje pristupa različitim dijelovima mreže vatrozidom. Naprotiv,
implementacija veze na 2. sloju je neophodna ako se tunelom želi osigurati komunikacija
aplikacija koje za svoju funkciju koriste emitiranje (dijeljenje u MS Windows mrežama bez
WINS ili Samba poslužitelja, starije igre s podrškom za igranje preko mreža itd.) [14] .
25
3.7 Konfiguracija
26
prvenstveno o generiranju ključeva ili certifikata, ili poništenje postojećeg
certifikata. U te svrhe OpenVPN instalacija sadrži skup skripti (lako-rsa)koji gore
navedene radnje čine bržima i lakšima za korištenje.
27
više veza odjednom (s mogućnošću automatskog povezivanja nakon pokretanja GUI-ja),
postavke povezivanja mogu se uređivati u uređivaču teksta. Nudi dijaloške okvire za unos
lozinke prilikom autentifikacije na OpenVPN poslužitelju ili za dešifriranje privatnog ključa i
druge značajke. Međutim, OpenVPN GUI nije razvijen od 2006., tako da se ovaj projekt ne može
smatrati obećavajućim.
Projektom su riješeni nedostaci OpenVPN GUIopenvpn-gui (https://sourceforge. net/
projekti/openvpn-gui)a također dodatno proširuje opcije za postavljanje i kontrolu
OpenVPN klijenta pod Windows OS-om.
Od GUI za Linux, najznačajniji je dodatak za OpenVPN podršku u upravitelju
mrežnih vezaUpravitelj mreže Gnome,što je zadano u okruženju Gnome. U KDE
okruženju, raznim VPN vezama (uključujući OpenVPN) može se upravljati pomoću
alataKVpnc.Nudi relativno široke mogućnosti konfiguracije i, između ostalog,
čarobnjaka za postavljanje VPN veze, koji može biti koristan alat za manje
napredne korisnike.
28
4 OPENVPN PRISTUPNI POSLUŽITELJ
OpenVPN pristupni poslužiteljprodužava se, plaća se1verzija OpenVPN-a koju je
razvio OpenVPN Technologies Inc. [10]. Predstavlja složenu aplikaciju koja sadrži
OpenVPN poslužitelj i web sučelje za jednostavnu administraciju poslužitelja i
pristup klijentu. Osim sučelja za ubrzavanje i pojednostavljenje upravljanja, nudi i
druge opcije koje nisu dostupne u verziji OpenVPN-a za zajednicu ili su dostupne
samo pri korištenju dodataka trećih strana. Open-VPN Access Server je po svojoj
prirodi usmjeren na korištenje u tvrtkama ili drugim organizacijama u kojima se
očekuje pristup većeg broja klijenata, čemu je preporučljivo prilagoditi sustav
upravljanja.
U usporedbi s verzijom OpenVPN-a za zajednicu, Access Server također nudi izvornu
podršku za autentifikaciju putem LDAP protokola (uklj.Aktivni direktorij)ili RADIJUS. Dizajniran je
da osigura dostupnost čak i u slučaju kvara jednog poslužitelja - omogućuje replikaciju
konfiguracije na sekundarni OpenVPN poslužitelj putem sigurnog kanala pomoću protokolaSSH
(sigurna ljuska)i dijeljenje IP adrese između dva poslužitelja. Svaki od poslužitelja ima svoju IP
adresu, a uz to je uspostavljena i jedna zajednička (virtualna) na kojoj je dostupan Open-VPN
poslužitelj. U normalnim okolnostima, primarni poslužitelj radi pod ovom adresom, au slučaju
njegovog kvara, sekundarni poslužitelj preuzima ovu adresu, ova funkcionalnost koristi
protokolUCARP (Userland Common Address Redundancy Protocol).
Access Server nudi i opće opcije za postavljanje OpenVPN poslužitelja (tako
da ga nije potrebno ručno konfigurirati uređivanjem konfiguracijskih datoteka)
i upravljanje korisnicima (dodavanje, uklanjanje, blokiranje, dijeljenje u grupe
itd.). Pristupi korisnika VPN mreži i web sučelju se bilježe i mogu se
pregledavati putem web sučelja.
Sa gledišta klijenta, Access Server nudi klijentski softver koji se može preuzeti za OS
Windows i Mac OS X putem web sučelja (nakon prijave). Klijent za Linux nije ponuđen,
ali web sučelje nudi poveznicu na web stranicu tvrtke, gdje su dostupne upute za
instaliranje klijentskog softvera. Kompletne generirane konfiguracijske datoteke
također se mogu preuzeti s web sučelja (sadrže konfiguracijske parametre kao i
odgovarajuće certifikate i privatni ključ), bilo specifične za određenog prijavljenog
korisnika ili opću konfiguracijsku datoteku koju mogu koristiti svi korisnici. Na ovaj
način korisnik se može jednostavno spojiti i s računala na kojem do sada nije koristio
OpenVPN, ako ima potrebne dozvole.
1OpenVPN se može besplatno preuzeti s web stranice tvrtke, probna verzija sadrži licencu za
istovremeno povezivanje dva klijenta s poslužiteljem. Veći broj istovremeno povezanih klijenata moguć je
samo uz odgovarajuće produženje licence (trenutno je minimalno 10 klijenata za kupnju licence).
29
5 LABORATORIJSKA ZADATA
30
5.2 Predmet laboratorijskog zadatka
31
Prilikom konfiguriranja unosa, temelji se na oglednim konfiguracijskim datotekama
isporučenim s OpenVPN-om. Prednost je u tome što te datoteke sadrže potrebne upute za
konfiguraciju (od kojih se u ovom slučaju koristi samo dio) i, posebno, relativno iscrpne
komentare (na engleskom), što poboljšava orijentaciju i možda bolje pojašnjava značenje nekih
postavki. Osim toga, nakon obavljenih zadataka zadanih u laboratorijskim vježbama (ako im
preostane vremena), studenti mogu dalje istraživati druge opcije konfiguracije i njihov učinak
na ponašanje mreže.
Sažetak pojedinačnih točaka zadatka je sljedeći:
ˆIspitivanje zadanog stanja mreže i prisutnih ograničenja ˆ
Uspostavljanje certifikacijskog tijela, generiranje ključeva i certifikata
ˆPostavke OpenVPN poslužitelja ˆPostavke OpenVPN klijenta
5.2.3 Topologija
Virtualni strojovpn-klijentsadrži sučeljeeth0 (IP adresa 192.168.1.2/24) preko koje
se spaja na sučeljeeth1strojeviovpn-poslužitelj (IP adresa 192.168.1.1/24). Mašina
ovpn-poslužiteljsadrži i sučeljeeth0 (njegovu adresu dinamički dodjeljuje
virtualizacijski alat VMWare Player), postavlja se kao zadani pristupnik, a prijevod
adrese primjenjuje se na podatke koje usmjerava ovaj stroj. Nadalje, ovdje se
primjenjuje vatrozid koji ograničava promet prema Internetu sa strojaovpn-klijent
kroz sučeljeeth1strojeviovpn-poslužitelj.
Topologija virtualne mreže prikazana je na slici 5.1. Puna linija između aplikacija na
strojuovpn-klijenti Internet karakterizira zadanu situaciju kada je komunikacija s
vanjskom mrežom moguća, ali vatrozid dopušta usluge samo na određenim
priključcima (ovdje je prikazana zabrana usluga osim za DNS, NTP, HTTP i HTTPS
protokole, koji inače rade na UDP portovi 53 i 123 i TCP portovi 80 i 443, ICMP protokol
je također omogućen).
Veza označena isprekidanom linijom predstavlja situaciju nakon što su Open-VPN
klijent i poslužitelj operativni i njihova veza - u ovoj situaciji sav promet dolazi sa stroja
ovpn-klijentusmjeren na laboratorijsku mrežu ili internet preko strojaovpn-poslužiteljbez
granica. Komunikacija je omogućena VPN vezom na mrežnom sloju koja koristi prolazni
port na vatrozidu.
32
Div. 5.1: Topologija virtualne mreže u laboratorijskom zadatku
5.3 Provedba
33
5.3.2 Mreža, vatrozid
# !/bin/bash
ipt="/sbin/iptables"
$ipt -F
$ipt -F -t nat
34
ovpn-poslužitelj)UDP promet s odredišnim priključkom 53 ili 123 ili ICMP
podacima.
35
6 IZRADA LABORATORIJSKOG ZADATKA
36
usmjeravat ćemo klijente kroz VPN poslužitelj, možemo bolje kontrolirati gdje
klijenti imaju pristup. S druge strane, možemo im omogućiti i potpuni pristup
Internetu ako im je, primjerice, pružatelj internetske veze zabranio korištenje
samo određenih usluga. Ovu situaciju ćemo obraditi u zadatku.
6.1.3 OpenVPN
Postoje različiti načini implementacije VPN-a. Jedna od tih opcija je korištenje
OpenVPN paketa čijom konfiguracijom ćemo se baviti u ovoj vježbi.
37
To je besplatan softver otvorenog koda izgrađen na temelju OpenSSL kriptografske
biblioteke. Osim dostupnosti i otvorenosti, OpenVPN ima i druge prednosti, posebice u
području sigurnosti. Filozofija OpenVPN-a je ne duplicirati funkcije (odnosno koristiti
komponente koje su već kreirane za zadanu namjenu i testirane), osigurati najvišu
moguću razinu sigurnosti i istovremeno pružiti visoku fleksibilnost.
OpenVPN se može koristiti za povezivanje dva uređaja ili mreže u peer-to-peer
načinu rada (spoj u dvije točke), kao i više mreža/uređaja u načinu rada klijent-
poslužitelj. Veza ne mora biti kriptirana, ali se obično koristi enkripcija - može biti i
enkripcija simetričnim ključem (tj. isti ključ na svim čvorovima koji pružaju VPN vezu) i
asimetrična enkripcija temeljena na infrastrukturi javnih ključeva (PKI, Infrastruktura
javnih ključeva). Komunikacija između mreža može se odvijati na linijskom sloju ili na
mrežnom sloju (preporuča se korištenje veze na mrežnom sloju ako nema razloga za
korištenje veze na linijskom sloju - npr. potreba za pokretanjem aplikacija u mreže koje
za komunikaciju koriste emitiranje i rade samo unutar jedne podmreže).
38
međutim, u usporedbi sa simetričnim (u kojem i pošiljatelj i primatelj koriste isti ključ
za šifriranje i dešifriranje) puno je zahtjevniji za računalnu snagu i stoga se koristi
samo u fazi uspostavljanja veze. Zatim će se uspostaviti sigurni zajednički ključ (za to
se koristi Diffie-Hellmanov mehanizam) s kojim se daljnja komunikacija simetrično
šifrira. Radi povećanja sigurnosti, ovaj se ključ može promijeniti tijekom prijenosa
nakon određenog vremenskog intervala.
PKI infrastruktura temelji se na korištenju asimetrične kriptografije, certifikata i
pouzdane treće strane. Certifikat je skup informacija o svom vlasniku (npr. ime,
organizacija, geografski podaci) i njegov javni ključ, nakon čega slijedi digitalni potpis
pouzdane treće strane (otisak prsta – hash podataka šifriranih privatnim ključem
pouzdane Treća strana). Ako imamo javni ključ treće strane od povjerenja, možemo ga
upotrijebiti za provjeru valjanosti certifikata, a time i identiteta subjekta koji dokazuje
(naravno, ovaj entitet također mora znati privatni ključ povezan s certifikatom) .
6.2 Zadaci
ˆProvjerite zadani status mreže, posebno na strojuovpn-klijent.
ˆPostavite CA, generirajte certifikate i privatne ključeve za stroj
ovpn-poslužiteljiovpn-klijent.
ˆPostavite OpenVPN na oba računala i uspostavite VPN vezu između njih. ˆIstražite
kako se ponašanje mreže promijenilo u odnosu na zadane postavke.
39
Div. 6.3: Topologija virtualne mreže
40
6.3.2 Pokretanje virtualnih strojeva
Pokrenite VMWare u dvije instance. Pokrenite virtualni stroj u jednom od njih ovpn-
poslužitelj,u drugomovpn-klijent.Nakon pokretanja operativnog sustava, prijavite se
na strojeve - korisničko ime jestudent,zaporkastudent.Na svakom od strojeva
pokrenite terminal (konzolu) s kojim ćete konfigurirati stroj.
cd /etc/openvpn
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 easy-rsa cd
easy-rsa
41
2. U uređivaču teksta (npr.vim, nano)otvorite datotekuvars,koji sadrži varijabilne postavke za
skripte koje se koriste za generiranje ključeva. Potražite retke u kojima su postavljene
vrijednosti varijabliKEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL (nalaze
se na kraju datoteke). Varijable su unaprijed postavljene na zadane vrijednosti, sadrže
identifikacijske podatke CA-a, odnosno državu, dio države (regiju) i grad u kojem se CA
nalazi, kao i naziv organizacije i kontakt za CA administratora. Postavite varijable na
odgovarajuće vrijednosti, na primjer ovako:
izvoz KEY_COUNTRY="CZ"
export KEY_PROVINCE="Južna Moravska regija"
export KEY_CITY="Brno"
izvoz KEY_ORG="FEKT VUT" izvoz
KEY_EMAIL=" admin@moje-ca.cz "
izvor ./vars
. /čisto-sve
. /izgradnja-ca
. /build-key-server poslužitelj
42
i ponovno unesite tražene podatke vezane uz certifikat OpenVPN poslužitelja.
Ostavite unaprijed ispunjene vrijednosti, kao vrijednost organizacijske
jedinice koju možete ponovno ispuniti, npr.UTKOili ostavite stavku praznu.
Skripta će tražiti bilo koju lozinku (izazovna lozinka)opet ostavite prazno
(zaštita ključa lozinkom je nepoželjna za poslužitelj zbog prirode korištenja)!
Posljednja upitana stavka je izborni naziv tvrtke (izborni naziv tvrtke) –
ostavite prazno ili unesite vrijednost po svom izboru. Na kraju samo potvrdite
potpisivanje certifikata za poslužitelj unosom slovagi pritiskom na tipku Enter
(potvrda je potrebna skripti u dva koraka, pa ih izvedite dva puta).
. /build-key ovpn-client
. /build-dh
cd /etc/openvpn/easy-rsa/ključevi
cp ca.crt poslužitelj.crt poslužitelj.ključ dh1024.pem /etc/openvpn
43
izraditi ručno, međutim, praktičnije je i brže koristiti oglednu konfiguracijsku
datoteku (/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz)i
modificirati ga kako bi odgovarao našim potrebama. Datoteku je potrebno
kopirati u OpenVPN konfiguracijski direktorij i raspakirati:
cd /etc/openvpn
cp /usr/share/doc/openvpn/examples/sample-config-files/\
server.conf.gz ./
gunzip server.conf.gz
44
ˆkorisnikNA,skupinaG –Omogućuje pokretanje OpenVPN-a pod inicijalizacijom
dati korisnikNAi grupaG.Poslužitelj počinje s pravima superkorisnika,
nakon inicijalizacije se može odreći tih prava i raditi pod običnim
korisnikom/grupom, što je praktičnije sa sigurnosne točke gledišta.
Aktiviraj (odkomentiraj) ove stavke.
ˆcomp-lzo –Uključuje kompresiju prenesenih podataka LZO algoritmom, pri čemu
omogućuje povećanje propusnosti VPN veze pod određenim okolnostima. ˆ
statusRUTA –Definira put do datoteke u kojoj će biti moguće pratiti
Status OpenVPN poslužitelja. Postavite ovdje /var/log/openvpn-status.log.
Spremite promjene napravljene u datoteci.
3. Sada kada je konfiguracija dovršena, preostaje samo pokrenuti OpenVPN poslužitelj:
cd /etc/openvpn
cp /usr/share/doc/openvpn/examples/sample-config-files/\
klijent.conf ./
daljinski 192.168.1.1 53
ˆcertifikat, ključ –Kao i kod poslužitelja, ovo uključuje postavljanje certifikata i
privatni ključ, ali ovaj put za OpenVPN klijent:
45
certifikat ovpn-client.crt
ključ ovpn-client.ključ
manje /var/log/syslog
2. Saznajte kako su se dostupna mrežna sučelja i usmjeravanje promijenili na
klijentu. Pokušajte pratiti put do poslužitelja koji se nalazi na Internetu i
usporedite ga s opažanjem koje ste napravili na početku vježbe (upotrijebite
isti postupak).
3. Testirajte funkcionalnost servisa na klijentu koji nisu radili u zadanom stanju
mreže (npr. FTP).
4. Na poslužitelju prikažite informacije o povezanim OpenVPN klijentima i proučite
informacije:
manje /var/log/openvpn-status.log
46
7 INFORMACIJE ZA VJEŽBE
7.2.1 server.conf
U konfiguraciji OpenVPN poslužitelja (u datoteci /itd/openvpn/server.conf)sljedeće stavke je
potrebno izmijeniti/dodati u usporedbi sa zadanim stanjem:
luka 53
poslužitelj 192.168.10.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
korisnik nitko
grupa nogroup
status /var/log/openvpn-status.log
7.2.2 client.conf
U konfiguraciji OpenVPN klijenta (u datoteci /itd/openvpn/client.conf)sljedeće stavke
treba promijeniti/postaviti prema zadanim postavkama:
daljinski 192.168.1.1 53
korisnik nitko
grupa nitko
certifikat ovpn-client.crt
ključ ovpn-client.ključ
47
7.3 Mogući problemi
7.3.1 Poslužitelj
7.3.2 Klijent
Kao i na strani poslužitelja, dobra polazna točka za pronalaženje uzroka problema je
zapisnik sustava. Nadalje, preporučljivo je to provjeriti
ˆpotrebni parametri su ispravno postavljeni u konfiguracijskoj datoteci prema
dodjela zadatka,
ˆsučelje preko kojeg je klijent povezan s poslužiteljem (eth0),je aktivan i veza između
virtualni strojevi (u rasponu od 192.168.1.0/24) rade (npr. nije došlo do slučajnog
resetiranja).
48
7.4 OpenVPN pitanja i odgovori
Kako bi se osiguralo da je student razumio gradivo o kojem se raspravlja u ovoj
vježbi, ili za njegovo dublje promišljanje problema, mogu mu se postavljati pitanja
vezana uz vježbu. Slijedi popis predloženih pitanja koja bi se mogla koristiti u tu
svrhu, s odgovorima koji ukazuju na smjer u kojem bi učenikovo razmišljanje o
problemu trebalo ići.
ˆKoji je port odabran za rad OpenVPN poslužitelja i zašto? Bi li bilo od koristi za-
hoto port problematičan u praksi - ako da, pod kojim okolnostima?
Postavljen je UDP priključak 53 jer je to jedan od priključaka koji nije blokiran
na vatrozidu. Bilo bi moguće koristiti neki drugi port koji ne blokira (npr. TCP
80). U praksi bi korištenje UDP porta 53 bilo problematično ako bi DNS
poslužitelj također trebao biti pokrenut na istom računalu (port 53 se obično
koristi za DNS).
ˆZašto se UDP protokol koristi za prijenos podataka putem VPN veze? Može se koristiti
tcp protokol, bi li imao prednosti ili mane?
U zadanoj postavci OpenVPN-a koristi se nepouzdan UDP protokol (ova
postavka je preporučljiva) - njegova nepouzdanost ovdje nije problem, jer
VPN veza zamjenjuje nepouzdanu vezu s mrežom ili linijski sloj. Ako je
potrebno, pouzdanost se tada osigurava protokolima višeg sloja (osobito
TCP). Može se koristiti i TCP protokol za VPN tunel (ponekad je čak i potrebno
- ako nije dostupan, npr. zbog blokade na vatrozidu, odgovarajući UDP port).
Međutim, potencijalno bi moglo biti problema s performansama s VPN
vezom, budući da će pouzdanost osigurati i vanjska veza VPN tunela i TCP
veza unutar tunela, a budući da se unutarnja veza oslanja na nepouzdan
prijenosni medij, može doći do problema.
ˆZa što se koristi parametar u konfiguraciji?comp-lzo?Utječe na protok podataka
postojanje VPN veze? Ako da, pod kojim okolnostima?
Parametar aktivira kompresiju prenesenih podataka pomoću LZO algoritma. To
može rezultirati povećanjem propusnosti (ne bi se trebalo smanjivati - ako
OpenVPN otkrije da bi nakon kompresije trebalo prenijeti više podataka nego bez
kompresije, kompresija se neće koristiti). Međutim, uvjet je da se prenose
komprimirani podaci (po mogućnosti podaci koji još nisu komprimirani), npr. kod
prijenosa JPEG ili MPEG podataka, propusnost neće biti toliko veća nego npr. kod
prijenosa teksta.
ˆPostoje ograničenja u izboru raspona adresa iz kojeg se adrese dodjeljuju
za VPN vezu? Što je dobro uzeti u obzir u ovom slučaju (razmislite odakle
se VPN klijenti mogu spojiti)?
Naravno, raspon adresa ne smije biti u sukobu s bilo kojim korištenim rasponom
49
u mreži. Također je dobro razmotriti koji se rasponi adresa često koriste na
usmjerivačima u domovima ili malim poduzećima, odakle se klijenti također
mogu povezati (obično, na primjer, 192.168.0.0/24). Iz toga slijedi da je
preporučljivo odabrati drugačiji raspon za VPN vezu (u ovoj vježbi preporučuje se
raspon 192.168.10.0/24).
ˆJe li korištenje asimetrične kriptografije potrebno za rad VPN-a? Ako je tako, zašto;
ako ne, ima li drugih opcija?
Upotreba asimetrične kriptografije nije nužna za funkcionalnost VPN-a. Može se
koristiti i simetrična kriptografija (na svim klijentima i poslužitelju koristi se isti ključ
za šifriranje) ili je moguć i rad bez enkripcije (iako u praksi potpuno neprikladno).
Asimetrična kriptografija je složenija za upravljanje od simetrične, ali ima značajne
prednosti (međusobna autentifikacija klijenta i poslužitelja ili situacija kada je jedan
od ključeva ugrožen - samo opozovite odgovarajući klijentski certifikat i izdajte novi,
intervencija se tiče samo jedan stroj).
ˆČemu služe parametri?korisnikiskupinau OpenVPN konfiguraciji?
Ovi parametri određuju s kojim dopuštenjima (pod kojim korisnikom i
grupom) će se OpenVPN demon pokrenuti nakon inicijalizacije (u početku se
pokreće s pravima superkorisnika). Ovo je sigurnosni dizajn - u slučaju da
demon sadrži pogrešku i da je ugrožen, napadač će dobiti pristup sustavu
samo s privilegijama običnog korisnika, a ne baš superkorisnika.
50
8 TESTIRANJE, MOGUĆE DALJNJE PROŠIRENJE
8.1 Ispitivanje
Zadatak je testiran kako bi se provjerila ispravnost teksta zadatka, te je na temelju
ovog testa tekst zadatka dodatno modificiran kako bi se odrazili uočeni nedostaci.
Nadalje, funkcionalnost virtualnih strojeva (i cjelokupnog zadatka) testirana je u
različitim okruženjima i to pod Ubuntu Linux 11.10 OS-om u VMware Playeru 4.0.2 i
Windows 7 Professional 4.0.3. Proveden je i test na školskom računalu sa sustavom
Windows XP Professional, no pokazalo se da stvorene slike virtualnog računala
zahtijevaju noviju verziju VMware Playera od instalirane verzije.
Test na školskom stroju u okruženju Ubuntu/VMware 4.0.3 pokazao se bez problema.
Dakle, nakon instaliranja trenutne verzije VMware-a na školske strojeve, implementacija bi
se trebala odvijati bez ikakvih problema.
51
najbolje će pokazati mogu li učenici obraditi veći opseg gradiva u jednoj vježbi
ili, naprotiv, postojeća koncepcija zadatka sadrži područja koja će učenicima
biti teška.
52
9 ZAKLJUČAK
Virtualne privatne mreže su često korišten element u izgradnji mreža. Oni osiguravaju
povezivanje udaljenih mreža ili općenito pristup udaljenim mrežama, u principu oponašaju
situaciju kada su strane koje komuniciraju povezane izravno.
Postoji niz tehnologija koje se mogu koristiti za implementaciju VPN-a, a jedna
od njih je OpenVPN. To je otvorena i slobodno dostupna tehnologija s vrlo širokim
mogućnostima primjene. U usporedbi s drugim tehnologijama, ima neke
nedostatke, ali i mnoge prednosti, koje treba uzeti u obzir u slučaju postavljanja
VPN tehnologija u mrežu ili pri prelasku s postojeće tehnologije na drugu.
Filozofija OpenVPN-a je jednostavnost i posljedična sigurnost, uz zadržavanje
raznih opcija postavki; Tijekom dizajna naglašena je i praktična upotrebljivost.
Postoje dodaci trećih strana za OpenVPN koji proširuju mogućnosti prilagodbe,
konfiguracije i upravljanja. Postoji i komercijalna verzija - OpenVPN Access Server, koja je
namijenjena tvrtkama i organizacijama i pruža opsežan paket za jednostavno upravljanje i
postavljanje OpenVPN poslužitelja, uključujući upravljanje korisnicima.
Osim opisa karakteristika OpenVPN-a, u ovom se radu radi i na izradi laboratorijske
vježbe za upoznavanje studenata s virtualnim privatnim mrežama tipa OpenVPN.
Vježba je osmišljena imajući na umu početne uvjete; fokusira se na praktično
upotrebljivu situaciju u kojoj se OpenVPN klijent i poslužitelj koriste kako bi se zaobišla
mrežna ograničenja (blokiranje usluga vatrozidom).
Uključuje i stvarni zadatak (uključujući teorijski uvod), kao i informacije za polaznike
i slike virtualnih strojeva na kojima će se obuka odvijati. Unos je uspješno testiran na
virtualnim računalima te je osigurana ispravnost svih navedenih postupaka. Virtualni
strojevi testirani su i na školskim računalima, problematična je bila verzija instaliranog
softvera VMware Player; nakon instaliranja trenutne verzije, implementacija posla bi
trebala biti besprijekorna.
Zadatak se može koristiti unutar kolegijaDizajn mreže, upravljanje i sigurnost; u
sklopu rada predložene su i moguće izmjene i proširenja, zadatak može poslužiti i
kao temelj za druge laboratorijske zadatke slične prirode.
53
KNJIŽEVNOST
[1] Virtualna privatna mreža. UWikipedia: besplatna enciklopedija [na liniji]. Sv.
Petersburg (Florida) : Zaklada Wikipedia, 31. prosinca 2004., zadnja izmjena 1.
studenog 2011. [cit. 2011-11-12]. Dostupno na WWW:
<http://en.wikipedia.org/wiki/Virtual_private_network>.
[4] Protokol tuneliranja razine 2. UWikipedia: besplatna enciklopedija [na liniji]. Sv.
Petersburg (Florida) : Zaklada Wikipedia, 8. ožujka 2007., zadnja izmjena 8. ožujka
2007. [cit. 2011-11-13].
Dostupno na WWW: <http://en.wikipedia.org/wiki/L2TP>.
[5] IPsec. UWikipedia: besplatna enciklopedija [na liniji]. Sv. Petersburg (Florida) :
Zaklada Wikipedia, 8. ožujka 2002., zadnja izmjena 26. studenog 2011. [cit.
2011-11-28]. Dostupno na WWW: <http://en.wikipedia.org/wiki/IPsec>.
[6] Sigurnost transportnog sloja. UWikipedia: besplatna enciklopedija [na liniji]. Sv.
Petersburg (Florida) : Zaklada Wikipedia, 7. prosinca 2001., zadnja izmjena 22.
studenog 2011. [cit. 2011-11-23]. Dostupno na WWW:
<http://en.wikipedia.org/wiki/Transport_Layer_Security>.
[7] Protokol sigurnog tuneliranja utičnica. UWikipedia: besplatna enciklopedija [na liniji].
Sv. Petersburg (Florida) : Zaklada Wikipedia, 23. siječnja 2007., zadnja izmjena 4.
listopada 2011. [cit. 2011-12-01]. Dostupno na WWW:
<http://en.wikipedia.org/wiki/Secure_Socket_Tunneling_Protocol>.
54
[10]OpenVPN Access Server : Vodič za administratore sustava [na liniji].
Pleasanton : OpenVPN Technologies, 2010 [cit. 2011-11-30]. Dostupno na
WWW: <http://www.openvpn.net/images/pdf/OpenVPN_Access_Server_
Sysadmin_Guide_Rev.pdf?Name=Value>.
[11]OpenSSL : Alati otvorenog koda za SSL/TLS [na liniji]. 2009 [cit. 2011-11-28].
Dostupno na WWW: <www.openssl.org>.
[13] HOSNER, Charlie.OpenVPN i SSL VPN revolucija [na liniji]. Bethesda : SANS
Institute, 2004 [cit. 2011-11-10]. Dostupno na WWW:
<http://www.sans.org/rr/whitepapers/vpns/1459.php>.
[14]OpenVPN [na liniji]. 2008 [cit. 2011-12-01]. KAKO DA. Dostupno na WWW:
<http://openvpn.net/index.php/open-source/documentation/howto.html>.
[16] TITZ, Olaf.Olaf Titz [na liniji]. 2001 [cit. 2011-12-01]. Zašto je TCP preko TCP-
a loša ideja. Dostupno na WWW: <http://sites.inka.de/bigred/devel/tcp-
tcp.html>.
55
POPIS SIMBOLA, KOLIČINA I KRATICA
3DES Trostruki standard enkripcije podataka
IP internetski protokol
56
MAC Kod za provjeru autentičnosti poruke
57
VPN Virtualna privatna mreža
58
POPIS PRILOGA
Ovaj rad uključuje sljedeće priloge u elektroničkom obliku koji su pohranjeni na
priloženom DVD-u:
ˆKomprimirane slike virtualnih strojeva za VMware okruženja ˆ
Tekst diplomskog rada u PDF formatu
ˆUnos laboratorijskog zadatka u OpenDocument formatu (LibreOffice Writer) ˆ
Informacije za praktičare u formatu OpenDocument (LibreOffice Writer)
59