ZAVOD ZA ELEKTRONIKU, MIKROELEKTRONIKU, RAČUNALNE I INTELIGENTNE SUSTAVE FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU
SIGURNOSNA STIJENA Matija Zeman SEMINARSKI RAD
Zagreb, 2006.
Sadržaj 1. Uvod................................................................................................................................. 1 2. Osnovne funkcije, vrste i izvedbe sigurnosne stijene....................................................... 2 2.1. Osnovne funkcije.................................................................................................................... 2 2.2. Vrste sigurnosnih stijena........................................................................................................ 3 2.2.1. Mosni filtar.................................................................................................................................... 2.2.2. Filtri paketa................................................................................................................................... 2.2.3. Inteligentni filtri paketa.................................................................................................................. 2.2.4. Aplikacijski posrednik....................................................................................................................
3 3 3 4
2.3. Izvedbe................................................................................................................................... 4
3. Arhitekture sigurnosnih stijena i njihova prometna pravila............................................... 5 3.1. Računalo izvan zaštićenog područja...................................................................................... 5 3.2. Računalo unutar zaštićenog područja.................................................................................... 6 3.3. Demilitarizirana zona.............................................................................................................. 7 3.4. Demilitarizirana zona s dvije sigurnosne stijene.....................................................................8
4. Ostvarenje sigurnosne stijene.......................................................................................... 9 4.1. Preporučene mjere zaštite......................................................................................................9 4.2. Osobna sigurnosna stijena................................................................................................... 10 4.3. Komercijalna ostvarenja....................................................................................................... 11 4.3.1. Cisco PIX.................................................................................................................................... 11 4.3.2. Check Point Firewall-1................................................................................................................ 11
4.4. Netfilter/iptables.................................................................................................................... 11 4.5. OpenBSD PF........................................................................................................................ 12 4.6. Ispitivanje sigurnosne stijene............................................................................................... 13 4.7. Ostali tipovi zaštite................................................................................................................13 4.7.1. Sustavi detekcije upada.............................................................................................................. 4.7.2. Honey – Pot, Net, Wall................................................................................................................ 4.7.3. Virtualne privatne mreže............................................................................................................. 4.7.4. Budućnost – DPI.........................................................................................................................
13 14 15 16
5. Praktični dio.................................................................................................................... 17 5.1. Teorijski uvod - IPsec........................................................................................................... 17 5.1.1. AH protokol................................................................................................................................. 5.1.2. ESP protokol............................................................................................................................... 5.1.3. IKE protokol................................................................................................................................ 5.1.4. Zaobilaženje utjecaja NAT-a.......................................................................................................
18 19 20 20
5.2. IPsec-Tools...........................................................................................................................21 5.2.1. Alat setkey.................................................................................................................................. 21 5.2.2. Alat racoon.................................................................................................................................. 22 5.2.3. Alat racoonctl.............................................................................................................................. 23
5.3. Roadwarrior scenarij.............................................................................................................24 5.3.1. Konfiguracija mreže.................................................................................................................... 25 5.3.2. Konfiguracija poslužitelja............................................................................................................. 25 5.3.3. Konfiguracija roadwarrior klijenta................................................................................................ 27 5.3.4. Uspostava veze.......................................................................................................................... 30 5.3.5. Windows XP klijent – ShrewSoft VPN Client............................................................................... 34
6. Zaključak........................................................................................................................ 42 7. Literatura........................................................................................................................ 43
1. Uvod Pojava širokopojasnog pristupa Internetu stvorila je izuzetno iskustvo administratora u računalnim mrežama. Brzi pristup je otvorio prostor mnogim inovacijama na području razmjene podataka, pristupa uređajima i drugim naprednim računalnim tehnologijama. Nažalost, ta tehnologija je također stvorila i lako dostupni put prema unutrašnjosti svake mreže, pa i svakog računala. Kako mreže postaju sve kompleksnije, postaju i napadači koji se pokušavaju infiltrirati u njih. Mrežna sigurnost više nije samo zaštita poslužitelja i radnih stanica. Danas ona zahtijeva detaljno razumijevanje mreže i spoznaju o ranjivostima mreže, kako u njenoj jezgri, tako i na njenim rubnim dijelovima. Kako su napadači postali sofisticiraniji, tako su se poboljšali i alati koje napadači koriste da bi se infiltrirali u mreže. Ti alati, većinom besplatni, dostupni su na različitim Web stranicama, te omogućuju i manje educiranim korisnicima da napadnu mreže. Danas napade na mreže izvode računalni početnici, ljuti kupci, bivši zaposlenici ili pak oni koji samo žele vidjeti što se sve može učiniti. Sve ove promjene su uzrokovale znatno otežavanje posla osiguranja mreža od napada. Čak je i broj uređaja koji se moraju štititi narastao. Administratori sigurnosti danas moraju odrediti da li se uopće radi o stvarnom napadu nekoga tko zna što radi, ili neki školarac isprobava novu programsku podršku za DoS (engl. denial of service) napade. Kako sigurnosna stijena (engl. firewall) postaje točka gušenja u mreži, ona definira čemu se vjeruje, a čemu ne. Nepovjerljivi dijelovi mreže su svi, od vanjske mreže (Interneta), pa čak i do pojedinih odjela u organizaciji, ovisno o arhitekturi cjelokupne mreže. Današnje sigurnosne stijene su evoluirale u više od same točke gušenja. Sadrže različita rješenja: sklopovska, programska, osobna, detekcije upada itd. Razvojem tehnologije, povećava se i broj mogućnosti koje sigurnosna stijena pruža korisniku.
1
2. Osnovne funkcije, vrste i izvedbe sigurnosne stijene 2.1. Osnovne funkcije Iako je razvojem tehnologije došlo do miješanja i varijacija u različitim funkcijama sigurnosne stijene, ona obično nudi korisniku slijedeće osnovne mogućnosti: ●
Očuvanje IP adrese i prosljeđivanje paketa
Gotovo svaka sigurnosna stijena se ponaša kao usmjernik, tako da odvojene mreže mogu međusobno komunicirati. Administratori se koriste ovom mogućnošću da bi stvorili podmreže. Nije nužno da sigurnosna stijena pruža uslugu NAT-a (engl. Network Address Translation), ali većina (uključujući i one implementirane na Linux-u) dozvoljava upotrebu ove usluge. ●
Diferencijacija mreža
Osnovna namjena sigurnosnih stijena je stvaranje granice između vaše i neke druge mreže. Sigurnosna stijena ne mora nužno biti na granici između lokalne mreže i Interneta, već se može pojaviti na i granicama između podmreža u nekoj lokalnoj mreži. ●
Zaštita od DoS napada, skeniranja i prisluškivanja
Sigurnosna stijena je točka kroz koju prolazi sav promet prema mreži i od mreže koju se štiti, stoga postoji mogućnost ograničavanja izabranih vrsta prometa. ●
Filtriranje IP adresa i vrata
Mogućnost dozvoljavanja ili odbijanja veze na osnovu IP adrese i vrata. Ovo je najlakše shvatljiva mogućnost koju nudi sigurnosna stijena. Filtriranje se vrši filtriranjem paketa ovisno o njihovoj izvorišnoj ili odredišnoj adresi ili pak vratima. ●
Filtriranje sadržaja
Posrednički poslužitelji (engl. proxy server) su obično jedini tip sigurnosne stijene koji kontrolira promet nadgledajući URL-ove i sadržaj stranica, stoga posrednički orijentirana sigurnosna stijena može blokirati i sadržaje do kojih ne dozvoljavamo pristup. ●
Redirekcija paketa
Ponekad postoji potreba da sigurnosna stijena prosljeđuje određene pakete prema određenom računalu u mreži ili prema određenim vratima. Npr. ukoliko na mreži postoji računalo s HTTP poslužiteljom, sigurnosna stijena može svaki ulazni paket koji zahtijeva pristup vratima 80 (HTTP) ili 443 (HTTPS) automatski proslijediti na spomenuto računalo, ne dozvoljavajući pristup na tim vratima drugim računalima u mreži. ●
Pojačana enkripcija i autentifikacija
Mogućnost autentifikacije korisnika, te enkripcije komunikacije između sebe i sigurnosne stijene na drugoj mreži. ●
Zapisivanje (engl. logging)
Jedna od značajnijih funkcija, ali često ignorirana. Omogućava zapisivanje i pregled svih detalja vezanih za pakete koji dolaze u sigurnosnu stijenu.
2
2. Osnovne funkcije, vrste i izvedbe sigurnosne stijene ●
Virusna provjera (engl. virus scanning)
Pretraga mrežnih podataka u svrhu nalaženja zloćudnog izvršnog koda. Ostale mogućnosti sigurnosne stijene na nižem nivou su: ●
prevođenje IP adresa (NAT) ●
SNAT – Static NAT – statička dodjela adresa
●
DNAT – Dynamic NAT – dinamička dodjela adresa
●
prevođenje vrata (PAT – engl. Port Address Translation)
●
maskerada (engl. masquerade) – kombinacija SNAT-a i PAT-a koja omogućuje pristup više računala na Internet koristeći jednu javnu IP adresu
2.2. Vrste sigurnosnih stijena 2.2.1. Mosni filtar Mosno flitriranje (engl. bridge filtering) je najniži oblik filtriranja prometa, jer se vrši na drugom sloju OSI modela. Filtriranje se oslanja na adrese lokalne mreže (MAC) koje su zapisane u tablici filtriranja i usmjeravanja. Osnovni algoritam koji se koristi kaže da, ukoliko je paket namijenjen odredištu koje se nalazi u lokalnoj mreži s koje je primljen, isti treba odbaciti. Ako taj uvjet nije zadovoljen, potrebno je potražiti odredište u tablici i paket proslijediti na odgovarajuće sučelje, a ako u tablici ne postoji odgovarajući zapis, paket treba proslijediti na sva sučelja osim onog na kojem je primljen.
2.2.2. Filtri paketa U osnovnom obliku, filtar paketa (engl. packet filter) odlučuje da li će proslijediti paket na osnovu informacija koje se nalaze u IP ili TCP/UDP zaglavlju. Filtar paketa je ovime definiran kao malo inteligentniji usmjernik. Vrši se ispitivanje pojedinog paketa i ne prati se trajanje TCP veza. Time je izgubljena mogućnost otkrivanja izmijenjenih paketa koji se pretvaraju da su dio postojeće veze postavljanjem ACK zastavice u TCP zaglavlju. Ovakav filtar vrši selekciju isključivo prema izvorišnoj i odredišnoj adresi i vratima, te prema tipu protokola. Glavna prednost ovog tipa filtriranja je brzina, no sigurnost je na niskom nivou. Funkcionalno, kontrola se vrši na trećem sloju OSI modela.
2.2.3. Inteligentni filtri paketa Inteligentni filtar paketa (engl. stateful inspection packet filter) je napredni oblik paketnog filtra koji je zadržao brzinu gore opisanog tipa, no i riješio neke njegove manjkavosti dodavanjem mogućnosti praćenja veza. Praćenje se ostvaruje na način da se oformi tablica veza. Primitkom prvog SYN paketa koji započinje TCP vezu stvara se novi zapis u tablici, a nadalje, pri primitku ACK paketa, određuje se da li paket zaista pripada već stvorenoj vezi. Praćenje je omogućeno i za UDP veze, bez obzira što UDP protokol nema koncept stanja. Problematičnije je praćenje veza FTP protokola, iz razloga što se osim spajanja korisnika na vrata 21 za komunikaciju otvara i veza na vratima 20 za prijenos podataka, pa se kontrola mora odvijati na višem sloju. Dakle, kontrola prometa se vrši na četvrtom sloju OSI modela. Ovaj tip filtriranja ostaje najbrži, te vrlo fleksibilan što se tiče novih protokola, stoga je danas, unatoč manjoj sigurnosti od aplikacijskog posrednika, baza implementacije najkorištenijih sigurnosnih stijena.
3
Sigurnosna stijena
2.2.4. Aplikacijski posrednik Aplikacijski posrednik (engl. application proxy) je u pravom smislu riječi granica između dviju mreža. Korisnička veza završava na posredniku, a odgovarajuća odvojena veza se stvara prema
Slika 2.1. Aplikacijski posrednik - slojevita obrada
odredišnom računalu. Veze se analiziraju sve do aplikacijskog sloja, kao na slici 2.1, što omogućava veliku sigurnost ali i puno veće vrijeme obrade nego kod prije navedenih filtra.
2.3. Izvedbe Zanimljiva podjela sigurnosnih stijena odnosi se i na samu izvedbu, te tako sigurnosna stijena može biti izvedena kao sklopovlje ili kao programska podrška: ●
Sigurnosna stijena izvedena kao sklopovlje
Najpoznatiji predstavnik ove izvedbe je Cisco PIX sigurnosna stijena. Ovaj tip je raspoloživ za sve veličine mreža, te se obično naziva uređajem sigurnosne stijene. Pokreće se na neovisnom operacijskom sustavu koji je namijenjen isključivo korištenju u ovu svrhu. ●
Sigurnosna stijena izvedena kao programska podrška
Najpoznatiji predstavnik je Check Point FW-1. Ovo je zapravo aplikacija koja se može koristiti na svim OS-ovima (Solaris, Windows i Linux), no većina funkcija se ne odvija na aplikacijskom sloju, već se provlače kroz sve slojeve OSI modela. Većina programskih izvedbi, danas se nalaze unutar kompletnih rješenja zaštite računala. Neka od najčešće korištenih su: ●
McAfee Personal Firewall
●
Norton Internet Security
●
Zone Labs ZoneAlarm
●
Kerio Personal Firewall
●
Tiny Firewall
●
PC-cillin Internet Security 4
3. Arhitekture sigurnosnih stijena i njihova prometna pravila U osnovnom obliku, sigurnosna stijena ima dva sučelja – unutarnje i vanjsko. Unutarnje je vezano na lokalnu mrežu, dok je vanjsko obično vezano na Internet. Tipično pitanje jednostavne arhitekture jest gdje postaviti određeno računalo u odnosu na poziciju sigurnosne stijene, a kako bi ga zaštitili, unatoč potrebi da bude otvoreno prema korisnicima. Za daljnje objašnjenje ovog pitanja, koristiti ćemo primjer u kome razmatrano računalo vrši funkciju Web poslužitelja.
3.1. Računalo izvan zaštićenog područja Razmatrano računalo se u ovoj arhitekturi mreže nalazi pozicionirano prema slici 3.1 i potpuno je izloženo napadima. U ovom slučaju posebnu pažnju treba obratiti na sigurnost operacijskog sustava koji pokreće računalo.
Slika 3.1. Web poslužitelj izvan zaštićenog područja
Arhitektura se obično sastoji od tzv. nepovjerljivog domaćina (engl. Bastion host) i sigurnosne stijene. Nepovjerljivi domaćin je računalo, tj. poslužitelj, koji se nalazi u krnjem tipu demilitarizirane zone (engl. demilitarized zone - DMZ) i na kojem se pokrenut minimalni broj servisa uz veliku pažnju na sigurnost samog računala. Koristi se kao gateway između unutarnje i vanjske mreže. Smatra se nepovjerljivim jer je potencijalna laka meta za napadača. Nepovjerljivi domaćin mora konstantno biti održavan posljednjim service pack-ovima, hotfix-evima i update-ima, te odvojen od unutrašnje mreže. Također poželjno je ukinuti sve korisničke račune vezane uz mrežu koja se štiti, da bi se izbjegao uvid napadača u strukturu unutarnje mreže. Treba napomenuti da ova arhitektura ne pruža pravi DMZ. Ulazni promet prema zaštićenoj mreži se odbacuje na sigurnosnoj stijeni bez obzira da li dolazi iz vanjske mreže ili s nepovjerljivog domaćina ukoliko nije započet na zahtjev računala u unutrašnjoj mreži, dok je sav izlazni promet dozvoljen. Mogući putevi podataka prikazani su na slici 3.2.
5
Sigurnosna stijena
Slika 3.2. Put podataka kod nepovjerljivog računala
3.2. Računalo unutar zaštićenog područja Razmatrano računalo se nalazi u unutarnjem segmentu mreže, prema slici 3.3, te sigurnosna stijena u promatranom primjeru dozvoljava pristup računalu samo na vratima HTTP (80) i HTTPS (443). No što će se dogoditi ukoliko napadač preko ovih vrata dođe u mogućnost ugroziti računalo i na
Slika 3.3. Web poslužitelj unutar zaštićenog područja
njemu dobije udaljeni pristup administratorskog korisnika? Tada napadač ima otvoren pristup cijeloj unutarnjoj mreži te ona postaje potpuno nezaštićena. Mogući putovi podataka prikazani su na slici 3.4. Sigurnosna stijena u ovom slučaju vrši kontrolu puta podataka na jednostavan način. Ovaj tip kontrole je baza za usluge kao što je ICS (engl. Internet Connection Sharing), te NAT koji vrše ponuđači Internet usluga. Promet je neograničen prema van, ali se odbijaju sve veze prema unutrašnjosti mreže, a koje nisu potekle iz unutrašnje mreže (započele na zahtjev računala u unutrašnjoj mreži). 6
3. Arhitekture sigurnosnih stijena i njihova prometna pravila
Slika 3.4. Put podataka jednostavne sigurnosne stijene
3.3. Demilitarizirana zona Odgovor na probleme spomenute u prethodnim poglavljima jest dodavanje još sučelja na sigurnosnu stijenu, kao što je prikazano na slici 3.5. U ovom slučaju, razmatrano računalo se nalazi u međuzoni kojoj se pruža razinu povjerenja na liniji između vanjske i unutarnje mreže.
Slika 3.5. Demilitarizirana zona
DMZ je zaštićena od vanjske mreže jednako kao i unutarnja mreža, ali je dodatno filtriranjem odvojena od unutarnje mreže. Jednako kao u prethodna dva razmatrana primjera i ovdje se pojavljuje problem u slučaju ispadanja sigurnosne stijene iz funkcije, iz razloga što je ona i dalje jedina točka razgraničenja naše mreže i napadača. Ulazni promet prema nepovjerljivom domaćinu u DMZ-u dozvoljen je preko sigurnosne stijene, dok se blokira promet sav prema unutarnjoj mreži, kako prikazuje slika 3.6. U ovom slučaju omogućena je dvosmjerna komunikacija između nepovjerljivog domaćina i unutarnje mreže, kao i sav izlazni promet iz unutarnje prema vanjskoj mreži.
7
Sigurnosna stijena
Slika 3.6. Put podataka u demilitariziranoj zoni
3.4. Demilitarizirana zona s dvije sigurnosne stijene Postavljanjem dvije sigurnosne stijene prema slici 3.7, unutarnje i vanjske, vršimo dodatno razgraničenje, i dobivamo dojam veće sigurnosti. Ponekad se postavljaju sigurnosne stijene
Slika 3.7. Demilitarizirana zona s dvije sigurnosne stijene
različitih proizvođača u nadi da ono što možda prođe kroz jednog, neće proći i kroz drugog, no mora se napomenuti da istraživanja pokazuju da je većina uspješnih napada izvedena zbog loše konfiguracije sigurnosne stijene, a ne zbog loše programiranih funkcija. Ova arhitektura u potpunosti implementira sve značajke DMZ-a, koji je odvojen i od unutarnje i od vanjske mreže. Ova se konfiguracija koristi najčešće kada je potrebno omogućiti više usluga prema vanjskoj mreži (e-mail, Web, DNS,...). Promet prema nepovjerljivom domaćinu može biti dozvoljen ili zabranjen po potrebi i od strane unutarnje i od strane vanjske mreže, a promet izvana prema unutarnjoj mreži može biti odbačen na vanjskoj sigurnosnoj stijeni, kako je prikazano na slici 3.8. Izlazni promet iz unutarnje mreže može biti dozvoljen ili zabranjen i prema DMZ-u i prema vanjskoj mreži. 8
Slika 3.8. Put podataka u demilitariziranoj zoni s dvije sigurnosne stijene
4. Ostvarenje sigurnosne stijene 4.1. Preporučene mjere zaštite Sigurnosna stijena nije jedini tip i kraj zaštite informacija i same mreže. Ipak, nužan je dio efektivnog pružanja sigurnosti. Lista koja slijedi je popis preporučenih mjera zaštite koje treba uzeti u obzir pri stvaranju optimalne i efektivne zaštite. ●
Zabraniti sav promet, te omogućiti samo nužne usluge
●
Isključiti sve nepotrebne usluge i programsku podršku na sigurnosnoj stijeni
●
Ograničiti broj aplikacija koje su pokrenute na sigurnosnoj stijeni da bi joj se omogućili resursi za obavljanje njegove osnovne funkcije. Uzeti u obzir pokretanje antivirusa, filtriranja sadržaja, usluge virtualnih privatnih mreža, DHCP i autentifikacijske programske podrške na drugim sustavima iza sigurnosne stijene
●
Ako je moguće, pokretati sigurnosnu stijenu kao poseban korisnik umjesto administratorskog korisnika
●
Redovito mijenjati lozinku administratora sigurnosne stijene. Lozinka mora biti minimalno 8 znakova duga, uz korištenje malih i velikih slova, brojeva i ostalih dozvoljenih znakova
●
Ne oslanjati se samo na filtriranje paketa. Koristiti inteligentno filtriranje i aplikacijske posrednike
●
Utvrditi filtriranje paketa bazirano na listi ranjivosti (The SANS Top 20 Internet Security Vulnerabilities [Literatura 14])
●
Napadač ne smije doći do fizičkog pristupa sigurnosnoj stijeni
●
Puno puta, sigurnosna stijena radi manje (ili više) nego što bi trebala. Držati konfiguraciju sigurnosne stijene što jednostavnijom, te eliminirati nepotrebna i 9
Sigurnosna stijena
redundantna pravila da bi sigurnosna stijena bila konfigurirana prema specifičnim potrebama ●
Osigurati da su sigurnosna pravila sigurnosne stijene odgovarajuća sigurnosnoj politici poduzeća
●
Uzeti u obzir korištenje slijedećih sustava zaštite u kombinaciji s sigurnosnom stijenom: IDS, antivirusna programska podrška, programska podrška za filtriranje sadržaja i autentifikacijski sustavi
●
Pokretati sigurnosnu stijenu na sigurnom i redovito održavanom računalu
●
Koristiti sigurnosnu stijenu u kombinaciji s usmjeriteljem pri spajanju na Internet radi bolje zaštite od DoS napada i uspješnih penetracija
●
Vršiti redovito osvježavanje i nadogradnju sustava, te testirati nove elemente u kontroliranim uvjetima
●
Koristiti sigurnosnu stijenu unutar mreže za stvaranje segmenata s različitim dozvolama
●
Omogućiti zapisivanje događaja i uzbune sigurnosne stijene
●
Koristiti odijeljeni sustav za zapisivanje događaja da bi se napadaču otežala izmjena zapisa koje je stvorila sigurnosna stijena
●
Redovito pregledavati zapise koje stvara sigurnosna stijena
●
Detaljno pregledati zapise koji ne izgledaju ispravno
●
Redovito pohranjivati zapise (npr. na CD-R medije)
●
Dokumentirati sve izmjene na sigurnosnoj stijeni i razloge zbog kojih je došlo do tih izmjena
●
Vršiti česte provjere ranjivosti. Novi sigurnosni propusti se pojavljuju svakodnevno. Vršiti provjere na svim sučeljima i u oba smjera
●
Osigurati da korisnici koriste antivirusnu programsku podršku i osobnu sigurnosnu stijenu na svim udaljenim računalima
●
Konstantno provjeravati sigurnosne objave proizvođača sigurnosne stijene
●
Redovito pohranjivati konfiguracijske datoteke sigurnosne stijene
●
Sigurnosnu stijenu je lako zaobići pri korištenju bežičnih mreža unutar privatne mreže. Osigurati korištenje antivirusne programske podrške i osobne sigurnosne stijene i na ovim računalima
4.2. Osobna sigurnosna stijena Osobna sigurnosna stijena je programska podrška instalirana na računalu krajnjeg korisnika koja kontrolira komunikaciju prema i od korisničkog računala, dozvoljavajući ili zabranjujući komunikaciju ovisno o sigurnosnim pravilima. Osobna sigurnosna stijena se razlikuje od konvencionalne, jer ne postoji sklopovska odijeljenost programske podrške za sigurnosnu stijenu i ostalih aplikacija na korisničkom računalu. Ova sigurnosna stijena štiti samo računalo na kojem je instalirana.
10
4. Ostvarenje sigurnosne stijene
Dodatna razlika od konvencionalne sigurnosne stijene je da osobna sigurnosna stijena ima mogućnost kontrolirati komunikaciju koristeći metodu postavljanja upita korisniku pri pokretanju nove veze, te odgovorima korisnika učiti pravila dozvole i zabrane prometa. Danas je sve češća upotreba osobne sigurnosne stijene u kombinaciji s centralnom sigurnosnom stijenom, tzv. enterprise rješenja, gdje centralna sigurnosna stijena vrši upravljanje osobnim sigurnosnim stijenama na pojedinim računalima u mreži.
4.3. Komercijalna ostvarenja 4.3.1. Cisco PIX Čitava serija uređaja sigurnosnih stijena namijenjena mrežama svih veličina i zahtjeva. Originalno dizajnirana kao prevoditelj mrežnih adresa, 1994. godine Cisco izbacuje ovu seriju pod nazivom PIX (engl. Private Internet Exchange). PIX sigurnosna stijena je sigurnosna stijena visokih performansi koja koristi stateful filtriranje paketa. PIX je zapravo zasebni uređaj jer koristi svoj OS i Intel-ovo sklopovlje, tj. nije baziran na Unix ili NT sustavima već na ASA (engl. Adaptive Security Algorithm) sustavu koji prati izvorišne i odredišne adrese, redne brojeve TCP paketa i dodatne TCP zastavice. Sav promet je kontroliran preko pravila koja obrađuju tablice veza. Pristup preko njega omogućen je samo vezama koje su eksplicitno dozvoljene ili su kontrolom pravila autorizirane.
4.3.2. Check Point Firewall-1 Ova sigurnosna stijena je vodeća na tržištu od svoje pojave 1994/95. Njeno GUI sučelje je bilo, i danas je, najbolje vizualno sučelje sigurnosne stijene. Kao i PIX, koristi stateful filtriranje. Njena fleksibilna arhitektura omogućava definiranje središnje sigurnosne politike koja se sa glavnog poslužitelja može proslijediti svim sigurnosnim točkama u mreži. Sustav je baziran na najnižem programskom nivou OS-a na kojem radi (NT ili Unix), te na njemu vrši analizu paketa koji se prosljeđuju višim slojevima tek u slučaju da poštuju sva definirana sigurnosna pravila.
4.4. Netfilter/iptables Netfilter je struktura unutar Linux kernela na koju se vežu moduli za filtriranje paketa. Program koji ga koristi je iptables, te se njime korisniku pruža kontrola filtriranja. Netfilter je jedinstven zbog mogućnosti djelovanja na slojevima L2, L3, L4 i L7. Svi paketi koji se kontroliraju kroz iptables prolaze kroz sekvencu tablica pravila. Svaka tablica namijenjena je posebnoj provjeri paketa, a kontrolirana je od strane lanca za filtriranje i izmjenu paketa. Postoje ukupno tri tablice. Mangle tablica je odgovorna za izmjenu QoS (engl. quality of service) dijelova u zaglavlju TCP paketa te se obično ne koristi u manjim sustavima ( lanci prerouting, postrouting, input, output, forward ). Filter tablica je odgovorna za filtriranje paketa i sastoji se od tri lanca pravila: ●
Forward chain (lanac za prosljeđivanje) – filtrira pakete upućene prema poslužiteljima koje sigurnosna stijena štiti
●
Input chain (ulazni lanac) – filtrira pakete koji su namijenjeni sigurnosnoj stijeni
●
Output chain (izlazni lanac) – filtrira pakete koje stvara sigurnosna stijena
11
Sigurnosna stijena
NAT tablica je odgovorna za prevođenje adresa (NAT) i ima tri lanca: ●
Prerouting chain (lanac predusmjeravanja) – mijenja odredišnu adresu paketa
●
Postrouting chain (lanac postusmjeravanja) – mijenja izvorišnu adresu paketa
●
Output chain (izlazni lanac) – NAT za pakete koje šalje sigurnosna stijena
Evo i primjera postavljanja pravila korištenjem iptables-a: # iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.15 –dport 80 -j ACCEPT
-p TCP –sport 1024:65535 /
Pravilo kaže da je potrebno propustiti sve TCP pakete koji dolaze na sučelje eth0, a namjenjeni su računalu 192.168.1.15, pri čemu su izvorišna vrata u rasponu od 1024 do 65535, a odredišna vrata su vrata 80.
4.5. OpenBSD PF PF (Packet Filter) je sastavni dio OpenBSD jezgre od verzije 3.0 kada je zamijenio do tada korišteni paket IPFilter. Stvorio ga je Daniel Hartmeier, a radi se zapravo o sustavu unutar OpenBSD-a koji nam daje mogućnosti inteligentnog filtra paketa. Pruža mogućnosti filtriranja, normalizacije i preusmjeravanja mrežnog prometa, prevođenja mrežnih adresa, raspodjelu propusnosti, te manipulaciju prioritetima paketa. Konfiguracijska pravila se sastoje od ovih dijelova: ●
Makroi (engl. macros) - korisničke varijable koje mogu označavati IP adresu, sučelje, ...
●
Tablice (engl. tables) - struktura koja sadrži liste IP adresa
●
Opcije (engl. options) - različite opcije koje određuju način rada PF-a
●
Normalizacija (engl. scrub) - procesiranje paketa u svrhu normalizacije i defragmentacije
●
Promet (engl. queueing) - kontrola propusnosti i prioriteta paketa
●
Translacija (engl. translation) - NAT i redirekcija paketa
●
Filtriranje (engl. filter rules) - filtriranje i blokiranje paketa
Evo primjera postavljanja pravila korištenjem PF-a: pass in on fxp0 proto tcp from any port 1024:65535 to 192.168.1.15 port 80
Postavljeno pravilo je identično prošlom primjeru, a traži propuštanje svih TCP paketa koji dolaze na sučelje fxp0, a namijenjeni su računalu 192.168.1.15, pri čemu su izvorišna vrata u rasponu od 1024 do 65535, a odredišna vrata su vrata 80.
12
4.6. Ispitivanje sigurnosne stijene Mnoge mreže spojene na Internet čuvane su od strane sigurnosnih stijena dizajniranih da bi zaštitili unutarnju mrežu od napada koji dolaze iz vanjske mreže (Internet). Te sigurnosne stijene stvaraju granicu zabrane neautoriziranog pristupa privatnoj mreži. Također, sigurnosne stijene su postavljene unutar privatnih mreža da bi ih se zaštitilo od napada iznutra. Iako sigurnosne stijene igraju glavnu ulogu u zaštiti i često su jedina linija obrane protiv nepoznatog napadača, sistematsko ispitivanje sigurnosne stijene je dugo zanemarivano. Razlog je u nepostojanju efektnih i pouzdanih metoda ispitivanja. Postoje tri osnovna pristupa ispitivanju sigurnosne stijene: 1. Penetracijsko ispitivanje (engl. penetration testing) 2. Ispitivanje ostvarenja (engl. implementation testing) 3. Ispitivanje pravila (engl. rule testing) Cilj penetracijskih ispitivanja je otkriti sigurnosne manjkavosti mreže pokretanjem napada na nju. Penetracijska ispitivanja obuhvaćaju ●
Prikupljanje informacija
●
Istraživanje mreže
●
Napad na mrežu
Napadi se izvode korištenjem programske podrške za ispitivanje (Nessus, GFI Scanner, eEye Retina Scanner) koji provjeravaju ranjivost sigurnosne stijene. Ukoliko su pronađene ranjivosti, one moraju biti popravljene. Penetracijska ispitivanja obično vrše administratori ili sigurnosni eksperti koji pokušavaju ući u zaštićeni sustav. Ispitivanje ostvarenja fokusira se na programsku podršku sigurnosne stijene, tj. na provjeru mogućih pogrešaka (bugova) pri ostvarenju. Ovaj tip ispitivanja se većinom izvodi od strane proizvođača sigurnosne stijene da bi se osigurala pouzdanost njihovog proizvoda. Ispitivanje pravila sigurnosne stijene provjerava da li je sigurnosna politika ispravno implementirana korištenjem pravila sigurnosne stijene. Sigurnosna politika je dokument koji definira osnovna pravila i principe sigurnosti koji će se provoditi na mreži. Pravila sigurnosne stijene imaju namjeru implementirati direktive definirane u tom dokumentu.
4.7. Ostali tipovi zaštite 4.7.1. Sustavi detekcije upada Sustav detekcije upada (IDS – engl. Intrusion Detection System) detektira neželjene manipulacije na sustavu. Spomenute manipulacije mogu prerasti u napade od strane educiranih hakera. IDS mora detektirati sve vrste nepoželjnog prometa u mreži, kao i nepoželjne načine korištenja računala koje sigurnosna stijena ne prepoznaje. To uključuje mrežne napade na ranjive usluge, napade prelijevanja spremnika (engl. buffer overflow) na aplikacije, pokušaje proširenja ovlasti na računalu i pristup zaštićenim datotekama. Jedan od najčešće korištenih je besplatni IDS Snort. IDS se sastoji od nekoliko komponenti: senzora koji generiraju sigurnosne uzbune, sustava koji prati događaje i uzbune te kontrolira senzore, te sustava koji izvršava zapisivanje događaja i uzbuna u bazu podataka prema danim pravilima zapisivanja. 13
Sigurnosna stijena
U mrežnom IDS-u (NIDS - Network IDS), senzori se nalaze na uskim točkama prometa, obično u DMZ-u i na granicama mreže. Senzori prate sav mrežni promet u tim točkama, te analiziraju sadržaj u potrazi za neželjenim prometom. Obično se izvodi kao neovisna platforma koja dobiva pristup mreži spajanjem na koncentrator ili preklopnik, ili pak kao zasebno računalo čija mrežna kartica radi u promiskuitetnom modu. U domaćinskom IDS-u (HIDS - Host IDS), senzori se obično sastoje od aplikacije koja prati sve promjene na sustavu na kojem je instalirana. Analiziraju se sistemski pozivi, zapisi raznih aplikacija, modifikacije na sistemskim datotekama (korištenjem hash algoritama), te ostale aktivnosti na samom domaćinu. Hibridni IDS (Hybrid IDS) je kombinacija HIDS-a i NIDS-a. Također, možemo razlikovati aktivni i pasivni IDS sustav. Pasivni sustav samo zapisuje sigurnosne događaje i uzbune, kod aktivni sustav djeluje ovisno o događajima postavljanjem dodatnih pravila. IDS ima veliki utjecaj na sigurnost od napada iniciranih iz unutrašnjosti mreže koja se štiti. IPS (Intrusion Prevention System) se obično smatra proširenjem IDS sustava, ali je zapravo drugačiji oblik zaštite sigurnosti, te više sliči na aplikacijsku sigurnosnu stijenu. Njihove se funkcije više vežu uz kontrolu L7 (aplikacijskog sloja) nego uz kontrolu IP adresa i vrata, te uspijevaju zaustaviti napade koji će biti tek otkriveni, primjerice buffer overflow. Kao i kod IDS-a, postoji mrežna i domaćinska verzija. Unutar IPS-a moraju postojati i IDS funkcije da bi se smanjio broj lažih detekcija upada. Neka od rješenja su Cisco IPS, Wehnus i PaX.
4.7.2. Honey – Pot, Net, Wall Honeypot je zamka postavljena da bi detektirala, odbila ili na neki način i odgovorila na pokušaj neautoriziranog korištenja. Sastoji se od računala, podataka ili mrežnog resursa koji se predstavlja kao dio mreže, ali je zapravo izoliran i zaštićen, te izgleda kao da sadrži informacije ili resurse koji bi mogli biti korisni napadačima. Honeypot koji se predstavlja kao otvoreni posrednik se naziva sugarcane. Honeypot se koristi kao oruđe nadgledanja i preventive napada. Iako je obično izveden kao računalo, može biti i u drugim oblicima, kao što su datoteke ili čak nekorišteni dio adresnog prostora. Honeypot-ovi nemaju nikakvu vrijednost za korisnika, pa stoga ne bi trebali vidjeti autorizirani promet. Što god uhvate, može se smatrati kao neautoriziran pokušaj korištenja. Jedno praktično ostvarenje je skrivanje iza maske e-mail poslužitelja. Pošto na poslužitelju ne postoje stvarni korisnički računi za elektroničku poštu, obična elektronička pošta niti ne dolazi do ovog poslužitelja, pa je nepotrebno filtriranje pošte. Sva elektronička pošta koju ovaj poslužitelj primi, automatski se smatra spam-om. Honeypot-ovi donose rizik za mrežu i stoga s njima treba oprezno rukovati. Ukoliko nisu primjereno odvojeni od privatne mreže, napadač ih može iskoristiti da bi provalio u sustav. Dva ili više honeypot-ova u obliku mreže tvore honeynet. Honeynet se koristi za nadgledanje većeg maskiranog sustava gdje jedan honeypot ne bi bio dovoljan. Honeywall je besplatno ostvarenje honeynet-a koju pruža organizacija The Honeynet Project u obliku CDROM-a. Svrha Honeywall CDROM-a [Literatura 8] jest omogućiti jednostavno i efektivno postavljanje honeynet-a, posebno u velikim distribuiranim okružjima, što izvodi automatiziranim postavljanjem honeywall-a ( honeynet posrednika ). Također, daje programsku podršku za konfiguriranje, održavanje i analizu nakon što je sustav postavljen. Honeywall je često
14
4. Ostvarenje sigurnosne stijene
najkritičniji dio honeynet-a. Njegova je namjena hvatanje, kontrola i analiza svih mrežnih aktivnosti honeynet-a.
4.7.3. Virtualne privatne mreže Virtualna privatna mreža (VPN – engl. Virtual private network) prikazana je slikom 4.1. VPN je privatna komunikacijska mreža. Obično se koristi unutar poduzeća, ili između više različitih poduzeća, organizacija ili odjela za komunikaciju posredstvom javne mreže. VPN promet se prenosi javnom mrežnom infrastrukturom (Internet) koristeći standardne (uglavnom nesigurne) protokole, ili posredstvom mreže pružatelja usluga koji daje VNP uslugu zaštićenu dobro definiranim dogovorom nivoa usluga (SLA – engl. Service Level Agreement) između pružatelja usluge i korisnika.
Slika 4.1. Virtualna privatna mreža
Tuneliranje (prosljeđivanje vrata) jest prijenos podataka koji su namijenjeni korištenju samo unutar privatne mreže poduzeća, preko javne mreže na način da usmjernici u javnoj mreži nisu svjesni da je taj prijenos dio privatne mreže. Tuneliranje se vrši enkapsulacijom podataka i protokola privatne mreže unutar paketa javne mreže, tako da ih javna mreža smatra običnim podacima. VPN se sastoji od dva dijela: zaštićene (unutarnje) mreže koja pruža fizičku i administrativnu sigurnost, te zadovoljava zaštitu prijenosa, i nezaštićene (vanjske) mreže (Interneta). Obično se, između klijenta i poslužitelja nalazi sigurnosna stijena. Kada klijent uspostavi komunikaciju s sigurnosnom stijenom, podaci potrebni za autentifikaciju se prosljeđuju autentifikacijskom poslužitelju unutar zaštićene mreže. Ukoliko je klijent osoba od povjerenja, ovim postupkom može dobiti privilegije pristupa resursima koji nisu dostupni običnim korisnicima, pa se dobiva dojam da je klijent spojen izravno na privatnu mrežu. Mnogi VPN klijenti mogu biti postavljeni na način da zahtijevaju da sav IP promet prolazi kroz tunel dok je VPN aktivna. Iz perspektive korisnika, to znači da sav promet korisnika prema vanjskoj mreži mora proći sigurnosnu stijenu koja štiti privatnu mrežu, tj. daje dojam da je klijent zaista i fizički spojen unutar privatne mreže. Ovo smanjuje rizik da napadač dobije pristup privatnoj mreži napadom na npr. prijenosno računalo klijenta, jer za korisnike Interneta ili mreže na koju je prijenosno računalo zaista spojeno, računalo koje koristi VNP klijentsku programsku podršku, kao da ne postoji. Taj oblik sigurnosti je bitan jer klijentsko računalo može biti spojeno na mrežu koja nije sigurna. Također, usluga je vrlo bitna kod zaposlenika koji su na putu, a koji korištenjem VPN 15
Sigurnosna stijena
klijenta mogu pristupati privatnoj mreži poduzeća koristeći npr. Wi-Fi pristupnu točku na javnom mjestu, npr. aerodromu. VPN je danas postala opcija koja je integrirana u sve komercijalne sigurnosne stijene, isključivo da bi se pružila mogućnost udaljene i sigurne komunikacije zaposlenika. Neka od značajnijih rješenja za VPN su svakako Cisco VPN, CIPE (Crypto IP Encapsulation), OpenVPN, te FreeS/WAN.
4.7.4. Budućnost – DPI Duboka inspekcija paketa (DPI – engl. Deep Packet Inspection) jest izraz koji opisuje mogućnosti sigurnosne stijene da kontrolira podatke aplikacijskog sloja unutar mrežnih paketa, te ovisno o važnosti podataka na temelju njihovog sadržaja, djeluje preventivno i donosi odluke o odbijanju paketa. Sustav koji vrši DPI obično sadrži kombinaciju usporedbe potpisa poznatih napada i heurističke analize podataka u svrhu određivanja utjecaja tog komunikacijskog toka. Iako koncept DPI-a zvuči lijepo, u praksi ga nije lako ostvariti. Inspekcija mora koristiti kombinaciju analize potpisa, kao i analizu anomalija u prometnom toku. Oba principa su preuzeta iz IDS-a. U svrhu identifikacije podataka u prometnom toku i brzinom prijenosnog linka (tj. istom brzinom kojom se prenose i podaci kroz mrežu), sigurnosna stijena će u budućnosti morati obavezno implementirati mrežne procesore (NPU – engl. Network Processor Unit). Ovi procesori omogućuju brzu diskriminaciju sadržaja unutar paketa, uz to dajući mogućnost klasifikacije paketa. Sigurnosna stijena s mogućnošću DPI-a mora, osim pohrane i kontrole stanja mrežne veze, vršiti pohranu i kontrolu stanja aplikacije koja se koristi tom mrežnom vezom. Za uspješni primjenu DPI-a, sigurnosna stijena mora dati širok spektar mogućnosti detekcije upada i prevencije. Te mogućnosti uključuju izvođenje antivirusne provjere brzinom prijenosnog linka. Dodatno, mora postojati mogućnost parsiranja, analize i filtriranja XML (engl. Extensible Markup Language) prometa, dinamičkog posredovanja servisima za IM (engl. Instant Messaging). Dodatno, morati će se pružiti mogućnost kontrole i filtriranja SSL (engl. Secure Socket Layer) veza, također brzinom prijenosnog linka. To će očito obuhvaćati mogućnost dekriptiranja podataka u SSL vezi i ponovnog kriptiranja nakon što je podatak pregledan. Razvojem DPI tehnologije, poboljšava se robusna i dinamička zaštita mrežnih resursa na svim nivoima. Preseljenje inspekcije podataka unutar paketa na sigurnosnu stijenu, omogućava administratorima veliku fleksibilnost u obrani sustava od napada. No, takve sigurnosne stijene ne eliminiraju potrebu za IDS-om, jer uloga IDS-a u mreži kao dio općeg pristupa duboke zaštite (engl. defense-in-depth) ostaje nepromijenjena.
16
5. Praktični dio U praktičnom dijelu opisane su mogućnosti IPsec-a korištenjem IPsec-tools-a i Linux kernela. Fokus je postavljen na implementaciju VPN roadwarrior scenarija.
5.1. Teorijski uvod - IPsec IPsec je ekstenzija IP protokola koja pruža sigurnost IP protokolu i protokolima višeg sloja. Primarno je razvijen za IPv6 protokol, te je kasnije dodan i kao mogućnost za IPv4 protokol. Arhitektura IPsec-a je opisana u RFC2401. IPsec koristi dva različita protokola, AH i ESP, da bi osigurao autentifikaciju, integritet i pouzdanost komunikacije. Moguće je zaštititi cijeli IP datagram, ili pak samo protokole višeg sloja. Stoga postoje dva primarna načina rada – tunelirajući način gdje je IP datagram potpuno enkapsuliran novim IP datagramom koristeći IPsec protokol, te transportni način u kojem se štiti samo podatke viših protokolnih slojeva, a IPsec zaglavlje se umeće između originalnog IP zaglavlja i zaglavlja protokola višeg sloja kao na slici 5.1.
Slika 5.1. Način dodavanja AH i ESP zaglavlja
Da bi se zaštitio integritet IP datagrama, IPsec protokol koristi autentifikacijske kodove sažetka poruke (engl. Hash message authentication codes – HMAC). Za izračun HMAC-a, koriste se standardni algoritmi za izračun sažetka (SHA i MD5) računanjem sažetka na temelju tajnog ključa i podatkovnog dijela IP datagrama. HMAC je zatim uključen u zaglavlje IPsec protokola, te ga primatelj paketa može provjeriti ukoliko ima tajni ključ. Da bi se zaštitila pouzdanost IP datagrama, IPsec protokoli koriste standardne simetrične algoritme kriptiranja. IPsec standard zahtjeva implementaciju NULL i DES algoritama, no danas su češći jači algoritmi kao 3DES, AES i Blowfish. Da bi se promet zaštitio od DoS napada, IPsec protokoli koriste mehanizam klizećeg prozora. Svakom paketu se pridružuje redni broj i paket se prima samo u slučaju da je njegov redni broj unutar promatranog prozora ili noviji. Svi stariji paketi se automatski odbacuju. Ovaj postupak štiti od napada ponavljanjem, u kojima napadač snimljene originalne pakete pokušava ponovno poslati. Da bi krajnje točke komunikacije mogle vršiti enkapsulaciju i dekapsulaciju IPsec paketa, potreban je način čuvanja tajnih ključeva, algoritama i IP adresa uključenih u komunikaciju. Svi ovi parametri potrebni za zaštitu IP datagrama, čuvaju se u sigurnosnoj asocijaciji (nadalje SA – engl. Security Association), dok se SA-ovi čuvaju u bazi sigurnosnih asocijacija (nadalje SAD – engl. Security Association Database).
17
Sigurnosna stijena
Svaki SA definira slijedeće parametre: ●
Izvorišna i odredišna IP adresa rezultirajućeg IPsec zaglavlja. Ovo su IP adrese krajnjih točaka IPsec komunikacije.
●
IPsec protokol (AH ili ESP)
●
Algoritam i tajni ključ koji IPsec koristi
●
Indeks sigurnosnog parametra (nadalje SPI – Security Parameter Index) – 32-bitni broj koji identificira pojedini SA
Pojedine implementacije SPD-a omogućuju i ove dodatne parametre: ●
Način rada – tunelirajući ili transportni
●
Veličina klizećeg prozora
●
Vrijeme trajanja SA
Obzirom da SA definira izvorišnu i odredišnu IP adresu, može zaštititi samo jedan smjer prometa u dvosmjernoj IPsec komunikaciji. Da bi se zaštitila komunikacija u oba smjera, potrebna su dva jednosmjerna SA. SA definira samo kako IPsec treba štititi promet. Naravno, potrebne su i informacije kada i koji promet treba štititi. Te informacije se nalaze u zapisima sigurnosne politike (nadalje SP – engl. Security Policy), koji su pohranjeni u bazi sigurnosne politike (nadalje SPD – engl. Security Policy Database). SP obično specificira slijedeće parametre: ●
Izvorišna i odredišna adresa paketa koje je potrebno štititi. U transportnom načinu rada, ove adrese su jednake adresama u SA, dok u tunelirajućem načinu rada mogu biti drugačije.
●
Protokol (i vrata) koja se štite. Neke implementacije ne dozvoljavaju definiranje protokola koji se štiti, pa se štiti sav promet između navedenih adresa.
●
SA koji se koristi za zaštitu paketa
Ručno postavljanje SA-a je prilično osjetljiv zadatak i ne pretjerano siguran. Tajni ključevi i algoritmi kriptiranja moraju se podijeliti svim krajnjim točkama virtualne privatne mreže. Razmjena simetričnih ključeva je kritičan problem za administratora sustava, obzirom da se još ne vrši ni jedan oblik kriptiranja. Da bi se ovaj problem riješio, stvoren je IKE (Internet Key Exchange) protokol. U prvoj fazi IKE protokola, vrši se autentifikacija krajnjih točaka, dok se u drugoj fazi vrši dogovor o potrebnim SAima, te se odabiru simetrični tajni ključevi korištenjem Diffie-Hellmann razmjene ključeva. IKE protokol također vrši i periodičku izmjenu ključeva da bi se osigurala njihova pouzdanost.
5.1.1. AH protokol AH (engl. Authentication Header – autentifikacijsko zaglavlje) protokol štiti integritet IP datagrama. Da bi to ostvario, AH vrši izračun HMAC-a. Pri izračunu, koristi se tajni ključ, podatkovni dio IP datagrama i nepromjenjivi dijelovi IP zaglavlja kao što su IP adrese. Zatim protokol dodaje svoje AH zaglavlje paketu. AH zaglavlje, kao na slici 5.2, je veličine 24 okteta. Prvi oktet je polje slijedećeg zaglavlja (engl. Next Header).
18
5. Praktični dio
Slika 5.2. AH zaglavlje
Ovo polje specificira protokol slijedećeg zaglavlja. U tunelirajućem načinu rada, cijeli IP datagram se enkapsulira, pa je vrijednost ovog polja 4. Kad se pak u transportnom načinu rada enkapsulira TCP datagram, odgovarajuća vrijednost ovog polja je 6. Slijedeći oktet definira duljinu podatkovnog dijela. Slijede dva rezervirana okteta, nakon kojih slijedi 32 bitni SPI koji definira SA potreban za dekapsulaciju paketa. Zatim imamo 32 bitni redni broj paketa koji se koristi kontrolu metodom klizećih prozora. Na kraju zaglavlja, nalazi se 96 bita koji sadrže HMAC koji štiti integritet paketa. Obzirom da AH protokol štiti IP datagram i nepromjenjive dijelove IP zaglavlja kao što su IP adrese, AH protokol ne dozvoljava NAT, jer se promjenom IP adresa u zaglavlju IP paketa narušava ispravnost HMAC-a.
5.1.2. ESP protokol ESP (engl. Encapsulated Security Payload – sigurnosno enkapsulirani sadržaj) protokol osigurava i integritet paketa korištenjem HMAC-a i pouzdanost korištenjem kriptiranja. Nakon kriptiranja paketa i izračuna HMAC-a, generira se ESP zaglavlje i dodaje paketu. Prvo polje ESP zaglavlja, kao na slici 5.3, je 32 bitni SPI koji ima istu ulogu kao i unutar AH zaglavlja. Slijedi ga 32 bitni redni broj paketa koji ponovno ima istu ulogu kao i kod AH zaglavlja.
Slika 5.3. ESP zaglavlje
Zatim slijede 32 bita koji definiraju inicijalizacijski vektor (IV – engl. Initialization Vector) koji se koristi pri kriptiranju. IV osigurava dobivanje različite kriptirane vrijednosti istog paketa. IPsec koristi kriptiranje po blokovima, pa se stoga ponekad javlja potreba za nadopunjavanjem sadržaja paketa (engl. padding) ukoliko njegova duljina nije višekratnik duljine bloka. Nakon polja za nadopunu, slijedi polje u kojem se definira duljina korištene nadopune. Polje slijedećeg zaglavlja duljine je 2 okteta i jednake uloge kao u AH zaglavlju. Zadnji dio ESP zaglavlja je 96 bitno HMAC polje. Ovaj HMAC ovisi isključivo o podatkovnom dijelu datagrama i pri izračunu ne uključuje IP adrese u IP zaglavlju. Time se omogućilo da NAT ne narušava ispravnost HMAC-a.
19
Sigurnosna stijena
5.1.3. IKE protokol IKE protokol rješava najizraženiji problem pokretanja sigurne komunikacije - autentifikaciju krajnjih točaka i izmjenu simetričnih ključeva. Zatim stvara SA-e i dodaje ih u SAD. IKE protokol obično zahtijeva deamon i nije implementiran unutar operacijskog sustava. IKE protokol koristi vrata 500 i protokol UDP za svoju komunikaciju. Protokol funkcionira u dvije faze. Prva faza vrši uspostavu ISAKMP SA (Internet Security Association Key Management Security Association). U drugoj fazi, ISAKMP SA se koristi za dogovor i postavljanje IPsec SA-a. Autentifikacija krajnjih točaka u prvoj fazi obično se odvija na temelju preraspodjeljenih ključeva (PSK – Pre-Shared Key), RSA ključeva i X.509 certifikata. Prva faza može se izvesti u dva načina, glavni (engl. main mode) i agresivni (engl. aggressive mode). Oba načina autentificiraju krajnje točke i uspostavljaju ISAKMP SA, ali agresivnim načinom se za to izmjeni dvostruko manje poruka između krajnjih točaka. Naravno da to povlači i nedostatke, jer agresivni način ne podržava zaštitu identiteta, pa je ovaj način ranjiv na man-in-the-middle napad u slučaju korištenja PSK autentifikacije. S druge strane, ovo i je jedini cilj agresivnog načina rada jer glavni način ne dozvoljava korištenje različitih preraspodjeljenih ključeva za nepoznate krajnje točke. Kako je rečeno, agresivni način rada ne podržava zaštitu identiteta, pa prenosi podatke o identitetu klijenta u nekriptiranom obliku. Stoga krajnje točke znaju s kime komuniciraju prije nego se izvrši autentifikacija i mogu odabrati odgovarajući preraspodjeljeni ključ za svakog pojedinog klijenta. U drugoj fazi IKE protokola vrši se izmjena zahtjeva za SA-ima i dogovor o SA-ima na temelju ISAKMP SA. ISAKMP SA pruža autentifikaciju da bi se zaštitio od man-in-the-middle napada. Druga faza koristi takozvani brzi način rada (engl. quick mode). Obično dvije krajnje točke uspostavljaju samo jedan ISAKMP SA, koji se zatim koristi za dogovor o nekoliko (najmanje dva) jednosmjernih SA-a.
5.1.4. Zaobilaženje utjecaja NAT-a Vrlo često se nailazi na situaciju da je jedna od krajnjih točaka komunikacije iza NAT računala, tj. da se prepisuje izvorišna adresa paketa (maskerada) koji šalje ta krajnja točka. Prvi problem koji se javlja jest da računalo koje obavlja NAT skriva originalnu adresu izvora paketa i prepisuje ju svojom, što odmah onemogućuje AH protokol. ESP protokol se i u tom slučaju može koristiti ukoliko su obje krajnje točke ispravno podešene. U slučaju da dva računala, nad čijim paketima NAT vrši isto računalo, pokušaju stvoriti tunel prema nekoj vanjskoj krajnjoj točci, nijedno neće uspjeti. Računalo koje vrši NAT, mora pratiti koje su veze uspostavljene da bi bilo u mogućnosti izvršiti de-NAT, tj. povratne pakete vratiti računalu kojem su i namijenjeni. Stoga koristi internu tablicu u kojoj su pospremljeni podaci o svim vezama nad kojima se vrši NAT. Pretpostavimo da se jedan klijent spoji na poslužitelj na Internetu. Računalo koje vrši NAT sakrije njegovu izvornu adresu prepisujući je svojom i u internoj tablici stvori zapis da se svi paketi koji dolaze na odabrana vrata moraju poslati izvorišnom klijentu. Čim drugi klijent pokuša uspostaviti tunel, vrši se isti postupak. Ukoliko drugi klijent slučajno odabere ista vrata, računalo koje vrši NAT će to primijetiti i izmijeniti vrata klijenta da bi ih moglo razlikovati. Ovaj postupak funkcionira kada se koriste TCP i UDP protokoli, jer oni imaju mogućnost korištenja vrata. ESP protokol nema tu mogućnost, pa stoga računalo koje vrši NAT može koristiti jedino protokol da bi razlikovalo pakete. Stoga kada se prvi klijent poveže, u tablicu NAT računala se zapisuje da sve dolazne ESP pakete treba de-NAT-ati prema prvom klijentu. Kada se pak drugi klijent poveže, on će pravilo zapisano u tablici prepisati i u najboljem slučaju onemogućiti prvog klijenta u komunikaciji sa poslužiteljem. Ova situacija se, jasno je, ne smije dogoditi. Iz navedenih razloga, a da bi se gore navedena situacija spriječila, IPsec koristi NAT-Traversal, tj. zaobilaženje utjecaja NAT-a. Zaobilaženje se izvodi na način da se ESP pakete enkapsulira unutar 20
5. Praktični dio
UDP paketa. Računalo koje vrši NAT bez problema će razlikovati stvorene UDP pakete prema vratima. Pretpostavljena su vrata 4500 i UDP protokol.
5.2. IPsec-Tools IPsec-Tools je skup alata, na BSD sustavima poznatih pod nazivom KAME's IPsec utilities, prenesenih na Linux. Zapravo se sastoji od tri alata koji omogućuju implementaciju IPsec-a na Linux-u.
5.2.1. Alat setkey Ovaj alat služi za ručnu manipulaciju IPsec SPD i SAD bazama. Ne ulazeći u detalje svih mogućnosti ovog alata, na primjeru postavljanja transportnog načina rada objasniti ćemo najčešće korištene mogućnosti. Slijedi konfiguracijska datoteka za jednu krajnju točku. U primjeru je to računalo adrese 192.168.111.129. Pravila koja se zadaju prilagođena su mreži koja je prikazana na slici 5.4. Linije konfiguracijske datoteke koje započinju znakom # su komentari. #konfiguracijska datoteka se učitava pokretanjem #/usr/sbin/setkey -f ime_datoteke #brisanje postojećih SAD zapisa flush; #brisanje postojećih SPD zapisa spdflush; #dodavanje novog SA-a u formatu: #add izvorišna_adresa odredišna_adresa protokol SPI -m način_rada -E #algoritam_kriptiranja ključ_algoritma_kriptiranja -A algoritam_autentifikacije #ključ_algoritma_autentifikacije; add 192.168.111.129 192.168.111.203 esp 0x201 -m tunnel -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 -A hmac-md5 0xc0291ff014dccdd03874d9e8e4cdf3e6; #dodavanje novog SA-a koji određuje komunikaciju u drugom smjeru add 192.168.111.203 192.168.111.129 esp 0x301 -m tunnel -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df -A hmac-md5 0x96358c90783bbfa3d7b196ceabe0536b; #dodavanje novog SP-a u formatu: #spdadd izvorišna_mreža odredišna_mreža viši_protokol -P smjer pravilo #protokol/način_rada/izvor-odredište/nivo; spdadd 192.168.111.129 192.168.111.203 any -P out ipsec esp/transport//require; #dodavanje novog SP-a koji određuje komunikaciju u drugom smjeru spdadd 192.168.111.203 192.168.111.129 any -P in ipsec esp/transport//require;
Potrebno je pobliže objasniti zadnje dvije naredbe upućene alatu. Dodaje se SP koji kriptira sve više protokole ESP-om na relaciji između računala 192.168.111.203 i 192.168.111.129 i to u transportnom načinu rada. Na drugoj krajnjoj točci, računalu 192.168.111.203, potrebna konfiguracijska datoteka je jednaka, osim što je potrebno pri dodavanju SP-ova zamijeniti -P out sa -P in, i obratno. Više informacija o ovom alatu dobija se naredbom man setkey.
21
Sigurnosna stijena
Slika 5.4. Transportni način rada
5.2.2. Alat racoon Alat racoon je deamon za upravljanje ključevima. Racoon govori jezikom IKE protokola, pa ima zadatak uspostavljanja SA-a s drugim krajnjim točkama. Sam racoon nema puno opcija, već se bitne stvari pohranjuju u konfiguracijsku datoteku racoon.conf. Kroz ispod navedeni primjer vidjeti će se jednostavna konfiguracija tunelirajućeg načina rada. Zadana pravila su prilagođena mreži prikazanoj na slici 5.5. #put do datoteke koja sadrži PSK ključeve path pre_shared_key "/etc/psk.txt"; #remote sekcija udaljenog računala remote 192.168.111.129 { #način rada u prvoj fazi IKE protokola exchange_mode main; #zahtjevi za dogovor u prvoj fazi IKE protokola proposal { #algoritam kriptiranja encryption_algorithm 3des; #algoritam sažetka hash_algorithm md5; #metoda autentifikacije authentication_method pre_shared_key; #grupa Diffie-Hellmanovih eksponenata dh_group modp1024; } } #podaci o SA za drugu fazu IKE protokola– od mreže 192.168.112.0/24 do #192.168.223.0/24 koristeći bilo koja vrata sainfo address 192.168.112.0/24 any address 192.168.223.0/24 any { #grupa Diffie-Hellmanovih eksponenata pfs_group modp768; #algoritam kriptiranja encryption_algorithm 3des; #algoritam autentifikacije authentication_algorithm hmac_md5; #algoritam kompresije compression_algorithm deflate; }
Prikazana konfiguracija odgovara krajnjoj točci 192.168.111.203, dok je za drugu stranu, računalo 192.168.111.129 potrebno zamijeniti mjesta zapisanih adresa na dijelovima remote i sainfo. Također, potrebno je napomenuti i kako izgleda PSK datoteka. U ovom primjeru, format je jednostavan: IP_adresa_udaljenog_računala [razmak] PSK_ključ. 22
5. Praktični dio # cat psk.txt 192.168.111.129 c7e63d0732cddf4a
Naravno, na računalu 192.168.111.129, ova datoteka ima u sebi upisan isti ključ, ali adresu računala 192.168.111.203.
Slika 5.5. Tunelirajući način rada
Više informacija o ovom alatu dobija se naredbom man racoon, a o konfiguracijskoj datoteci, naredbom man racoon.conf.
5.2.3. Alat racoonctl Ovaj alat služi za kontrolu funkcioniranja racoon-a, ukoliko je konfiguriran s adminport podrškom. Komunikacija racoon-a i racoonctl-a vrši se UNIX socketima. Opcije ovog alata navedene su u tablici 5.1. Tablica 5.1. Opcije racoonctl alata Kratica
Naredba
Objašnjenje
rc
reload-config
ss
show-sa
sc
show-schedule
fs
flush-sa
Odbacivanje SA-a
ds
delete-sa
Brisanje SA-a
es
establish-sa
Uspostava SA-a
vc
vpn-connect
Uspostava ISAKMP SA sa navedenim računalom
vd
vpn-disconnect
Brisanje SA-a povezanih s navedenim računalom
se
show-event
Racoon ponovno učitava konfiguracijsku datoteku Ispis SA-a Nepoznata naredba – prostor za buduće implementacije
Ispis svih događaja koje je racoon uočio
23
Sigurnosna stijena
Više informacija o ovom alatu dobija se naredbom man racoonctl.
5.3. Roadwarrior scenarij Roadwarrior je klijent koji koristi nepoznatu, dinamički dodijeljenu IP adresu da bi se spojio na VPN posredničko računalo (u našem slučaju poslužitelj). Ova situacija je prikazana na slici 5.6 i jedna je od najzanimljivijih i danas najtraženijih mogućnosti u poslovnim okruženjima. Evo i nekih od razloga zašto je to tako: ●
Klijent može biti bilo koje računalo (s bilo kojom IP adresom) koje ima pristup Internetu, tj. može inicirati spajanje na VPN mrežu.
●
Klijent spajanjem na VPN mrežu dobiva svoju internu adresu unutar te mreže, što daje dojam da je izravno spojen u mrežu, a ne da joj pristupa putem Interneta.
●
Dodavanjem interne adrese klijentu olakšava se administracija mreže.
●
Promet se štiti na relaciji od klijenta do posredničkog računala.
●
Nakon spajanja u VPN mrežu, klijent više nema izravan pristup drugim računalima u mreži, već se izlaz na Internet vrši prolaskom kroz VPN mrežu i sigurnosnu stijenu koja ju ograđuje od Interneta.
Slika 5.6. Roadwarrior scenarij
U kombinaciji s racoon-om, roadwarrior scenarij predstavlja nekoliko problema: ●
IP adresa klijenta je nepoznata i ne može se definirati u racoon.conf konfiguracijskoj datoteci ili u datoteci PSK ključeva. Stoga je potreban drugi način da bi se odredio identitet klijenta. Pri korištenju PSK ključeva, potreban je rad racoon-a u agresivnom načinu tijekom prve faze IKE protokola. Pri korištenju certifikata, moguć je rad u glavnom načinu.
●
Nije moguće definirati SP prema kojem će se racoon ponašati jer je odredišna adresa klijenta nepoznata. Racoon mora stvoriti potrebne SP-ove i SA-ove u trenutku kad se inicira povezivanje. 24
5. Praktični dio ●
Racoon u trenutnoj verziji (IPsec-tools 0.6.4) početkom pisanja ovog rada, podržava direktive mode_cfg segmenta u kombinaciji sa Xauth autentifikacijom preko ISAKMP protokola isključivo za Cisco VPN klijente, dok je za druge klijentske opcije interoperabilnosti trenutna verzija bugovita i neupotrebljiva, stoga smo u nemogućnosti izvršiti automatsko postavljanje sučelja i dodjelu adrese u privatnoj mreži za racoon klijenta.
5.3.1. Konfiguracija mreže Mreža je postavljena prema slici 5.6 u programu VMWare. Na računalima se nalaze skripte koje omogućavaju postavke svih potrebnih sučelja i ruta da bi mreža mogla funkcionirati. Poslužitelj nema postavljena ograničenja prometa sigurnosnom stijenom, te je omogućena komunikacija između svih prikazanih računala. Na računalu poslužitelja nalazi se slijedeća skripta: # cat setup-net.sh ip link set up dev eth1 dhclient echo "1" > /proc/sys/net/ipv4/ip_forward
Skriptom se postavlja aktivnim sučelje eth1 prema lokalnoj mreži. Sučelje eth0 prema vanjskoj mreži i njena adresa, već su postavljeni pokretanjem operacijskog sustava. Naredbom dhclient sučelje eth1 dobiva IP adresu od DHCP poslužitelja kojeg simulira VMWare. Treća linija skripte omogućuje prosljeđivanje paketa kroz poslužitelj. Na računalu roadwarrior klijenta, nalazi se slijedeća skripta: # cat setup-net.sh ip route add 192.168.112.0/24 via 192.168.111.129 dev eth0
Ova naredba omogućava pristup lokalnoj mreži iza poslužitelja. Računala unutar lokalne mreže imaju postavljenu defaultnu rutu skriptom: # cat setup-net.sh ip route add default via 192.168.112.202 dev eth0
Ova ruta omogućuje izlaz na vanjsku mrežu preko poslužitelja.
5.3.2. Konfiguracija poslužitelja Na poslužitelju je potrebno stvoriti dvije datoteke za racoon. Prva je konfiguracijska datoteka racoon.conf koju postavljamo u direktorij /etc/racoon:
25
Sigurnosna stijena #put do PSK datoteke path pre_shared_key "/etc/racoon/psk.txt"; #definiranje sekcije udaljenog računala bilo koje adrese (anonymous) remote anonymous { #rad u agresivnom načinu (da bi se mogla izvršiti autentifikacija) exchange_mode aggressive; #generiranje SP-ova iz primljenog ISAKMP-SA (zbog nepoznate adrese klijenta) generate_policy on; #pasivan rad – čekati pokušaj spajanja a ne ga inicirati passive on; #omogućavanje podrške za nat-t nat_traversal on; #definiranje identifikatora koji se koristi u prvoj fazi IKE protokola my_identifier address 192.168.111.129; #definiranje vremena života podataka iz prve faze IKE-a lifetime time 2 min; #zahtjev za dogovor u prvoj fazi proposal { #algoritam kriptiranja encryption_algorithm 3des; #algoritam sažetka hash_algorithm sha1; #metoda autentifikacije authentication_method pre_shared_key; #grupa Diffie-Hellmanovih eksponenata dh_group 2; } } #podaci o SA za drugu fazu IKE-a za nepoznato računalo sainfo anonymous { #definiranje vremena života podataka iz druge faze IKE-a lifetime time 1 min; #grupa Diffie-Hellmanovih eksponenata pfs_group 1; #algoritam kriptiranja encryption_algorithm 3des, des; #algoritam autentifikacije authentication_algorithm hmac_md5, hmac_sha1; #algoritam kompresije compression_algorithm deflate; }
Osim toga, potrebno je stvoriti i datoteku PSK ključa i postaviti je u odgovarajući direktorij definiran u racoon.conf datoteci (/etc/racoon/psk.txt). Datoteka je ovog izgleda: # cat psk.txt
[email protected] c7e63d0732cddf4a
Lijeva strana retka predstavlja identifikator klijenta za prvu fazu IKE protokola, a iza razmaka se nalazi dijeljeni PSK ključ. Bitno je omogućiti pravo čitanja i pisanja na ovu datoteku samo administratoru naredbom: # chmod 600 psk.txt
Osim datoteka potrebnih za racoon, potrebno je ograničiti promet prema lokalnoj mreži sigurnosnom stijenom. Stoga je priložena skripta koja definira jednostavna pravila sigurnosne stijene koja imaju utjecaj na gledanu konfiguraciju. Skripta je spremljena pod imenom fw.sh i konfigurira sigurnosnu stijenu putem iptables programa, a izgleda ovako:
26
5. Praktični dio #brisanje NAT tablice iptables -F -t nat #brisanje INPUT lanca u filtar tablici iptables -F INPUT #brisanje FORWARD lanca u filtar tablici iptables -F FORWARD #brisanje OUTPUT lanca u filtar tablici iptables -F OUTPUT #postavljanje defaultne politike za INPUT lanac iptables -P INPUT DROP #postavljanje defaultne politike za FORWARD lanac iptables -P FORWARD DROP #postavljanje defaultne politike za OUTPUT lanac iptables -P OUTPUT ACCEPT #prihvaćanje protokola 50 (AH) na ulazu u sučelje eth0 iptables -A INPUT -i eth0 -p 50 -j ACCEPT #prihvaćanje protokola 51 (ESP) na ulazu u sučelje eth0 iptables -A INPUT -i eth0 -p 51 -j ACCEPT #prihvaćanje UPD protokola na izvorišnim vratima 500 - ISAKMP iptables -A INPUT -i eth0 -p udp --source-port 500 -j ACCEPT #prihvaćanje UPD protokola na izvorišnim vratima 4500 – NAT-T iptables -A INPUT -i eth0 -p udp --source-port 4500 -j ACCEPT #maskerada za pakete iz lokalne mreže i rw klijenata koji idu na Internet iptables -t nat -A POSTROUTING -o eth0 -d ! 192.168.112.0/24 -j MASQUERADE #prosljeđivanje paketa rw klijenata nazad na vanjsku mrežu ako nisu namijenjeni #lokalnoj iptables -A FORWARD -i eth0 -d ! 192.168.112.0/24 -o eth0 -j ACCEPT #prosljeđivanje paketa iz lokalne mreže prema vanjskoj iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT #prosljeđivanje paketa vanjske mreže prema lokalnoj ako su veze već pokrenute iznutra iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT #prihvaćanje paketa vanjske mreže ukoliko su veze već pokrenute iznutra iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #označavanje paketa koji dolaze ESP protokolom iptables -t mangle -A PREROUTING -i eth0 -p esp -j MARK --set-mark 1 #prihvaćanje paketa svih protokola koji su ušli ESP protokolom iptables -A INPUT -i eth0 -m mark --mark 1 -j ACCEPT #prosljeđivanje paketa svih protokola koji su ušli ESP protokolom iptables -A FORWARD -i eth0 -m mark --mark 1 -j ACCEPT
Nakon što se zabrani sav promet, postavljaju se pravila koja dozvoljavaju potreban promet. Među pravilima je postavljena i maskerada da bi se preko javne adrese poslužitelja omogućio pristup Internetu, kako za klijente lokalne mreže tako i za roadwarrior klijente. Osim toga, bitno je omogućiti prihvaćanje i prosljeđivanje paketa sa vanjske mreže, čije su veze inicirane iz unutarnje mreže ili sami paketi dolaze izvorno pakirani u ESP pakete (paketi koje šalju roadwarrior klijenti).
5.3.3. Konfiguracija roadwarrior klijenta Roadwarrior klijentima potrebno je konfigurirati datoteku za racoon (racoon.conf), pripadajuću datoteku s PSK ključem (psk.txt), konfiguracijsku datoteku za setkey naredbu, te skripte za pokretanje i gašenje veze prema poslužitelju. Konfiguracijska datoteka za racoon postavljena je u direktorij /etc/racoon:
27
Sigurnosna stijena #put do datoteke koja sadrži PSK ključeve path pre_shared_key "/etc/racoon/psk.txt" ; #postavljanje dopunjavanja paketa (padding) koje je opcionalno padding { #maksimalna duljina nadopunjavanja maximum_length 20; #onemogućavanje randomiziranja duljine nadopunjavanja randomize off; #onemogućavanje druge strane veze da radi drugačije nadopunjavanje strict_check off; #onemogućavanje postavljanja duljine nadopune kao zadnjeg dijela nadopune exclusive_tail off; } #Specifikacije vremenskih trajanja timer { #broj pokušaja uspostave veze counter 5; #interval između svakog slanja interval 20 sec; #broj paketa koji se šalju pri svakom pojedinom slanju persend 1; #maksimalna duljina trajanja prve faze phase1 30 sec; #maksimalna duljina trajanja prve faze phase2 15 sec; } #remote sekcija udaljenog računala – poznata adresa poslužitelja remote 192.168.111.129 { #način rada u prvoj fazi IKE protokola exchange_mode aggressive; #definiranje identifikatora koji se koristi u prvoj fazi IKE protokola my_identifier user_fqdn "
[email protected]"; #definiranje identifikatora poslužitelja prema adresi peers_identifier address 192.168.111.129; #definiranje vremena života podataka iz prve faze IKE-a lifetime time 2 min; #omogućavanje podrške za nat-t nat_traversal on; #podržavanje opcija koje zahtjeva druga strana proposal_check obey; #zahtjev za dogovor u prvoj fazi proposal { #algoritam kriptiranja encryption_algorithm 3des; #algoritam sažetka hash_algorithm sha1; #metoda autentifikacije authentication_method pre_shared_key; #grupa Diffie-Hellmanovih eksponenata dh_group 2 ; } } #podaci o SA za drugu fazu IKE-a sainfo anonymous { #grupa Diffie-Hellmanovih eksponenata pfs_group 1; #definiranje vremena života podataka iz druge faze IKE-a lifetime time 1 min; #algoritam kriptiranja encryption_algorithm 3des, des; #algoritam autentifikacije authentication_algorithm hmac_md5, hmac_sha1; #algoritam kompresije compression_algorithm deflate ; }
Datoteka PSK ključa, također je smještena u direktorij /etc/racoon. Datoteka psk.txt izgleda ovako: # cat psk.txt 192.168.111.129 c7e63d0732cddf4a
28
5. Praktični dio
Identifikator poslužitelja je definiran njegovom adresom, dok je PSK ključ isti kao i u datoteci na poslužitelju. Potrebna konfiguracijska datoteka za naredbu setkey definira SP-ove koji su potrebni za uspostavljanje tunela prema poslužitelju. Ova datoteka na poslužitelju ne postoji jer, kako je već rečeno, racoon na poslužitelju sam generira potrebne SP-ove na temelju ISAKMP-SA kojeg primi od roadwarrior klijenta. Datoteka setkey.conf smještena je u direktoriju /etc/racoon i izgleda ovako: #brisanje postojećih SA-a flush; #brisanje postojećih SP-ova spdflush; #dodavanja SP-a od rw klijenta prema mreži 192.168.0.0/16 za sve protokole preko tunela #između roadwarrior klijenta i poslužitelja u formatu: #spdadd izvorišno_računalo odredišna_mreža viši_protokol -P smjer pravilo #protokol/način_rada/izvor-odredište/nivo; spdadd 192.168.111.203 192.168.0.0/16 any -P out ipsec esp/tunnel/192.168.111.203192.168.111.129/require; #dodavanje istog SP-a u drugom smjeru spdadd 192.168.0.0/16 192.168.111.203 any -P in ipsec esp/tunnel/192.168.111.129192.168.111.203/require;
Kao odredišna mreža navodi se u primjeru korištena mreža 192.168.0.0/16, dok je u stvarnom okruženju odredišnu mrežu potrebno definirati kao 0.0.0.0/0 što označava sve moguće IP adrese. Da bi se omogućilo jednostavno korištenje zaštićene veze na klijentu, dodane su i bash skripte za njeno pokretanje i zaustavljanje. Skripta za pokretanje pohranjena je pod imenom VPNon.sh i izgleda ovako: #brisanje defaultne rute kroz sučelje eth0 ip route del default dev eth0 #dodavanje defaultne rute preko poslužitelja ip route add default via 192.168.111.129 dev eth0 #brisanje rute prema računalima koje predstavljaju Internet ip route del 192.168.111.0/24 dev eth0 #postavljanje SP-a setkey naredbom pomoću definirane konfiguracijske datoteke setkey -f /etc/racoon/setkey.conf #pokretanje racoon-a uz opcije definirane u konfiguracijskoj datoteci racoon -f /etc/racoon/racoon.conf #pauziranje izvođenja skripte na 5 sekundi dok se izvrši inicijalizacija racoon-a sleep 5 #pokušaj ping-anja poslužitelja koji neće uspjeti, ali će se inicirati uspostava veze s #poslužiteljem ping 192.168.111.129 #poruka korisniku da je veza pokrenuta echo “Veza je pokrenuta”
Prije postavljanja SP-ova i pokretanja racoon-a, te iniciranja uspostave veze ping-om prema poslužitelju, vrši se izmjena ruta. Umjesto da roadwarrior klijent šalje pakete prema Internetu (koji simuliramo mrežom 192.168.111.0/24) preko vanjskog sučelja eth0, upisuje mu se defaultna ruta koja kaže da sve pakete treba slati preko poslužitelja. Ova postavka u kombinaciji sa postavkama poslužitelja, omogućuje da se pristup Internetu od strane roadwarrior klijenta nakon uspostave VPN veze vrši isključivo kroz poslužitelj, tj. kroz sigurnosnu stijenu koju koriste i računala unutar lokalne mreže. Sigurnosna stijena u ovom slučaju mora nužno biti isto računalo koje je i poslužitelj, stoga što bi se pri pokušaju da računalo unutar lokalne mreže pristupi roadwarrior-u, njegov paket krivo usmjerio. Paket bi za odredišnu adresu imao neko računalo na Internetu (roadwarrior), što bi značilo da ga treba usmjeriti prema sigurnosnoj stijeni, a ne prema poslužitelju koji je početna točka tunela do roadwarrior klijenta. Skripta koja služi zaustavljanju VPN veze, pohranjena je pod imenom VPNoff.sh i izgleda ovako: 29
Sigurnosna stijena #brisanje SPD-a setkey -FP #brisanje SAD-a setkey -F #brisanje defaultne rute preko poslužitelja ip route del default via 192.168.111.129 dev eth0 #dodavanje rute prema vanjskoj mreži ip route add 192.168.111.0/24 dev eth0 #dodavanje defaultne rute kroz sučelje eth0 ip route add default dev eth0 #odsječak naredbi kojima se iz popisa procesa izdvaja racoon i njegov PID, te se #naredbom kill gasi racoon get_proc=`ps -e -o pid,command | grep "racoon"` echo $get_proc > get_it get_pid=`gawk -F" " '{ print $1 }' get_it` kill -9 $get_pid echo “Veza je prekinuta”
Nakon što se ponovno postave rute koje su postojale prije pokretanja sigurne veze do poslužitelja, potrebno je ugasiti racoon klijent.
5.3.4. Uspostava veze Na poslužitelju prvo pokrećemo skriptu za postavljanje sigurnosne stijene, a zatim, da bi se omogućila uspostava veze, na poslužitelju je potrebno pokrenuti racoon naredbom: # ./fw.sh # racoon -F -f /etc/racoon/racoon.conf Foreground mode. 2006-06-01 12:59:19: INFO: @(#)ipsec-tools 0.6.4 (http://ipsec-tools.sourceforge.net) 2006-06-01 12:59:19: INFO: @(#)This product linked OpenSSL 0.9.8a 11 Oct 2005 (http://www.openssl.org/) 2006-06-01 12:59:19: NOTIFY: NAT-T is enabled, autoconfiguring ports 2006-06-01 12:59:19: INFO: 127.0.0.1[500] used as isakmp port (fd=6) 2006-06-01 12:59:19: INFO: 127.0.0.1[500] used for NAT-T 2006-06-01 12:59:19: INFO: 127.0.0.1[4500] used as isakmp port (fd=7) 2006-06-01 12:59:19: INFO: 127.0.0.1[4500] used for NAT-T 2006-06-01 12:59:19: INFO: 192.168.111.129[500] used as isakmp port (fd=8) 2006-06-01 12:59:19: INFO: 192.168.111.129[500] used for NAT-T 2006-06-01 12:59:19: INFO: 192.168.111.129[4500] used as isakmp port (fd=9) 2006-06-01 12:59:19: INFO: 192.168.111.129[4500] used for NAT-T 2006-06-01 12:59:19: INFO: 192.168.112.202[500] used as isakmp port (fd=10) 2006-06-01 12:59:19: INFO: 192.168.112.202[500] used for NAT-T 2006-06-01 12:59:19: INFO: 192.168.112.202[4500] used as isakmp port (fd=11) 2006-06-01 12:59:19: INFO: 192.168.112.202[4500] used for NAT-T 2006-06-01 12:59:19: INFO: ::1[500] used as isakmp port (fd=12) 2006-06-01 12:59:19: INFO: ::1[4500] used as isakmp port (fd=13) 2006-06-01 12:59:19: INFO: fe80::20c:29ff:fe84:8f7%eth0[500] used as isakmp port (fd=14) 2006-06-01 12:59:19: INFO: fe80::20c:29ff:fe84:8f7%eth0[4500] used as isakmp port (fd=15) 2006-06-01 12:59:19: INFO: fe80::20c:29ff:fe84:801%eth1[500] used as isakmp port (fd=16) 2006-06-01 12:59:19: INFO: fe80::20c:29ff:fe84:801%eth1[4500] used as isakmp port (fd=17)
Tada je poslužitelj spreman i čeka iniciranje veze od strane klijenta. Na računalu klijenta, potrebno je izvršiti skriptu za pokretanje VPN veze # ./on.sh connect: Resource temporarily unavailable Veza je pokrenuta #
Ispis “connect: Resource temporarily unavailable” ne treba brinuti. To je ispis ping naredbe koja pokušava pristupiti poslužitelju i time inicira uspostavu tunela. Racoon na računalu poslužitelja nakon iniciranja tunela od strane klijenta daje ispis: 30
5. Praktični dio 2006-06-01 13:00:06: INFO: respond new phase 1 negotiation: 192.168.111.129[500]<=>192.168.111.203[500] 2006-06-01 13:00:06: INFO: begin Aggressive mode. 2006-06-01 13:00:06: INFO: received Vendor ID: RFC 3947 2006-06-01 13:00:06: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 2006-06-01 13:00:06: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 2006-06-01 13:00:06: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00 2006-06-01 13:00:06: INFO: received Vendor ID: DPD 2006-06-01 13:00:06: INFO: Selected NAT-T version: RFC 3947 2006-06-01 13:00:06: INFO: Adding remote and local NAT-D payloads. 2006-06-01 13:00:06: INFO: Hashing 192.168.111.203[500] with algo #2 2006-06-01 13:00:06: INFO: Hashing 192.168.111.129[500] with algo #2 2006-06-01 13:00:06: INFO: Hashing 192.168.111.129[500] with algo #2 2006-06-01 13:00:06: INFO: NAT-D payload #0 verified 2006-06-01 13:00:06: INFO: Hashing 192.168.111.203[500] with algo #2 2006-06-01 13:00:06: INFO: NAT-D payload #1 verified 2006-06-01 13:00:06: INFO: NAT not detected 2006-06-01 13:00:06: INFO: ISAKMP-SA established 192.168.111.129[500]192.168.111.203[500] spi:7aced5a6728187c5:8aa9768108a83ef6 2006-06-01 13:00:08: INFO: respond new phase 2 negotiation: 192.168.111.129[500]<=>192.168.111.203[500] 2006-06-01 13:00:08: INFO: no policy found, try to generate the policy : 192.168.111.203/32[0] 192.168.0.0/16[0] proto=any dir=in 2006-06-01 13:00:08: INFO: IPsec-SA established: ESP/Tunnel 192.168.111.203[0]>192.168.111.129[0] spi=266364066(0xfe064a2) 2006-06-01 13:00:08: INFO: IPsec-SA established: ESP/Tunnel 192.168.111.129[0]->192.168.111.203[0] spi=147163204(0x8c58844)
Ispis pokazuje da je tunel uspostavljen. Na klijentu zatim pokrećemo ping prema računalu 192.168.112.131 koje se nalazi unutar lokalne mreže: # ping 192.168.112.131 PING 192.168.112.131 (192.168.112.131) 56(84) bytes of data. 64 bytes from 192.168.112.131: icmp_seq=1 ttl=63 time=164 ms 64 bytes from 192.168.112.131: icmp_seq=2 ttl=63 time=8.75 ms 64 bytes from 192.168.112.131: icmp_seq=3 ttl=63 time=5.86 ms 64 bytes from 192.168.112.131: icmp_seq=4 ttl=63 time=37.7 ms 64 bytes from 192.168.112.131: icmp_seq=5 ttl=63 time=16.5 ms 64 bytes from 192.168.112.131: icmp_seq=6 ttl=63 time=6.10 ms --- 192.168.112.131 ping statistics --6 packets transmitted, 6 received, 0% packet loss, time 5011ms rtt min/avg/max/mdev = 5.860/39.901/164.394/56.744 ms #
Kao što je vidljivo, računalo je dostupno i veza radi. Vezu možemo prekinuti izvođenjem skripte: # ./off.sh Veza je prekinuta #
Da bi shvatili što se sada događa s paketima, u tablici 5.2 su ispisani paketi koje je vidio alat Ethereal na vanjskoj mreži.
31
Sigurnosna stijena Tablica 5.2. Paketi na vanjskoj mreži pri pristupu računalu na lokalnoj mreži Redni broj
Vrijeme
Izvor
Odredište
Protokol
Informacije
3
0.003305
192.168.111.203
192.168.111.129
ISAKMP
Aggressive
4
0.193417
192.168.111.129
192.168.111.203
ISAKMP
Aggressive
5
0.300384
192.168.111.203
192.168.111.129
ISAKMP
Aggressive
6
0.334459
192.168.111.203
192.168.111.129
ISAKMP
Informational
7
0.347664
192.168.111.129
192.168.111.203
ISAKMP
Informational
8
1.249242
192.168.111.203
192.168.111.129
ISAKMP
Quick Mode
9
1.279074
192.168.111.129
192.168.111.203
ISAKMP
Quick Mode
10
1.284894
192.168.111.203
192.168.111.129
ISAKMP
Quick Mode
13
7.318190
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
14
7.416702
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
18
8.040118
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
19
8.042255
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
20
8.691666
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
21
8.695968
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
22
9.465685
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
23
9.491472
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
24
10.204612 192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
25
10.210559 192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
26
10.957117 192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x0fe064a2)
27
10.961618 192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x08c58844)
Iz tablice 5.2 je vidljivo da se paketima od broja 3 do 10 dogovara komunikacija pomoću ISAKMP protokola. Slijede ESP paketi između roadwarrior-a i poslužitelja, iako se vrši ping sa roadwarrior-a na računalo u lokalnoj mreži (192.168.112.131). Unutar ovih ESP paketa, enkapsulirani su ICMP echo request i ICMP echo reply paketi između roadwarrior-a i računala prema kojem se šalju ICMP zahtjevi, što je vidljivo u ispisu koji daje naredba tcpdump na poslužiteljevom mrežnom sučelju prema lokalnoj mreži:
32
5. Praktični dio # tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 13:00:15.417886 arp who-has 192.168.112.131 tell 192.168.112.202 13:00:15.429863 arp reply 192.168.112.131 is-at 00:0c:29:f3:6e:46 (oui Unknown) 13:00:15.430142 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 1, length 64 13:00:15.441822 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 1, length 64 13:00:16.192897 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 2, length 64 13:00:16.193762 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 2, length 64 13:00:16.815024 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 3, length 64 13:00:16.825920 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 3, length 64 13:00:17.578064 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 4, length 64 13:00:17.597785 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 4, length 64 13:00:18.322711 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 5, length 64 13:00:18.329912 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 5, length 64 13:00:19.015756 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 50699, seq 6, length 64 13:00:19.025994 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 50699, seq 6, length 64 13:00:19.406277 arp who-has 192.168.112.202 tell 192.168.112.131 13:00:19.406438 arp reply 192.168.112.202 is-at 00:0c:29:84:08:01 (oui Unknown) 13:00:38.851279 arp who-has 192.168.112.254 tell 192.168.112.131 17 packets captured 37 packets received by filter 0 packets dropped by kernel
Ovdje je vidljivo da su to zaista ICMP paketi, te da je promet u unutrašnjosti lokalne mreže nezaštićen. Kada roadwarrior klijent pokuša izvršiti ping prema nekom računalu na Internetu, koje ćemo u ovom primjeru simulirati računalom adrese 192.168.111.3, Ethereal hvata pakete koji su dani u tablici 5.3.
33
Sigurnosna stijena Tablica 5.3. Paketi na vanjskoj mreži pri pristupu računalu na Internetu Redni broj
Vrijeme
Izvor
Odredište
Protokol
Informacije
1
0.000000
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x006df2ed)
4
0.007960
192.168.111.129
192.168.111.3
ICMP
Echo (ping) request
5
0.008018
192.168.111.3
192.168.111.129
ICMP
Echo (ping) reply
6
0.008562
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x0d866011)
7
1.017969
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x006df2ed)
8
1.018657
192.168.111.129
192.168.111.3
ICMP
Echo (ping) request
9
1.018809
192.168.111.3
192.168.111.129
ICMP
Echo (ping) reply
10
1.019002
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x0d866011)
11
2.019256
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x006df2ed)
12
2.019880
192.168.111.129
192.168.111.3
ICMP
Echo (ping) request
13
2.020101
192.168.111.3
192.168.111.129
ICMP
Echo (ping) reply
14
2.020324
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x0d866011)
15
4.207770
192.168.111.203
192.168.111.129
ESP
ESP(SPI=0x006df2ed)
16
4.234359
192.168.111.129
192.168.111.3
ICMP
Echo (ping) request
17
4.234471
192.168.111.3
192.168.111.129
ICMP
Echo (ping) reply
18
4.234775
192.168.111.129
192.168.111.203
ESP
ESP(SPI=0x0d866011)
Iz paketa zabilježenih u tablici 5.3 vidljivo je da roadwarrior klijent ne pokušava pristupiti računalu 192.168.111.3 izravno, već tunelom šalje enkapsulirane ICMP pakete unutar ESP paketa do poslužitelja, koji tada vrši ping prema traženom računalu uz maskeradu sa svojom javnom adresom, te odziv vraća roadwarrior klijentu kroz tunel. Promatrajući do sada viđeno, stiće se dojam da bi poslužitelj mogao vršiti maskeradu paketa koji dolaze tunelom od roadwarrior-a prema lokalnoj mreži, tako da im prilikom propuštanja prema lokalnoj mreži prepiše izvorišnu adresu adresom svog mrežnog sučelja na lokalnoj mreži i time djeluje kao potpuni posrednik između roadwarrior klijenta i lokalne mreže. To je moguće, međutim stvorilo bi dodatni problem. U tom slučaju računala unutar lokalne mreže ni na koji način ne bi mogla doznati adresu roadwarrior klijenta (jer bi kao izvorišnu adresu uvijek dobivala adresu poslužitelja) i ne bi mogla sama inicirati neku vrstu veze prema roadwarrior klijentu, već bi svaki takav pokušaj završavao na mrežnom sučelju poslužitelja.
5.3.5. Windows XP klijent – ShrewSoft VPN Client ShrewSoft VPN Client je besplatan softver koji je stvoren upravo da bi se omogućila interoperabilnost između IPsec-tools-a (racoon-a) i Microsoft Windows-a. Ne ulazeći u detalje svih mogućnosti ovog programa, fokusirati ćemo se na njegovo konfiguriranje da bi radio u roadwarrior primjeru koji je opisan u ovom poglavlju. Nakon instalacije i pokretanja programa, otvara se prozor kao na slici 5.7 gdje je potrebno dodati novu vezu.
34
5. Praktični dio
Slika 5.7. Početni prozor ShrewSoft VPN Client alata
Pri konfiguriranju, na prvom listu se nalaze postavke mreže. Potrebno je postaviti adresu poslužitelja kao što je prikazano na slici 5.8.
Slika 5.8. Postavke mreže ShrewSoft VPN Client alata
Drugi list postavki traži podešavanje adrese roadwarrior klijenta u lokalnoj mreži, tj. unutar enkapsuliranih paketa. Simulirati ćemo situaciju identičnu kao kada se za klijenta koristio racoon, pa postavke ovog lista izgledaju kao na slici 5.9.
35
Sigurnosna stijena
Slika 5.9. Postavke klijenta ShrewSoft VPN Client alata
Treći list traži konfiguraciju autentifikacije (u našem slučaju dijeljeni PSK ključ), a sastoji se od tri podlista. Prvi podlist na slici 5.10 konfigurira identitet klijenta.
Slika 5.10. Postavke prvog lista autentifikacije ShrewSoft VPN Client alata
Drugi list, na slici 5.11, konfigurira identitet poslužitelja.
36
5. Praktični dio
Slika 5.11: Postavke drugog lista autentifikacije ShrewSoft VPN Client alata
Treći list, u našem slučaju, PSK ključ kao na slici 5.12.
Slika 5.12. Postavke trećeg lista autentifikacije ShrewSoft VPN Client alata
Na četvrtom listu definiramo parametre prve faze IKE protokola. Postavke su identične kao i pri konfiguraciji racoon klijenta i nalaze se na slici 5.13.
37
Sigurnosna stijena
Slika 5.13. Postavke prve faze IKE protokola u ShrewSoft VPN Client alatu
Peti list definira parametre druge faze IKE protokola. Ove postavke su također identične onima kod racoon-a, a prikazane su na slici 5.14.
Slika 5.14. Postavke druge faze IKE protokola u ShrewSoft VPN Client alatu
Konačno, zadnji list definira SP-ove koji su potrebni. Najjednostavnije je dodati potrebnu mrežu 192.168.0.0 s maskom 255.255.0.0 kao na slici 5.15.
38
5. Praktični dio
Slika 5.15. Postavke SP-ova u ShrewSoft VPN Client alatu
Nakon konfiguracije, pritiskom na tipku “Connect” uspostavlja se veza sa poslužiteljem i dobiva ispis kao na slici 5.16.
Slika 5.16. Ispis ShrewSoft VPN Client alata pri uspostavi veze
Na računalu je dinamički stvoreno virtualno sučelje kojem je pridjeljena adresa 192.168.111.203 (možemo ga vidjeti naredbom ipconfig iz konzole) i preko kojeg se komunicira s mrežom iza poslužitelja. Uspostavu možemo provjeriti iz konzole ping-om prema računalu u lokalnoj mreži: C:\> ping 192.168.112.131 Pinging 192.168.112.131 with 32 bytes of data: Control-C ^C C:\> ping 192.168.112.131 Pinging 192.168.112.131 with 32 bytes of data: Reply from 192.168.112.131: bytes=32 time=53ms TTL=63 Reply from 192.168.112.131: bytes=32 time=4ms TTL=63 Reply from 192.168.112.131: bytes=32 time=3ms TTL=63 Reply from 192.168.112.131: bytes=32 time=3ms TTL=63 Ping statistics for 192.168.112.131: Packets: Sent = 4, received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 3ms, Maximum = 53ms, Average = 15ms C:\>
39
Sigurnosna stijena
Prvi pokušaj ping-a ne radi kao i kod racoon-a jer se njime inicira stvaranje SA na poslužitelju, no drugi već omogućuje pristup računalu unutar lokalne mreže tunelom. Da je to stvarno tako, vidimo po tablici 5.4 sa paketima koja vidi Ethereal. Tablica 5.4. Paketi na vanjskoj mreži pri ping-u sa Windows računala Redni broj
Vrijeme
Izvor
Odredište
Protokol
Informacije
27
49.206432 192.168.111.1
192.168.111.129
ESP
ESP(SPI=0x067319a4)
29
49.255958 192.168.111.129
192.168.111.1
ESP
ESP(SPI=0x1c0d5e24)
32
50.206624 192.168.111.1
192.168.111.129
ESP
ESP(SPI=0x067319a4)
33
50.208906 192.168.111.129
192.168.111.1
ESP
ESP(SPI=0x1c0d5e24)
36
51.206780 192.168.111.1
192.168.111.129
ESP
ESP(SPI=0x067319a4)
37
51.208175 192.168.111.129
192.168.111.1
ESP
ESP(SPI=0x1c0d5e24)
40
52.208028 192.168.111.1
192.168.111.129
ESP
ESP(SPI=0x067319a4)
41
52.209095 192.168.111.129
192.168.111.1
ESP
ESP(SPI=0x1c0d5e24)
Paketi koje vidi Ethereal se izmjenjuju između poslužitelja i klijenta, u našem slučaju računala domaćina za VMWare program, koji na mreži 192.168.111.0/24 ima adresu 192.168.111.1. U isto vrijeme, na mrežnom sučelju poslužitelja prema lokalnoj mreži, vidljiv je slijedeći promet: # tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 13:10:22.511863 arp who-has 192.168.112.131 tell 192.168.112.202 13:10:22.547697 arp reply 192.168.112.131 is-at 00:0c:29:f3:6e:46 (oui Unknown) 13:10:22.547980 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 2304, seq 512, length 40 13:10:22.567788 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 2304, seq 512, length 40 13:10:23.674811 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 2304, seq 768, length 40 13:10:23.676843 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 2304, seq 768, length 40 13:10:24.851956 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 2304, seq 1024, length 40 13:10:24.854683 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 2304, seq 1024, length 40 13:10:25.980615 arp who-has 192.168.112.202 tell 192.168.112.131 13:10:25.980706 arp reply 192.168.112.202 is-at 00:0c:29:84:08:01 (oui Unknown) 13:10:26.024323 IP 192.168.111.203 > 192.168.112.131: ICMP echo request, id 2304, seq 1280, length 40 13:10:26.026834 IP 192.168.112.131 > 192.168.111.203: ICMP echo reply, id 2304, seq 1280, length 40 12 packets captured 24 packets received by filter 0 packets dropped by kernel
Sada je jasno da se stvorio tunel između mreže 192.168.0.0 i računala 192.168.111.203 pri čemu su krajnje točke tog tunela računala 192.168.111.129 i 192.168.111.1. Da bi se ostvarilo prosljeđivanje prometa od ovog klijenta prema Internetu kroz poslužitelj kao što je bio slučaj u konfiguraciji s racoon-om, potrebno je na Windows računalu izmijeniti rutu prema svim adresama na Internetu nakon spajanja na poslužitelj. Tome služi naredba route. Nakon otvaranja Windows konzole, potrebno je prvo pogledati da li je zaista stvoreno virtualno sučelje, naredbom ipconfig. Prikazan je skraćeni ispis u kojem se vidi da zadnje sučelje ima postavljenu željenu adresu.
40
5. Praktični dio C:\> ipconfig Windows IP Configuration Ethernet adapter VMware Network Adapter VMnet2: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.111.1 Subnet Mask . . . . . . . . . . . : 255.255.255.0 ...skraćeno... PPP adapter Connection through Realtek RTL8139_810x Family Fast Ethernet NIC: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 83.131.28.247 Subnet Mask . . . . . . . . . . . : 255.255.255.255 Default Gateway . . . . . . . . . : 83.131.28.247 Ethernet adapter {485D5F10-17E2-4917-BCD2-32D3D978E767}: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.111.203 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : C:\>
Zatim ispišemo na ekran postavljene rute naredbom route print, kao što je prikazano u slijedećem skraćenom ispisu: C:\> route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 50 56 c0 00 02 ...... VMware Virtual Ethernet Adapter for Vmnet2 ...skraćeno... 0x1b000a ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface 0x1c000b ...aa aa aa aa aa 00 ...... Shrew Soft Virtual Adapter - Packet Schedul er Miniport =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 83.131.28.247 83.131.28.247 1 83.131.28.247 255.255.255.255 127.0.0.1 127.0.0.1 50 83.255.255.255 255.255.255.255 83.131.28.247 83.131.28.247 50 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 169.254.71.77 169.254.71.77 20 ...skraćeno...
Iz ispisa je vidljivo da treba izmijeniti prvu rutu koja pokazuje prema adresi 0.0.0.0 maske 0.0.0.0, dakle prema svim nepoznatim adresama. Najlakše je prvo obrisati rutu naredbom route delete. C:\> route delete 0.0.0.0
Nakon toga možemo dodati novu rutu naredbom route add gdje je računalo 192.168.111.129 posrednik, a argument sučelja je pročitan iz ispisa ruta kao broj virtualnog sučelja koje je stvorio ShrewSoft VPN Client. C:\> route add 0.0.0.0 MASK 0.0.0.0 192.168.111.129 METRIC 1 IF 0x1c000b
Ove postavke ne funkcioniraju u primjeru stvorene mreže u VMWare-u iz razloga što ShrewSoft VPN Client pokrećemo na Windows računalu koje koristimo kao domaćin, i u slučaju da izmijenimo ovu rutu, računalo gost koje predstavlja poslužitelj, gubi svoju vezu preko domaćina na Internet i time se stvara zatvoreni krug. Paket se sa domaćina šalje do poslužitelja, koji preko VMWare sučelja upućuje promet nazad na domaćina očekujući da će preko njega paket otići prema odredištu, ali obzirom na postavljenu rutu na domaćinu, paket se prosljeđuje nazad prema poslužitelju i time zatvara krug.
41
6. Zaključak Područje koje obuhvaća sigurnosna stijena, kao samo dio računalne sigurnosti, je vrlo široko i često isprepleteno s ostalim tehnologijama koje pružaju sigurnost računala i računalne mreže. Stoga je ovaj seminarski rad samo uvod u neke od mogućnosti zaštite i osnovne principe. U daljnjem radu na temi, potrebno je dublje istražiti ovdje iznesenu tematiku, kao i pokazati neke od načina konkretnog ostvarenja sigurnosne stijene, te moguće vrste napada na mrežu i sigurnosnu stijenu kao njen obrambeni bedem. Također, zbog spomenutog ispreplitanja, te razvoja tehnologije u smjeru obuhvaćanja naprednih funkcija koje pružaju drugi mehanizmi i njihovog uklapanja u koncept sigurnosne stijene, potrebno je posvetiti dodatnu pažnju i drugim metodama zaštite. Prije svega se misli na sustave detekcije upada (IDS), duboku inspekciju paketa (DPI) i mogućnosti automatske reakcije sigurnosne stijene na detektirane događaje (prekidanje veza, dodavanje novih pravila filtriranja, ...). Praktični dio rada predstavio je jednu od mogućnosti ostvarenja roadwarrior VPN scenarija na Linux-u kao jedne od dodatnih mogućnosti koje pruža sigurnosna stijena. U tekstu su već opisani problemi ovog ostvarenja, kao i načini na koje su neki od njih riješeni. Postoje i druge mogućnosti ostvarenja, kao što je već spomenuti FreeS/WAN, ali potrebno je napomenuti da se nedavno pojavila i nova verzija IPsec-tools-a koja ispravlja neke od problema automatske konfiguracije racoon roadwarrior klijenta. Stoga bi daljnji rad na ovoj temi svakako trebao zahvatiti i nove mogućnosti koje se javljaju razvojem korištenog softvera. Također, potrebno je obratiti pažnju i na interoperabilnost sa Windows klijentima, kao i klijentima drugih operacijskih sustava, koja u ovom radu nije dovoljno istražena. “The strength of a wall depends on the courage of those who defend it.” – Džingis Kan, mongolski vladar i vojskovođa
42
7. Literatura 1. I. Dubrawsky, Firewall Evolution – Deep packet inspection, dostupno na Internet adresi http://www.securityfocus.com/infocus/1716, (21/12/2005) 2. Check Point Firewall-1 Datasheet, dostupno na Internet adresi http://www.checkpoint.com/products/downloads/firewall-1_datasheet.pdf, (11/12/2005) 3. Cisco Systems, Cisco PIX, dostupno na Internet adresi http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/index.html, (11/12/2005) 4. Wikipedia VPN, dostupno na Internet adresi http://en.wikipedia.org/wiki/VPN, (9/12/2005) 5. Wikipedia SSL, dostupno na Internet adresi http://en.wikipedia.org/wiki/Secure_Sockets_Layer, (9/12/2005) 6. Wikipedia DPI, dostupno na Internet adresi http://en.wikipedia.org/wiki/Deep_packet_inspection, (9/12/2005) 7. Wikipedia Sigurnosna stijena, dostupno na Internet adresi http://en.wikipedia.org/wiki/Firewall_%28networking%29, (9/12/2005) 8. HoneyWall CDROM, dostupno na Internet adresi http://www.honeynet.org/tools/cdrom/, (21/12/2005) 9. SANS IDS FAQ, dostupno na Internet adresi http://www.sans.org/resources/idfaq/index.php, (11/12/2005) 10. HoneyNet Project, dostupno na Internet adresi http://project.honeynet.org/, (11/12/2005) 11. NETFILTER/iptables, dostupno na Internet adresi http://www.netfilter.org/projects/iptables/index.html, (11/12/2005) 12. Packet Filtering HOWTO, dostupno na Internet adresi http://www.netfilter.org/documentation/HOWTO//packet-filtering-HOWTO.html, (11/12/2005) 13. NAT HOWTO, dostupno na Internet adresi http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO.html, (11/12/2005) 14. The SANS Top 20 Internet Security Vulnerabilities, dostupno na Internet adresi http://www.sans.org/top20/, (12/12/2005) 15. Gerhard Zaugg, Swiss Federal Institute of Technology, Firewall Testing, dostupno na Internet adresi http://www.infsec.ethz.ch/people/dsenn/DA_GerryZaugg_05.pdf, (12/12/2005) 16. Dr. Thomas W. Shinder, Cherie Amon, Robert J. Shimonski, Debra Littlejohn Shinder: BEST DAMN FIREWALL BOOK PERIOD, dostupno na Internet adresi http://www.syngress.com, 2003, ISBN: 1-931836-90-6 17. Elizabeth D. Zwicky, Simon Cooper, D. Brent Chapman : Building Internet Firewalls SE, dostupno na Internet adresi http://www.oreilly.com, 2000, ISBN: 1-56592-871-7
43
Sigurnosna stijena
18. Charlie Scott, Paul Wolfe, Mike Erwin : Virtual Private Networks SE, dostupno na Internet adresi http://www.oreilly.com, 1999, ISBN: 1-56592-529-7 19. Ralf Spenneberg, IPsec HOWTO, dostupno na Internet adresi http://www.ipsec-howto.org, (15/5/2006) 20. Shrew Soft Inc. , ShrewSoft VPN Client, dostupno na Internet adresi http://www.shrew.net/, (10/6/2006) 21. IPsec-tools, dostupno na Internet adresi http://ipsec-tools.sourceforge.net/, (15/5/2006) 22. Setkey manual, dostupno na Internet adresi http://netbsd.gw.com/cgi-bin/mancgi?setkey++NetBSD-current, (15/5/2006) 23. Racoon manual, dostupno na Internet adresi http://netbsd.gw.com/cgi-bin/mancgi?racoon++NetBSD-current, (15/5/2006) 24. Racoon.conf manual, dostupno na Internet adresi http://netbsd.gw.com/cgi-bin/mancgi?racoon.conf+5+NetBSD-current, (15/5/2006) 25. Racoonctl manual, dostupno na Internet adresi http://netbsd.gw.com/cgi-bin/mancgi?racoonctl++NetBSD-current, (15/5/2006)
44