................... ...::: phearless zine #2 :::... ......................>---[ Hiding Behind FIREWALL ]---<....................... ..........................>---[ by _bl00dz3r0_ ]---<........................... blood.ugs[at]gmail[dot]com >=---- [0x00] % I'am Going in! <0x00a> INTRODUCTION <0x00b> Acknowledgments <0x00c> Documentation [0x01] % Me the Armored!!! <0x01a> Get your IPtables now <0x01b> KERNEL setup <0x01c> User setup [0x02] % FW philosophy <0x02a> FW Technologies <0x02b> FW Arhitecture <0x02c> Packet Filters <0x02d> Proxy Server <0x02e> We made this [0x03] % IPtables Internals <0x03a> How it work? <0x03b> USER States [0x04] % It's time for rules baby! <0x04a> BASICS commands <0x04b> Putting some rules <0x04c> Rules,rules and more rules! >=---- //////////////////////////////////////////////////////////////////////////////// --==<[ 0x00 % I'am Going in! \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ==-[ 0x00a % INTRODUCTION Kada sam odlucivao sta cu pisati za .pH zine #2, krenuo sam sa idejom da je prava tema za mene LINUX Hardering. Medjutim vremenom kako sam pisao sve vise i vise, shvatio sam da je to preobimna tema za jedan tekst u zine-u. Jednostavno bilo je previse materijala kog treba obraditi previse tema kako bi se sve to strpalo u jedan broj magazina. Samo sekcija koja je obuhvatala Hardering uz pomoc Firewalla bila je toliko obimna da sam na kraju odlucio da napisem tekst samo o FW, a da ostale nacina Harderinga ostavim za sledece brojeve. Zato sam sve poceo iz pocetka kako bi sto dublje mogao da zadjem u ovu temat- iku koja je svakako veoma interesantna i primamljiva. Kao referentni firewall sam uzeo IPTABLES, IMHO najbolji FW koji se moze naci ne samo na UNIX sistemu vec uopste na racunarskim sistemima. Moc i fukncionalnost IPtablesa su ogromni zbog toga mu vredi posvetiti citav tekst u ovom broju, a ne samo jedan odeljak. Trudicu se da prvo objasnim osnovne pojmove i koncepciju firewallova, a zatim da polako predjemo na konfiguraciju i koriscenje IPtablesa. Ako se neko pita sta cemu uopste FW...odgovor je jednostavan - pruzanje velike doze sigurnosti i pravljenja prave male tvrdjave od vaseg sistema, naravno sa par jos drugih utila o kojima cemo u drugim brojevima. Sve to skupa moze doprineti da se osecate sigurno i da ne brinete toliko za zle namere Malicioznih usera ... Nemorate biti paranoicni da bi koristili FW. Jednostavno svaki dan ka vasem sistemu je upuceno na desetine zahteva za uspostavljenje konekcije, bilo da su to neki crvi koji zele da vas racunar pretvore u zombija koji ce hakeru sluziti u neke maliciozne svrhe, ili bio to neki script kiddie koji skenira neke IP opsege u nadi da ce naleteti na nesto busno sto moze ownati. Ukoliko zelite da uvidite i da se zastitite od takvih vrsta "napada" dovoljno je u vecini slucajeva da pravilno podesite FW i da budete spokojni.... Ovaj tutorial je tako pisan da vam na sto laksi nacin objasni samu koncepciju i nacin rada jedng FW kao i nacin da uspesno podesite vas FW. Dacu niz kratkih i dobrih recepata uz pomoc kojih mozete naterati da vam FW radi bash onako kako ste vi to zeleli. Takodje sve cu pokazati na primerima tako da vam se jasno stavlja do znanja sta dobijate sa odredjenim pravilima. Ucemo i malo dublje u strukturu IPTablesa i njegovog funkcionisanja cisto da bi shvatili kako on uopste radi i sta se sve odvija ispod haube. Time cete dobiti jasnu sliku sta se i kad desava ... Takodje da nepomenem jednu vaznu stvar. Necu pisati o nacinu zaobilaska FW niti nesto o nacinama njegove provale i svemu sto ima veze sa doticnim temama. Pisacu o poboljsanju sigurnosti sistema uz pomoc FW. U narednim brojevima zine-a pokusacu da sto detaljnije objasnim i ostale tehnike Harderinga tako da u vezi same teme ocekujete niz tekstova, naravno ako sve bude teklo po planu. Nadam se da cete uzivati jel tema je zanimljiva i moze se dosta korisnih stvari nauciti. Sama tematika je takodje obimnija pa sam se koncetrisao na IPtab- les. Medjutim nije to jedini razlog zasto sam odabrao bas IPTables razlog lezi u tome sto je kao sto vec rekoh po mom misljenju najbolji FW koji sebi mozete priustiti. Shvatanjem tematike o kojoj sam pricao moze vas naterati da razmisl- jate drugacije i da opet razmislite o onome "Sta ce mi fajervol"... To tipicno misljenje podstaknuto je mozda i prevelikim samopouzdanjem kojeg korisnici pogotovy UNIX sistema imaju na pretek.Jel tipicna je teorija da su UNIX sistemi neprobojni i da sluze samo u svrhe hakera. Tu se i dolazi na zaklj- ucak zbog cega da koristim FW kada imam LINUX :> ...pokusacu da demistificiram tu misao i da vas ubedim, da vam FW nikako nemo- ze odmoci vec samo pomoci. ==-[ 0x00b % Acknowledgments Zeleo bih da se zahvalim prvo sam sebi sto sam dovoljno lud da bih sve ovo izneo iz kraja, takodje bih zeleo da se zahvalim ph timu na podrsci i strpljenu za vecito kasnjenje tekstova...xexe :)...ali sta je tu je. Eto zadnjih dana sam bio offline pa su svi cekali na moj txt kako bi taj zine ugledao svetlost dana. Opet bih pozdravio svoje drugove i drugarice jel zvrjanje za racunarom 24h dne- vno je stetno verujte mi...bar u nekoj dozi (evo zelenim u mraku) Zbog toga cure,pice i ostali vidovi zabave su ono najvaznije...a ne sploitanje:) Mada opet zavisi na kakvo sploitanje mislimo :) Pah nemogu reci da mi je neko pomogao oko dokumenta, jel sam se mucio dosta i stvari sam provaljivao sam uz poneku literaturu tu i tamo. Uglavnom mislim da je najbolje sam sebe uciti, truditi se citati i vezbati jel praksa je veoma vazna Zeleo bih da pozdravim sledece ljude : __________________________________________________________ | pozdravi za : | ----------------------------------------------------------- | pinky_jso,_alexa_,nitro ,m4rk0,demo,sanja,nada,stevic | | kermit,tofila,duleCyber,Misko,nemanja,Sindel,ana,nada2 | | Stevicius,Alexandar iz bogatja,GGandalf,pole,tadija, | | sve sa faxa :) ....sve DOBRE PICKE a i one malo ali | | malo losije bez ETF-ovki plz :)....onoj slatkoj tj naj-| | lepsoj curi sa engleskog....SVIMA koji me ZNAJU. | |=========================================================| | spec pozdravi za: | ----------------------------------------------------------- | moje kolege iz pH zine-a i blackhata | | Sve sa #ugs chana , #sabac chana | | ceo underground ex-yu :) | | | | MaYuR ghett00 & Semsa Suljakovic & Vida Pavlovic | | ...bez kojih nebi imao inspiracije... | ----------------------------------------------------------- ...pah ako sam zaboravio nekog steta, ko ce se svega setiti. ES forums greet? nope :) sorry geys this time. ==-[ 0x00c % Documentation U toku proucavanja rada FW i samih IPTablesa koristio sam se svojim prethodnim znanjem. Medjutim posto sam hteo da u tematiku udjem sto dublje bilo je potrebno da svoje znanje dopunim i unapredim. Stoga sam koristio razlicitu literaturu i dokumentaciju koja mi je pomogla oko savladjivanja nekih stvari. Takodje mislim da je korisno znati odakle sam naucio nesto i takodje znati da je potrebno iskoristiti tu literaturu u svrhe proucavanja... Nece vam skoditi da saznate jos vise i jos neke naprednije teme stoga se bacite na citanje knjiga... Citanjem takvih spisa mozete samo uvecati nivo znanja sto nemoze da skodi. [=- http://www.netfilter.org/documentation/ -- najbolje mesto za ucenje. [=- Linux Security book [=- Secure Servers [=- http://iptables-tutorial.frozentux.net/iptables-tutorial.html [=- #man iptables [=- www.google.com [=- brain Pokusajte sto vise da naucite iz doticne literature jel ja ipak nisam mogao toliko zaci u ovako obimnu temu jel mi vreme ne dozvoljava. //////////////////////////////////////////////////////////////////////////////// --==<[ 0x01 % Me the Armored \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ==-[ 0x01a % Get your IPtables now Kako bismo uopste poceli raspravljati o nacinu rada i nacinu konfiguracije jednog FW potrebno je prvo da doticni i posedujemo na masini. Te stoga posto se ovde govori o IPTablesima prvo cu opisati gde mozete naci doticni i kako ga uspesno instalirati i izvrsiti setup. Instalacija IPTalbesa se moze izvrsiti na dva nacina: [=- Skidanjem odredjenog paketa sa Interneta [=- U toku \make configure\ Kernela IPTables se moze ucitati u KERNEL. Takodje vazno je da napomenem da IPtables koriste novije kernele 2.4.X i 2.6.X dok se na starijim Kernelima nalazi stariji brat IPChains koji ima slican nacin rada. U sledece dve sekcije cu opisati obadva nacina tako da posle ovog poglavlja cete imati uspesno instaliran i setupovan IPTables na vasem sistemu tako da bi mogli nastaviti daljnju diskusiju. ==-[ 0x01b % KERNEL Setup Prvo cemo opisati nacin na koji se IPTables moze ucitati direktno u KERnEL. Kao sto vec rekoh IPTables podrzava kernele od 2.4 pa na ovamo... KERNEL setup je podosta komplikovan i zamrsen tako da uspesno instaliranje je pod znakom pitanja ukoliko ne koristite kompletnu dokumentaciju jel postoji ve- liki broj opcija i veliki broj stvari koje treba definisati sto nije nimalo lak zadatak. Uglavnom npr pri rekompajliranju kernela mozete direktno u KERNEL ubaciti cisti IPTables. Npr pri komandi \make configure\ ili neke slicne komande koje koristite Sada cu opisati niz osnovnih opcija koje biste trebali da imate na umu. Opet napominjem najbolje je procitati kompletnu dokumentaciju IPtablesa kako biste bili sto bolje upoznati sa onim sto vam se nudi. [=- CONFIG_PACKET - Ovo je opcionalna opcija i nije nuzno potrebna za rad IPTablesa. [=- CONFIG_NETFILTER - Bez ove opcije nemozete ni nastaviti citanje ostatka tutoriala. Jednostavno ova opcija vam je potreba ukoliko zelite da vas sistem koristite kao FW ili GateWay na Internetu.Medjutim takod- je je potrebno dodati drivere za date uredjaje npr eth itd.... [=- CONFIG_IP_NF_CONNTRACK - Ova opcija omogucava connection tracking.Potr- eba je pri koriscenju NAT ili MASQUARADE. [=- CONFIG_IP_NF_FTP - Opcija je potrebna ukoliko zelite da FPT-ujete kroz Firewall. Radi connection tracking na FTP konekcije. [=- CONFIG_IP_NF_IPTABLES - Ovo se obavezno mora ukljuciti u KERNEL,zbog toga sto NAT i filterovanje nece raditi bez ove opcije [=- CONFIG_IP_NF_MATCH_LIMIT - Opcija koja nije obavezna medjutim moze vam po- moci ponekad kada ste pod DoS napadima. Naime ova opcija nudi LIMIT flag koji ce kontrolisati koliko paketa stize po minutu itd.... [=- CONFIG_IP_NF_MATCH_MAC - Ova opcija kada je ubacena sluzi za podrsku testiranja pravila na osnovu MAC adrese. [=- CONFIG_IP_NF_MATCH_MARK - Ova opcija nam omogucava da oznacimo paket MARK i da zatim sprovodimo pravila na osnovu tog paketa... [=- CONFIG_IP_NF_MATCH_TOS - Kada ukljucimo ovu opciju mozemo vrsiti uspor- edbu na osnovu TOS polja paketa (Type of Serv- ice). [=- CONFIG_IP_NF_MATCH_TOS - Uporedjuje IP pakete na osnovu njihovih MSS po- lja. [=- CONFIG_IP_NF_MATCH_STATE - Velika novina u odnosu na IPChainse.Omogucava stateful matching na pakete o cemu ce biti reci kasnije. [=- CONFIG_IP_NF_MATCH_OWNER - Veoma zanimljiva opcija koja nudi testiranje pravila u odnosu na vlasnika Socketa tako npr mozemo zabraniti odredjenim userima da koriste internet. [=- CONFIG_IP_NF_FILTER - Obavezna opcija kada se radi o filterovanju dolazeceg i odlazeceg saobracaja. [=- CONFIG_IP_NF_TARGET_REJECT - Omogucava REJECT kog mozete koristiti umesto DROP-a i tada ce se poslati ICMP error poruka kao reply. [=- CONFIG_IP_NF_TARGET_MIRROR - Poslati paketi se vracaju posaljiocu paketa. [=- CONFIG_IP_NF_NAT - Ova opcija vam dozvoljava NAT (Network Adress Translation) [=- CONFIG_IP_NF_TARGET_MASQUERADE - Omogucava Maskaradu. [=- CONFIG_IP_NF_TARGET_LOG - Ovo ce nam omoguciti da logujemo pakete npr ka syslogd i da vidimo sta se desava sa paketom. To su neke osnovne opcije koje treba znati zasta sluze i koja ima je namena za kompletnu listu imate dokumentaciju i google :0 ==-[ 0x01c % USER Setup Ovde i nema tliko polemisanja dovoljno je skinuti IPTables u obliku nekog pak- eta npr tar.gz, extractovati ga sa: ==---------[code]----------== #tar -xvzf ime_paketa.tar.gz ==---------[/code]---------== Paket mozete skinuti sa oficijalnog sajta: [=- http://www.netfilter.org/downloads.html [=- http://www.iptables.org/files/iptables-1.2.7a.tar.bz2 I skinite najnoviju verziju koja je trenutno aktuelna. U svakom slucaju ako negde zapnete imate odlican README koji vam moze pomoci u resenju problema oko instalacije. U prcesu instalacije mozete navesti niz opcija sa kojima ce se kompajlirati IPTables i takodje niz opcija koje mozete ubaciti u kernel. zatim cete uraditi: ==---------[code]----------== make KERNEL_DIR=/usr/src/linux/ ==---------[/code]---------== Mozemo navesti i DIR gde cemo instalirati iptables: ==---------[code]----------== make PREFIX=/usr && make PREFIX=/usr install ==---------[/code]---------== Dok ako zelimo da se sve instalira po defaultu uradicemo: ==---------[code]----------== make install KERNEL_DIR=/usr/src/linux/ ==---------[/code]---------== i to bi bilo to sada samo ==---------[code]----------== #iptables ==---------[/code]---------== Jedan od nacina snimanja koji je pre ovih novih verzija smatran za experimen- talan je i iptables-save: ==---------[code]----------== z10n#-iptables-save z0n#-iptables-restore ==---------[/code]---------== Ova druga opcija sluzi za ucitavanje definisanih pravila i lanaca. Sada ste spremni za daljnje korake. //////////////////////////////////////////////////////////////////////////////// --==<[ 0x02 % FW philosophy \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ==-[ 0x02a % FW Technologies U ovoj sekciji cemo malo raspravljati o samim principim FW uopsteno ,a ne str- iktno o IPTablesu. FW ce pokusati da vasu vezu ucini sto bezbednijom i otpornijom na napade,pokusati da sacuva internu mrezu od spolajsnje. Uz pomoc FW kao sto sam vec napomenuo mozete sacuvati integritet sistema,sacuv- ati vazne podatke koje imate na sistemu od pogleda malicioznih korisnika, ili cak i vasu reputaciju ukoliko drzite neku ozbiljniju firmu. Bilo sta da je razlog vasoj zelji za zastitom jedinstveno je to da se borite protiv nekoliko faktora: [=- Upadi - Sama poenta upada jeste da napadac moze da koristi vas racu- nar kao da je njegov tj da ima potpunu kontrolu nad njim. Postoje na hiljade nacina na koje ce dovitljivi hakeri pokus- ati da udju u vas sistem. Na vama je da pokusate da ih spreci- te ili barem da im maksimalno otezate posao. FW vam moze pom- oci u sirokom opusu scenarija...sve od Social Indzinjeringa pa do ranjivosti servisa itd. Cak iako je ljudska gluposr uzr- ok mnogih provala (losi passovi,SI), FW vam moze pomoci da max limitirate pristupe vasoj mrezi/sistemu i smanjite broj vrata na koja Napadac moze da udje cak i ako je na neki nacin izvu- kao PASS od nekog radnika npr. [=- DoS/DDoS - Od ovoga zaista i nema neke savrsene pomoci...ukoliko se radi npr o jakim linkovima.Sve sto mozete da uradite jeste da usp- esno logujete Adrese sa kojih se flood odvija. Medjutim kod slabijih DoS napada moze se izvrsiti razna filterovanja na osnovu kojih mozete delimicno uspesno odstraniti veliki broj nepotrebnih paketa. Takodje pakete mozete vratiti senderu med- jutim opet gusite i sebe. Jednostavno cilj DoS napada jeste da vas spreci da koristite vas racunar ili mrezne resurse... [=- Greske - Sa FW se mozete boriti i protiv softverskih gresaka koje su cesto exploitovane od strane hakera i na taj nacin, iskorisce- ne za neautorizovani ulazak na sistem. FW vam moze pomoci da ogranicite prava servisa,da smanjite rupe kroz koje se mogu uvuci hakeri itd...Znaci uz pomoc FW mozete uciniti rad poj- edinih servisa bezbedniji. [=- Zlona.Kor.- FW vas moze zastiti od zlih korisnika koji zele da naruse integritet vaseg sistema. Mozete odbijati pakete sa odredj- enog hosta ili dozvoliti samo odredjenim userima da koriste internet. Medjutim FW vas nemoze zastiti od usera koji imaju fizicki pristup sistemu. Takodje vazno je da navedemo par osnovnih definicaja kada pricamo o FW,cisto da bi svatili o cemu ja to zapravo pricam i da bih vam dalji put ucinio laksim: [=- Packet - O paketima sam mnogo vise pricao u proslom broju zinea,tako da je najbolje da procitate taj deo zbog shvatanja osnovnih pojmova mreze. Najednostavnije PAKET je jedinica koja sluzi za prenos podataka preko mreze. Stavicu i slikoviti prikaz paketa... ______________________________________________________________ | bits 4 8 16 19 24 31 | | __________________________________________________________ | | | version | Lenght | Tip servisa | Totalna duzina | | ------------------------------------------------------------ | |-----------------------------------------|----|-----------| | | Indetification |Flag|Fragment Offset | |----------------------------------------------------------| | | time to live | Protocol |Header Checksum | | |----------------------------------------------------------| | | S O U R C E A D D R E S S | | |----------------------------------------------------------| | | D E S T I N A T I O N A D D R E S S | | |----------------------------------------------------------| | | O P T I O N S | | |----------------------------------------------------------- | | D A T A | | |__________________________________________________________| |____________________________________________________________| Izvrisicemo malu analizu ovih polja: [=- Version - Verzija IP koja se trenutno koristi [=- Lenght - Velicina headera [=- ToS - Type of Service [=- Total l,- Totalna velicina IP paketa. [=- Identif.- Indetification, broj koji pomaze pri skupljanju datagram fragmenata. [=- Flag - 3-bit polje > prvi bit pokazuje dali paket moze biti fragmentovan Drugi pokazuje dali je ovaj fragment poslednji fragment u seri- ji,a treci bit se trenutno ne koristi. [=- F ofsset- Fragment ofsset,lokacija fragmentovanih podataka. [=- TTL - time to Live,brojac koji odbrojava do 0.Kada odborji do 0 paket se ispusta, bez njega bi paketi kruzili neprestano. [=- Protocol- Ukazuje da gornji protokol prima nadolazece pakete. [=- H check.- Header checksum, brine se o integritetu paketa. [=- Adress - Adrese posaljioca i primaoca. [=- Options - Opcije vezane za sigurnost. [=- Data - Informacije Jos da napomenem sta su IP datagrami (datagrams). IP datagrami su u osnivi veoma proste tako reci osnovne transportne jedinice na Internetu. Datagrami takodje imaju header sa informacija o rutiranju koje koriste ruteri. IP datagram izgleda ovako: _________________________________________________ | PODATCI ZA GORNJE SLOJEVE | |_______________________________________________| | IP HEADER | IP DATA | |_____________________|_________________________| | DATA link HEADER | Data link data | Frame check segments |__________________|________________|___________| Ovaj deo sam naveo jel se on mora znati kako bi nastavili proucavanje rada FW. Iako kao sto vec rekoh dosta toga o Osnovama Mreza sam opisao u proslom broju... [=- Perimeter Network - Mreza izmedju sigurne mreze i spoljne mreze.To je samo jos jedan sloj koji poboljsava sigurnost sistema Takodje se jos naziva i DMZ (demilitarizovana zona) [=- NAT - Network Adress Translation je proces u kome ruter me- nja podatke u paketa kako bi izmenio mreznu adresu. Ova tehnika omogucava velikom broju racunara da se povezu na internet koristeci mali broj IP adresa ili cak jednu. [=- Bastion Host - Sistem sa najvisom sigurnoscu jel je cesto izvan mre- ze izlozen napadima i mora biti otporan na vulnse... On je granica izmedju unutrasnje mreze i Interneta. [=- Dual-homed host - Sistem koji poseduje dva mrezna interfejsa. [=- Proxy - Najprostije receno PROXY-ji su programi/racuari koji prihvataju zahteve korisnika za internet servise i prosledjuju ih pravim servisima.Dakle ponasaju se kao GATEWAY ka servisima.Koriste se iz sigurnosnih razloga i zbog anonimnosti npr. [=- Screens - Takodje vrsta firewalla,koja nema IP adresu.Bash iz tog razloga je veoma otporan na napade preko mreze Cesto se vrste postavke sa vise interfejsa tako da mozemo npr postaviti Web Server ili news server na odvojenim screened subnet koristeci isti screen. U ovakvoj konfiguraciji eth interfejs slusa sve pake- te koji se prenose preko njega i to na osnovu veoma kompleksnih pravila,ka nekom drugom interfejsu. ..[=-< N A T . . Kada se radi o NAT-u (Network Address Translation), on omogucava da se jedan komplet mreznih adresa koristi kada je rec o unutrasnjoj mrezi, a sasvim drugi kada se radi o spoljasnjoj mrezi. Svi zahtevi prolaze kroz tzv Choke Point koji u stvari i radi Translaciju tj prevod,sve adrese koje se ne Prevedu nemogu raditi. Zbog toga sam NAT ne obezbedjuje sigurnost, ali njegov nacin rada u vezi sa dr- ugim mehanizmima - da. U slucaju NATovanja ruter salje pakete i takodje ih modifikuje. Najlakse cemo pokazati kako to sve radi na primeru: ------------ | | 10.5.2.1 -------- 212.64.46.112 |Unutrasnja| ------------->>> | NAT | ----------->>> | masina | -------- ------------ Znaci kada masina koja se nalazi unutar NAT-ovane mreze posalje paket on dolazi npr na ruter i tada se vrsi NAT-ovanje. Tj menja sa source adresa posalj- ioca u headeru paketa tako da izgleda kao da je paket poslat sa druge adrese. Znaci ako je adresa nase masine 10.2.5.1 kada paket prodje kroz NAT promenice adresu u 212.64.46.100 Za nadolazece pakete menja se DEST adress. Tj kada masina van mreze posalje paket NAT modifikuje DEST spoljnu vidljivu adresu u unutrasnju koja se ne vidi od strane posaljioca. Dobre strane NAT-a su sto moze ustedeti na Address space-u, a i takodje zbog sigurnosnih razloga. Znaci konekcija bez prolaska kroz NAT ce biti neuspesna sto je opet jedan vid zastite. NAT vam moze pomoci da stavite zabranu na spoljni saobracaj odredjene vrste ili npr na sav saobracaj koji je usmeren ka odredjenom hostu.Restrikcije mogu biti dublje nego kod Packet filtera. Mozda je problem sto necete imati svoj public IP tako da vas moze onemoguciti pri obavljanju nekih poslova dizanju servera itd.... ==-[ 0x02b % FW Arhitecture [=- Single box Arhitektura - Najprsotija od svih arhitektura je svakako Single Box.kao sto joj i samo ime kaze ovaj FW se sastoji iz samo jednog objekta. Prednost kod ovakvog sistema je sto imate samo jedno mesto koje mor- ate da konfigurisete medjutim mana je sto celokupna zastita zavisi od samo tog jednog mesta. Tako ako je ono podlozno provalama ceo sistem je isto... Posto je ovaj sistem prost uvek mozete znati gde vam je slabost i brzo je pronaci i otkloniti dok kod vise-slojnih sistema morate se pomuciti dok ne nadjete i otklonite uzorke ranjivosti sistema. Da ne pominjem koliko je ova varijanta ekonomicnija znaci - socijala U ovakvom sistemu mozete imari npr RUTER koji vas povezuje na Int- ernet i na njemu mozete konfigurisati Packet Filtring po zelji. Takodje mozete regulisati i dozvoljene/zabranjene protokole itd... To izgleda nesto ovako: -------- | | ------- | b0x | -------->>> |ruter| ------>>> INTERNET | | ------- -------- [=- Double Horned Host - Ova arhitektura se zasniva na racunaru koji ima 2 mrezna interfejsa. I to najmanje 2 jel moze imati i vise. Ovakav racunar se moze ponas- ti i kao RUTER tj moze rutirati IP pakete izmedju mreza. Medjutim ukoliko zelite da ga koristite kao FW onda se ne mozete osloniti na njegove routing sposobnosti jel ih morate ukinuti. Znaci IP paketi mogu putovati od sistema unutar FW ka horned hostu medjutim nemogu se direktno razmenjivati izmedju sistema jel je saobracaj blokiran. Znaci Horned host je povezan izmedju Interneta i unutrasnje mreze. Nad ovakvom vrstom FW mozete imati veliku kontrolu jel npr mozete da nedozvolite razmenu pakete u nekom smeru izmedju Unutrasnje i spoljasnje mreze. Ovakav nacin zastite se koristi kada je protok ka Internetu mali jel moze doci do zagusenja i npr koristi se kada nije potrebno pok- retati neke servise. Znaci tako je dizajniran da nijedan paket nemoze proci u unutrasnju mrezu. [=- Screened Host - Glavni oslonac sto se tice sigurnosti u ovakvoj vrsti arhitekture jeste Packet Filtring. Struktura ove arhitekture izgleda ovako: Bastion host je na unutrasnjoj mrezi. Tu je jos i screening ruter koji na kom se vrsi filterovanje paketa. Filterovanje je podeseno ta- ko da je bastion host jedini sistem u unutrasnjoj mrezi na koga hos- tovi sa neta mogu da vrse konektovanje. I tada se dozvoljavaju samo odredjene vrste konekcije. Posto se spoljni sistemi mogu kaciti samo na ovaj host on mora biti mnogo dobro obezbedjen i mnogo se vi- se voditi racuna o njegovoj sigurnosti. Mozete npr namesitti i da onemogucite konekcije sa unutrasnje mreze... Za razliku od dual horneda ovde je dozvoljen pristup paketima sa interneta ka unutrasnjoj mrezi sto je rizicno. Kada napadac npr prodre u bastion host onda ima kontrolu nad celom unutrasnjom mrezom. [=- Dial-up Arhitecture - Ukoliko koristimo dialup servise kao sto je npr ISDN onda se mozemo osloniti i na ovu arhitekturu. Sa mreznom kartom mozemo obezbediti DMZ tj filterovanu zonu. Ovo ce vam omoguciti da imate totalnu kontr- olu nad svim internet servisima i odvaja ih od tvoje regularne mre- ze. __________ | | _______________ | Firewall | (LAN) | | / Internet \----| Sistem |--(HUB)--| MASINA | \_ _ _ _/ |__________| |_______________| | (DMZ) (HUB) [=- Firewall with Proxy Server - Proxy server mozemo staviti i u LAN tako da definisanjem odredjenih pravila mozemo postici da se samo Proxy srver moze kaciti na Inter- net preko servisa kog obezbedjuje. Obicni useri se na internet mogu kaciti samo preko proksi servera. Mozemo koristiti poznate proxy servere tipa \SQUID\ ili npr \FWTK\.SQUID je veoma dobar jel podrz- ava i proxy transparency. http://squid.nlanr.net/ __________ | | _______________ | Firewall | (LAN) | | / Internet \----| SISTEM |--(HUB)--| MASINA | \_ _ _ _/ |__________| | |_______________| | ______________ | | | +----| PROXY | |______________| ==-[ 0x02c % Packet filters Najprostije receno Packet Filter je software cija je duznost da "zagleda" u HEADER paketa koji prolazi i da odluci o njegovoj sudbini. Znaci Packet Filter ce odluciti da li ce ACCEPT (prihvatiti) ili DROP tj odba- citi paket.Takodje postoje i komplikovanija pravila filtriranja. Zbog cega uopste koristiti Packet Filtere? Pa naravno iz sigurnosnih razloga. Nemorate biti paranocni zaludjenik za sigur- nost da biste koristili Filtere, dovoljno je da samo malo vodite racuna o sig- urnosti i integritetu vaseg sistema. Uz pomoc Packet Filtera mozete vrsiti kontrolu nad paketima koji pristizu ka i od vaseg sistema. Sagledavanjem sadrzine svakog headera mozete odluciti sta radi- ti sa doticnim paketom. Ukoliko ste povezani na Internet, sto je gotovo sigurno preko Packet Filtera cete kontrolisati sav saobracaj koji se interesuje vas. Mozete npr ukoliko je to potrebno zabraniti dolazak paketa sa odredjenih hostova ili mozda cak zabraniti sav nadolazeci saobracaj??!! Primera je mnogo zasto koristiti Packet Filtere...jednostavno shvaticete vreme- nom da je vazno sacuvati integritet sistema. Sto se tice LINUX-a i Packet Filtera stvar je jasna - IPTables. Medjutim mnogo toga se promenilo od vremena \ipfwadm\-a koji se prvi put pojavio u kernelu 1.2.1 sada vec daleke 1995.IPFWADM je imao neke osnovne featurse tipa filtriranje po broju porta ili SOURCE/DEST adrese. Medjutim i pored toga sto je sadrzao samo osnovne karakteristike PF imao je siroku primenu. Sa kernelom 2.2.0 dosao je i IPChains koji je uneo niz poboljsanja i promena u odnosu na ipfwadm.Neke od znacajnijih promena podrazumevale su: bolji NAT sistem ,lance pravila i jos mnogo toga. 2001 godine sa kernelom 2.4 izasao je IPTables...Sa sobom je doneo niz unapredj- enja tipa filtriranje na osnovu bilo kog TCP flaga zatim filtriranje na osnovu MAC adrese,mocan loging sistem,bolji NAT, podrska za borbu protiv DoS itd... IPTables se koriste i dan danas i sadrze vecinu featursa koje biste ikad pozele- li da sadrzi jedan Packet Filter. Znaci Packet Filter je samo jos jedan mehanizam koji odredjuje koji ce paketi uci u mrezu ,a koji ce izaci sa nje.Vazno je da pomenemo da ove IP mreze povez- uju RUTERI.Ruteri mogu biti hardverske ili softverske prirode. Kada se radi o softverskim ruterima to su samo programi koji su pokrenuti na masinama specijalne namene. Svejedno ruter moze biti win ili unix based sistem. Paketi putuju izmedju rutera sve dok ne dodju na njihovu finalnu destinaciju. Ruter odlucuje kako ce i kada slati pakete. IP paket sadrzi informaciju koja govori gde paket putuje,medjutim ne i kako pu- tuje. Medjutim to je ROUTING Table u memoriji koja opisuje kako se paketi salju na destinaciju. Filterovanje se moze izvrsiti na sijaset nacina i po razlicitim uslovima. Npr filterovanje po IP adresi po portu po servisu itd....o tome sam vec pricao Potrebno je da pomenem vrstu Packet Filtera tj Stateful packet-filters. ==-[ 0x02d % Proxy Server Dolazimo do teme koje ce svakako interesovati mnoge.Vecina onih tj gotovo svi koji su pokusali nar jednom da izigravaju "hakera" dosli su do saznanja da kada se "hakuje" treba koristiti proxy kako te ejfbiaj nebi ufatio :>> Ta tipicna definicija dovodi do zakljucka da je proxy tamo neki ip preko koga cete ici i tako sakriti svoj. Naravno retko ko se zapita kako to zapravo radi sta se krije iza svega toga. Tu dolazimo na red mi da malo pojasnimo pojmove vezane za ovu oblast. Najprostije receno proxy server je server cija je uloga u ostvarenju komun- ikacije izmedju klijenata unutar mreze i spoljne mreze. Proxy nije nuzno FW tehnologija, ali se cesto koristi kao sastavni deo jedne FW strukture.Pokusacu da sto jednostavnije objasnim kako funkcionise Proxy... Host unutar mreze pokusava da kreira konekciju ka nekoj WEB stranici izvan mreze. Web Browser bez obzira koji je podesen sa IP adresom ili hostom Proxy servera.I umesto da zahteve salje WEB stranici,zahtevi se upucuju od strane hosta ka Proxy-ju. Zatim u zavisnosti od konfiguracije Proxy servera on priv- hvata ili odbija tu konekciju. Znaci host ne pravi konekcije ka spoljnem svetu vec to radi Proxy umesto njega. Proxy serveri se mogu konfigurisati na stotine nacina tako da mozemo zabraniti pristup odredjenim clanovima neke grupe, nek- im userima ili nekim servisima itd... -------- |---| _________ | | | p | ____________ | Web | | HOST | --------->| r | ------> | INTERNET | ------> | Server | | | | o | ------------ ---------- -------- | x | | y | ----- >------------------------><-----------------------------------------> Host to Proxy TCP conn Proxy to Web Server TCP conn Proxyje mozemo podeliti u dve grupe. Prva je Aplication Proxies. Aplication Proxy -es su specificni za odredjenu aplikaciju. Tako da mozemo imati u mrezi npr HTTP ili FTP server koji operise, ali takodje mozemo i kombinovati. Drugu grupu cine CIRCUIT-LEVEL proxiji koji za razliku od Ap Level proksija sprovode sav TCP/IP saobracaj. Kada se radi o Aplication proksijima mozemo navesti jos jednu pogodnost a to je da se Web stranice mogu prikazivati i lokalno pri cemu je brzina ucitavanja veca. To se desava kada jedan user npr poseti neku stranicu i onda se stranica kesira (cache) tako da svaki sledeci pristup toj stranici od strane bilo kog hosta unutar mreze ce biti znacajno brzi. Medjutim tu takodje dolazimo do toga da se Ap proksiji lako mogu zaobici. Posto su obicno podeseni unutar neke aplik- acije npr Browsera ta podesavanja se lako mogu ponistiti ili npr koristiti dru- gi BROWSER. Zbog toga se u sistem moze ubaciti i FW tako da npr dozvoljava da source adresa poslatih paketa moze biti samo adresa PROXY-a a da ostali koji idu van proksija budu odbijeni. Medjutim neke aplikacije pogotovu nove mozda nemaju podrsku za pr- oksije cime se opet dolazi na problem pri koriscenju Ap proksija. Ukoliko stranice koje trazite nisu kesirane mozete osetiti i usporenje.Kada pro- ksi zatrazi tu stranicu u kesu ako je nadje brzina se povecava posto se kao sto rekoh sluzi lokalno medjutim ako je nema opet dolazi do malog stajanja (delay) sto vam moze usporiti vezu... Takodje proxy sadrzi odlican AUDITING tool koji belezi sav saobracaj tako da ukoliko dodje do neke provale logovi vam mogu biti od velike pomoci. Oni obicno sadrze visok nivo detaljnosti i svom saobracaju. Testiranje paketa se vrsi u oba smera tj kada mi saljemo paket ka Web Serveru nekom proxy proverava svoja pravila tj setove pravila i testira pakete na njih. Ukoliko paket prodje pravila on nastavlja svoj put. Medjutim to se isto radi i za odgovore koji stizu kao odgovor na poslate zahteve na proxy. Znaci vrsi se testiranje na set pravila pristiglih paketa i ukoliko paket prodje pravila on moze stici do prcvobitnog posaljioca paketa. OUTSIDE conn INSIDe CONN <----------------------> <------------------> -------- |---| |remote| | p | |------- | HOST | --------->| r | ------> | HOST | | | <-------- | o | <------ --------- -------- | x | | y | ----- ==-[ 0x02e % We made this Navescemo najpoznatije kompanije i njihove FW koji su uspeli da zadovolje ICSA's Firewall Product Certification kriterijume. Svi FW iz liste koju imaju ovaj sertifikat prosli su kroz niz testova kako bi se na kraju zakljucilo da su dovoljno sigurni i pouzdani. Neki od zahteva na osnovu kojih se vrste testiranja su : -logging -administration -functional testing -security tests -documentation. Takodje testiranja se ponavljaju s vremena na vreme da bi se utvrdilo da li komanija nastavlja pravilno da razvija FW. Navescu neke od FW koji poseduju doticni sertifikat. PROIZVODJAC | PROIZVOD =========================================== 3Com Corporation | OfficeConnect Internet Firewalls | OfficeConnect NETBuilder ------------------------------------------- Alcatel Fort Knox | Policy Router | OneStream Fort Knox ------------------------------------------- Axent Technologies | AltaVista Tru64 UNIX | Raptor NT | Raptor Solaris -------------------------------------------- BorderWare Techno- | BorderWare Firewall Server logies | Check Point SoftwareFirewall-1 NT | Firewall-1 Solaris -------------------------------------------- Cisco Systems PIX | SERIJA prozivoda -------------------------------------------- WatchGuard Technolo- | Firebox II gies | -------------------------------------------- Tiny Software | WinRoute Pro -------------------------------------------- Sun Microsystems | SunScreen EFS -------------------------------------------- SLMSoft.com | SecureIT -------------------------------------------- SonicWALL, Inc. | SonicWALL Family -------------------------------------------- Secure Computing | Sidewinder | SecureZone -------------------------------------------- Progressive Systems | Phoenix Adaptive Firewall -------------------------------------------- Novell BorderManager | Novell FireWALL for NT | Enterprise Edition --------------------------------------------- IBM | SecureWay AIX | SecureWay NT --------------------------------------------- Intel | LANRover VPN Gateway --------------------------------------------- Internet Dynamice | Conclave --------------------------------------------- eSoft | Instagate --------------------------------------------- CyberGuard Corporation| CyberGuard Unixware | CyberGuard NT --------------------------------------------- Nokia | Nokia IP Series Routers --------------------------------------------- Lucent Technologies | Lucent Managed Firewall | SecureConnect Firewalls ============================================= Naravno to je samo deo liste koju mozete naci na oficijelnom sajtu ovog sertifikata i da napomenem da ova FW resenja mogu biti i ekstremno skupa :> //////////////////////////////////////////////////////////////////////////////// --==<[ 0x03 % IPTables Internals \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ==-[ 0x03a % How it work? Kako bismo mogli da nastavimo sa radom na IPTablesima potrebo je da razumemo kako on i na kojim principima radi. Medjutim duboko poznavanje nacina rada IPT nije neophodno da biste uspeli uspesno da ga konfigurisete...medjutim zalazak u neke dublje teme koje se ticu nacina funkcionisanja je svakako dobrodosao. Jedan od najvaznijih barijera u izgradnji tvrdjave od vaseg sistema je svakako postavljanje i pravilno konfigurisanje vaseg FIREWALL-a. Ovde ne pricamo o Win- Like firewallsima tipa Zone Alarm itd, koji u srzi imaju slican znacaj i slican nacin funkcionisanja kao i najpopularniji UNIX firewall IPTABLES,vec kao sto sam vec napomenuo o najcvrscem i najkoriscenijem firewalli na UNIX sistemima - ipta- bles. Verovatno niste ni svesni koliko puta nad an neko pokusa da pristupi vasem sistemu.To mogu biti crvi koji pokusavaju da vas racunar pretvore u zombija ili pak mogu biti skript kidiji koji samo skeniraju portove sirokog IP opsega.... U svakom slucaju posto je iptables implementiran u nove LINUX kernele nece vam pasti tesko da malo vremena posvetite njegovog konfiguraciji i proucavanju jel u svakom slucaju radi se o sigurnosti vaseg sistema. Bilo da imate jedan sistem kog zelite da branite (obicno sopstveni) ili vise racunara u mrezi iptables ima resenja za vas. Konfiguracija se moze kretati od jednostavnih pravila stiti od svega i svakoga pa do softiciranih tehnika koje ce vam omoguciti da "u stina crevca" definisite koje pakete zelite, a koje ne da propustite i sa kog hosta ird... Celi smisao postavljenja firewalla je naravno - sigurnost.FW je jednostavno skup pravila na koja se testiraju pakete koji pristizu. FW moze prihvatiti paket,vrat- iti ga sa nekom greskom ili ga kompletno ispustiti. FW ce ce nas znaci zastiti od nezeljenih posetioca. Navescemo neke kriterijume po kojima se paketi testiraju: [=- po interfejsu - dali npr paket stize sa eth ili modema. [=- po source adresi - pravila koja se odnose na adresu posaljioca [=- destination adresi - pravila koja se odnosa na adresu primaoca [=- po broju porta - pravila koja se odnose na broj porta [=- po MAC adresi - MAC adresa je jedinstvena za svaku mreznu kartu.Nju dodeljuje proizvodjac. [=- po IP protokolu - pravila koja se odnose na IP protokol tj dali se radi o TCP,UDP ili ICMP protokolu. Naveo sam samo one najscesce i najprostije kriterijume pomocu kojih cete definisati vasa pravila. Po principima rada IPTABLES je mnogo slican njegovom starijem bratu IPCHAINS-u. Pa tako set pravila koje definisemo ispituju pristigle IP pakete da bi uvideli dali je paketima dozvoljeno da udju u masinu, izadju iz nje ili prodju kroz nju. Kao i IPCHAINS i IPTABLES je zasnovan na seriji pravila tj lancima pravila (cha- ins).Navescu tri osnovna chaina. [=- INPUT - paketi zahtevaju ulaz u vas sistem [=- OUTPUT - paketi zahtevaju izlazak iz vase masine tj govore vam da vasa masina zeli uraditi nesto spolja. [=- FORWARD - vasa masina se koristi kao gateway. IPtables takodje ima 4 pravila na osnovu kojih interaktuje sa paketima. [=- ACCPET - Ovo pravilo dozvoljava da paket dodje na svoju destinaciju [=- DROP - ispusta paket,paket umire [=- QUEUE - odredjuje koji paket se moze proslediti nekom spoljnom alatu. [=- RETURN - prosledjuje paket drugom lancu ..[=-< Kako radi iptables? . . Sada cemo objasniti kako radi IPTABLES. Vec sam napomenuo da se njegov rad zasniva na protoku paketa kroz razlicite chainse i testiranju na razlicita pra- vila tih chainsa. ----------- ______ | | | IP | | Vas | |paket| | Sistem |- <<========= |_____| | |-\ ----------- mrezni interfejs [=- IP paket stize na vas sistem tj mrezni uredjaj bio to modem ethernet card [=- Ukoliko je paket nadolazeci onda se poziva INPUT chain. Ali ukoliko je pak- et odlazeci poziva se OUTPUT chain,ili ukoliko samo prolazi kroz sistem poziva se FORWARD chain. [=- Paket se ispituje od strane prvog pravila u lancu. Ako se poklapa sa krit- erijuomom pravila, pravilo deluje na paket ispustajuci ga, prihvatajuci ga ili ga jednostavno prosledi dalje npr sledecem chainu. [=- Ukoliko se paket ne poklopi sa kriterijumom prvog lanca ide na sledeci itd [=- Ukoliko se paket ne poklapa sa nijednim definisanim pravilom onda se vrsi testiranje na default podesavanja FW. Sada cemo uci malo dublje u rad IPTABLES-a jel sam ukratko naveo rad necega tako necemo reci komplikovanog ,ali .... Znaci paket koji pristize prvo udara od hardver i onda se prosledjuje ka odgo- varajucem drajveru uredjaja u KERNEL-u. Zatim paket ide kroz niz koraka kroz KERNEL pre nego sto se posalje nekoj internoj aplikaciji ili drugom hostu. Sta ce se sve desiti od vremena udaranja u hardver do prihvatanja od strane neke aplikacije objasnicemo sada. Uzecemo primer naseg sistema kao krajnje destinacije i navescemo korake putovanja paketa za njega. Posto sam u prethodnom tutrialu vec podosta opisao strukturu IP paketa nebih zeleo da se ponavljam stoga citajte dalje. ----------------------------------------------------------------------- |korak | Tabela | Chain | Komentar | ----------------------------------------------------------------------- | 1 | | | Na Internetu,mrezi | ----------------------------------------------------------------------- | 2 | | | Dolazak na interfejs | ----------------------------------------------------------------------- | 3 | mangle | PREROUTING | Chan se koristi u ra-| | | | | zlicite namene tipa | | | | | smanjuje ToS itd... | ----------------------------------------------------------------------- | 4 | NAT | PREROUTING | Vecinom se koristi za| | | | | DNAT.izbegavaj postav| | | | | ljanje pravila ovde | ----------------------------------------------------------------------- | 5 | | | Odluke o rutiranju | ----------------------------------------------------------------------- | 6 | mangele | INPUT | Filtering svog saobra| | | | | caja namenjenog nama | ----------------------------------------------------------------------- | 7 | | | Lokalni proces/app | ----------------------------------------------------------------------- U sledecem primeru cemo navesti putanju paketa koji odlazi sa nase masine. ----------------------------------------------------------------------- | korak | Table | CHAIN | | ----------------------------------------------------------------------- | 1 | | | Lokalni proces/applikacija| ----------------------------------------------------------------------- | 2 | | | Odluke o rutiranju.Odluke | | | | | source adresi koja se kori-| | | | | sti itd... | ----------------------------------------------------------------------- | 3 | mangle | OUTPUT | Takodje nemojte da filteru-| | | | | jete u ovom lancu | ----------------------------------------------------------------------- | 4 | NAT | OUTPUT | U ovom koraku se mogu NAT- | | | | | ovati odlazeci paketi. | ----------------------------------------------------------------------- | 5 | filter | OUTPUT | Ovde filterujemo odlazece | | | | | pakete... | ----------------------------------------------------------------------- | 6 | mangle | POSTROUTING | | | | | | | ----------------------------------------------------------------------- | 7 | NAT | POSTROUTING | Ovde se radi SNAT | ----------------------------------------------------------------------- | 8 | | | Odlazi sa nekog interfejsa | ----------------------------------------------------------------------- | 9 | | | Na Internetu,mrezi | ----------------------------------------------------------------------- [=- Mangel table - ovde mozemo izvrsiti tzv manglovanje paketa. Tj npr mozemo promeniti TOS polje itd, MAR i TTL. [=- NAT table - tabela sa koristi za NAT-ovanje (Network Adress Tr- anslation). DNAT, SNAT, MASQUARADE [=- Filter table - Filtriranje paketa. Ova table pokazuje putanju paketa kada je paket FORWARD-ed. +---------------------------------------------------------------------+ |korak | Tabela | Chain | Komentar | ----------------------------------------------------------------------- | 1 | | | Na Internetu,mrezi | ----------------------------------------------------------------------- | 2 | | | Dolazak na interfejs | ----------------------------------------------------------------------- | 3 | mangle | PREROUTING | Chan se koristi u ra-| | | | | zlicite namene tipa | | | | | smanjuje ToS itd... | ----------------------------------------------------------------------- | 4 | NAT | PREROUTING | Vecinom se koristi za| | | | | DNAT.izbegavaj postav| | | | | ljanje pravila ovde | ----------------------------------------------------------------------- | 5 | | | Odluke o rutiranju | ----------------------------------------------------------------------- | 6 | mangle | FORWARD | Paket se salje na FO-| | | | | RWARD chain. | ----------------------------------------------------------------------- | 7 | filter | FORWARD | Ovde se obavlja svo | | | | | filtriranje.Samo for | | | | | warded paketi dolaze | | | | | ovde. | ----------------------------------------------------------------------- | 8 | mangle | POSTROUTING | Sluzi za specificni | | | | | packet mangling,kada | | | | | su sve odluke o ruti-| | | | | ranju gotove. | ----------------------------------------------------------------------- | 9 | nat | POSTROUTING | SNAT,ne filtrirati | | | | | pakete ovde. | ----------------------------------------------------------------------- | 10 | | | Odlazi sa uredjaja | ----------------------------------------------------------------------- | 11 | | | Odlazi na Internet | +---------------------------------------------------------------------+ Nacin kako su lanci sredjeni mozemo videti i na sledecem dijagramu: _____ INCOMING / \ OUTGOING -->[Odluka o ]--->|FORWARD|-------> [rutiranju] \_____/ ^ | | v ____ ___ / \ / \ |OUTPUT| |INPUT| \_____/ \___/ ^ | | ----> Local Process ---- Ovi krugovi su vec pomenuti LANCI i kada paket dodje u taj krug taj isti lanac ga ispituje kako bi odlucio o njegovoj daljnjoj sudbini. Ukoliko LANAC prihvati paket on nastavlja put ,ali ukoliko CHAIn zeli da dropa paket ubija ga tu na mestu. LANAC je jednostavno Lista pravila. Svaki paket koji se nadje u lancu ispitivanja testira se na ta pravila. Ukoliko se testiranja poklope (matchuju),sa izgledom headera onda se odlucuje sta ce se sa paketom ukoliko se ne matchuje sa tim lan- cem ide se dalje na sledeca pravila. Ukoliko se ne nadje match ni za jedan lanac o sudbini paketa odlucuje DEFAULT POLICY koja vecinom preferira DROP paketa. ==-[ 0x03b % USER states U zavisnosti o kom protokolu se radi paket moze imati nekoliko razlicitih stanja u samom KERNEL-u.Medjutim van kernela imamo samo 4 stanja.To su: [=- NEW - Ovakvo stanje nam govori da je paket prvi paket kog vidimo. [=- ESTABLISHED - Stanje kada se vrsi razmena paketa u oba smera. [=- RELATED - Konekcija se smatra RELATED kada je related na vec postoje- ecu ESTABLISHED konekciju. [=- INVALID - Ovo se desava kada se paket nemoze indetifikovati. //////////////////////////////////////////////////////////////////////////////// --==<[ 0x04 % It's time for rules baby! \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ==-[ 0x04a % BASIC commands Kada smo savladali osnovne pojmove o FW uopsteno, a i o nacinu rada IPTablesa vreme je da vidimo kako sve to radi u praksi. Vreme je da naucimo i da iskorsiti- mo nauceno u svrhu zastite naseg sistema. Jel teorija bez prakse je nista... Poceco sa nekim osnovnim komandama koje bi morali da znate.Bez njih jednosta- vno nema dalje. Takodje u svakom trenutku tu vam je MAN stranica iptablesa, ikoliko dodje do ne- kih nejasnica. Opsirne dokumentacije se mogu naci i na Internetu tako da nemate brige. [=- Pokretanje - Pokretanje FW iptables cemo izvrsiti sa: ==---------[code]----------== z10n#iptables iptables v1.2.10: no command specified Try `iptables -h' or 'iptables --help' for more information. ==---------[/code]---------== Naravno ukoliko ne navedemo neku opciju dobicemo ovaj OUTPUT koji ce nas upu- titi na help. [=- -N - Pravljenje novog lanca ==---------[code]----------== z10n#-iptables -N novo ==---------[/code]---------== ovim smo napravili novi lanac pod imenom \novo\.Da vismo videli listu lanaca koristicemo -L opciju. ==---------[code]----------== z10n#-iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain da (0 references) target prot opt source destination Chain novo (0 references) target prot opt source destination ==---------[/code]---------== U spisku lanca mozemo videti i nas lanac pod nazivon \novo\.posto nismo za njega definisali ni jedno pravilo on je prazan. [=- -X - Brisanje praznog lanca Ukoliko zelimo da izbrisemo prazan lanac pod nazivom novo uradiceo sledece: ==---------[code]----------== z10n#-iptables -X novo ==---------[/code]---------== [=- -P - Menjanje Policy za ugradjen lanac. [=- -L - Lista lance [=- -F - Prazni lance [=- -Z - Nuluje paket [=- -A - Lepi novo pravilo na lanac ==---------[code]----------== z10n#-iptables -A moje ==---------[/code]---------== [=- -I - Ubacuje novo pravilo negde u lancu ==---------[code]----------== z10n#-iptables -I moje z10n#-iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain da (0 references) target prot opt source destination Chain moje (0 references) target prot opt source destination all -- anywhere anywhere all -- anywhere anywhere ==---------[/code]---------== Sada vidimo i novo definisana pravila. [=- -R - Zamenjuje pravilo negde u lancu. [=- -D - Brise pravilo negde u lancu ==---------[code]----------== z10n#-iptables -D moje z10n#-iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain da (0 references) target prot opt source destination Chain moje (0 references) target prot opt source destination all -- anywhere anywhere ==---------[/code]---------== Kao sto vidimo pravilo je izbrisano. [=- -E - Menja ime nekom lancu. [=- -h - Pomoc. Svaki lanac sadrzi set pravila na koje nailazi paket.Kada se paket sretne sa sa lancem on se testira na niz pravila koje mi definisemo.U zavisnosti od pokla- panja sa tim pravilima odvijaju se razliciti dogadjaji. Vazno je znati neke stvari pomocu kojih cemo uspesno konfigurisati FW: [=- -s --source - Definisemo adresu posaljioca [=- -d --destination - Definisemo adresu primaoca Medjutim mozemo staviti i sufix ! koji oznacava NOT EQUAL tj nije jednako i time promeniti ponasanje pravila. npr: ==---------[code]----------== -s ! localhost ==---------[/code]---------== se poklapa sa svakim paketom koji ne dolazi sa localhosta. [=- -p --protocol - Definisemo protokol.TCP , ICMP, UDP,takodje mozemo koristiti !. ==---------[code]----------== -p TCP ==---------[/code]---------== [=- -i --in-interface - Definisemo ulazni interfejs,tj ulazni fizicki uredj- aj.Ime interfejsa mozemo videti sa komandom #ifconfig.Ona prikazuje samo interfejse koji su UP. ==---------[code]----------== z10n#-ifconfig eth0 Link encap:Ethernet HWaddr 00:10:DC:97:72:5B inet addr:10.2.5.112 Bcast:10.2.5.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3761 errors:0 dropped:0 overruns:0 frame:0 TX packets:1637 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 RX bytes:989377 (966.1 Kb) TX bytes:152043 (148.4 Kb) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 RX bytes:261 (261.0 b) TX bytes:261 (261.0 b) ==---------[/code]---------== npr: ==---------[code]----------== -i eth0 ==---------[/code]---------== [=- -o --out-interface - Isto sto i -i,samo sto se koristi izlazni interf. Takodje mozemo koristiti i u ovom slucaju ! ,ali i znak + koji ce uticati da se poklapaju svi uredjaju bili oni up ili down. ==---------[code]----------== -o eth+ ==---------[/code]---------== Rezultovace poklapanjem sa svim eth uredjajima. [=- -f --fragment - Do fragmentovanja paketa dolazi kada je paket veliki. Tada se deli na male pakete koji se salju zasebno. Problem kod fragmenata je taj sto samo pocetni paket ima sva polja protokola u hederu dok ostalo nemaju. Medjutim ako koristis NAT paketi ce se opet spojiti u jedan pre nego sto naidju na set pravila. Kada koristimo -p TCP, mozemo koristiti vise opcija kojima cemo modifikovati ponasanje pravila: [=- --tcp-flags - Sastoji se od dva striga.Prvi string oznacava listu flagova koju ispitujes,a drugi govori koje od njih treba setovati. ==---------[code]----------== # iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,FIN -j DROP ==---------[/code]---------== Ovaj deo koda govori da se ispituju svi flagovi,medjutim samo se setuju SYN i FIN. [=- --source-port - Definisemo izvorni port ili nisku portova.Odvajanje vrsimo sa : [=- -sport - Skracenica za gore navedenu opciju [=- -dport - Definise port primaoca tj krajnje destinacije Ostale opcije: [=- --icmp-type - Tip iCMP protokola [=- -m mac - Poklapanje sa MAC hardverskom adresom. ==---------[code]----------== iptables -A INPUT -m mac --mac-source 23:11:02:02:00:01 ==---------[/code]---------== [=- -m limit - Vrsi neku akciju na osnovu broja poklapanja ==---------[code]----------== iptables -A INPUT -m limit --limit 3/second ==---------[/code]---------== LIMIT moze biti naveden u oblicima:/second,/minute,/hour,/day Ovaj gornji primer pokazuje da se poklapanja mogu izvrsiti max 3 puta po sekundi [=- --limit-burst - Oznacava max broj poklapanja paketa u jedinici vreme- na. ==---------[code]----------== iptables -A INPUT -m limit --limit-burst 5 ==---------[/code]---------== Ovaj navedeni broj se smanjuje posle svake jedinice vremena nazad do 1. [=- owner - --uid-owner - Poklapa se sa svim paketima koje je stvorio proces odredjenog UID-a. --gid-owner - Isto kao i --uid-owner medjutim vrsi se test po GID-u --pid-owner - ...pakete koji su stvoreni od strane procesa sa odr- edjenim PID-om. --sid-owner - ..od strane neke session group ==-[ 0x04b % Putting some rules Posle naucenih prvih koraka u IPTables svetu vreme je da za promenu uradimo i nesto korisno :) xexe... U ovoj sekciji cemo pokusati da konfigurisemo neki osnovni odbrambeni sistem koji ce nas stititi. Naravno naredne sekcije ce biti sve komplikovanije i kompl- ikovanije, pa stoga cemo krenuti sa osnovnim pravilima koji ne zahtevaju neko posebno znanje. [=- SPOOF adresses Definisuci ovo pravilo onemogucicemo remote masine da se predstavljaju da su deo nase mreze. SPOOF je cesto koriscena tehnika koja hakerima omogucava da se integrisu u vasu mezu neprimetno. ==---------[code]----------== # iptables -A INPUT -i eksterni_interfejs -s tvoja_ip -j REJECT ==---------[/code]---------== Primer: ==---------[code]----------== bash-2.05b# iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j REJECT ==---------[/code]---------== [=- Blokiranje celokupnog mreznog saobracaja Kada definisemo ovo pravilo blokiracemo celokupni mrezni saobracaj. Prvo cemo flushovati tj isprazniti pravila (ponistiti ih). ==---------[code]----------== # ipchains -F ==---------[/code]---------== A zatim cemo uraditi sledece: ==---------[code]----------== # ipchains -A input -j DROP # ipchains -A output -j DROP # ipchains -A forward -j DROP ==---------[/code]---------== Ovim cemo odbiti input, output, forward pravila. Ukoliko zelimo umesto DROP koristiti REJECT dabismo korisniku dali poruku o gresci bilo bi dobro da koristimo flag --reject-with. Ili jednostavnije izvucite kabal :0 [=- Blokiranje Nadolazeceg saobracaja Ovo pravilo uopste nece uticati na vas odlazeci saobracaj vec samo na dolazeci Naime definisanjem ovog pravila blokiracete sav saobracaj koji ide ka vama sem onog sa vaseg sistema. ==---------[code]----------== iptables -A INPUT -p tcp --syn -j REJECT ==---------[/code]---------== Ovim cemo onemoguciti three-way handshake. Takodje ovo mozemo resiti i na drugi nacin: ==---------[code]----------== # iptables -F INPUT # iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # iptables -A INPUT -j REJECT ==---------[/code]---------== [=- Blokiranje odlazeceg saobracaja Definisanjem ovog pravila onemogucicemo pakete da odlaze sa naseg sistema. ==---------[code]----------== # iptables -F OUTPUT # iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT # iptables -A OUTPUT -j REJECT ==---------[/code]---------== [=- Blokiranje pristupa sa remote hosta Ukoliko zelite da blokirate saobracaj sa odredjenog hosta mozzemo definisati pravilo koje ce se pozabaviti tim: ==---------[code]----------== # iptables -A INPUT -s 212.52.46.100 -j REJECT ==---------[/code]---------== Naravno navescemo IP adresu koju zelimo da blokiramo. [=- Blokiranje zahteva servisa Ukoliko zelimo da blokiramo zahtev nekog servisa npr FTP uradicemo sledece. ==---------[code]----------== # iptables -A INPUT -p tcp --dport ftp -j REJECT ==---------[/code]---------== Medjutim ovim smo blokirali i odlazeci i dolazeci saobracaj.Pokazacemo primer koji je veoma koristan i pomocu koga mozemo blokirati dolazeci saobracaj ,ali dozvoliti lokalni ftp saobracaj. ==---------[code]----------== # iptables -A INPUT -p tcp -i lo --dport ftp -j ACCEPT # iptables -A INPUT -p tcp --dport ftp -j REJECT ==---------[/code]---------== [=- Blokiranje Pristupa remote hostu Ovim cemo blokirati odlazeci saobracaj na odredjeni host. ==---------[code]----------== iptables -A OUTPUT -d 212.62.46.100 -j REJECT ==---------[/code]---------== Mozemo npr malo modifikovati ovo pravilo tako da cemo onemoguciti pristup odredjenom servisu na odredjenom hostu. ==---------[code]----------== # iptables -A OUTPUT -p tcp -d 212.46.100.2 --dport www -j REJECT ==---------[/code]---------== [=- Sprecavanje pinga Kada definisemo ovo pravilo niko nece primiti nikakav odgovor od strane naseg sistema na zahtev pinga. Znaci jednostavno zabranicemo ICMP saobracaj medjutim ne sav jel bi to bila greska vec samo echo-request. ==---------[code]----------== # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP ==---------[/code]---------== I kada pingujemo masinu ona se vise nece odazivati: ==---------[code]----------== z10n#-iptables -A INPUT -p icmp --icmp-type echo-request -j DROP z10n#-ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. --- localhost ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms ==---------[/code]---------== [=- Blokiranje TELNET odlazeceg saobracaja Posto je telnet veoma nepodoban i nesiguran za remote konekcije najbolje ga je zabraniti na sistemu, ili definisite pravilo koje se odnosi na neka osiguranja sto se tice TELNeT-a. Npr ovim pravilom cete onemoguciti sniffere da isnifuju vas pass koji se preko TELNET-a prenosi u plain text formatu. ==---------[code]----------== # iptables -A OUTPUT -p tcp --dport telnet -j REJECT ==---------[/code]---------== [=- Dozvoljavanje samo SSH pristupa SSH protokol sam vec opisao u prethodnom tutu. Zaobidjite nesigurne protokole tipa TELNET, FTP itd i koristite Secure Shell. ==---------[code]----------== # iptables -F INPUT # iptables -A INPUT -p tcp --dport ssh -j ACCEPT # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -j REJECT ==---------[/code]---------== [=- Kontrolisanje pristupa preko MAC adrese MAC adresa je hardverska adresa uredjaja koja mu je dodeljena od strana proizvodjaca. Ona je jedinstvena za svaki uredjaj. Medjutim moze doci do spoofanja MAC adresa sto nebi trebalo da predstavlja neki tezak problem za hakere. ==---------[code]----------== # iptables -F INPUT # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -m mac --mac-source 33:31:56:89:11:ab -j ACCEPT # iptables -A INPUT -j REJECT ==---------[/code]---------== [=- Zabrana remote pristupa...ali ali dozvoljavanje local pristupa. Ili dozvola konektovanja samo preko LO interfejsa. ==---------[code]----------== # iptables -A INPUT -p tcp -i lo --dport service -j ACCEPT # iptables -A INPUT -p tcp --dport service -j REJECT ==---------[/code]---------== Pravilo za zabranu remote konektovanja. ==---------[code]----------== # iptables -A INPUT -p tcp ! -s tvoja_ip --dport service -j REJECT ==---------[/code]---------== [=- Brisanje pravila Kada izlistamo pravila i zelimo da neko izbrisemo iz odredjenog razloga to mozemo uciniti na sledeci nacin: ==---------[code]----------== # iptables -D INPUT 4 ==---------[/code]---------== INPUT je chain , dok broj 4 oznacava broj RULE-a. [=- Snimanje konfiguracije Napravljenu konfiguraciju je potrebno i snimiti. ==---------[code]----------== # iptables-save > /etc/sysconfig/iptables ==---------[/code]---------== ....To bi bila neka osnovna pravila koja biste trebali razmotriti. Naravno da ih mozete modifikovati za svoje potrebe. ja sam naveo samo banalne primere njihove primene, na vama je da to dalje razradite budite mastoviti.... ==-[ 0x04c % Rules,rules and more rules! Kada smo se polako uhodali i shvatili principe rada sa IPTablesima vreme je da pocnemo da pravimo kompleksa pravila. Kompleksa pravila se sastoje iz veceg broje pojedinacnih pravila koja zajedno cine nasa sistem sigurniji. Dobro pozna- vanje ovih osnovnih ce vam biti od velike pomoci pri modifikovanju i pravljenju svoji. [=- TOS match - TOS match se koristi kada zelimo da vrsimo testiranju paketa i to preko njegovog TOS polja (Type of Service). proucavajuci njegove vrednosti. TOS je osmobitni broj koji se nalazi u headeru paketa. Ovakav nacin testiranja izvodi se pomocu -m tos opcije. Minimize-Delay 16 (0x10), Maximize-Throughput 8 (0x08), Maximize-Reliability 4 (0x04), Minimize-Cost 2 (0x02), i Normal-Service 0 (0x00) iz sledeceg primera. ==---------[code]----------== iptables -A INPUT -p tcp -m tos --tos 0x16 ==---------[/code]---------== [=- TTL match - Poklapanja po Time to live.TTL je osmobitni broj koji se nalazi u headeru paketa i cija vrednost opada za jedan svaki put kada izvrsi jean HOP.Kada dodje na 0 paket umire [=- DHCPD - Na ovaj nacin mozemo podesiti da se primaju i salju kone- kcije DHCPD-a,a to se sve odbija preko UDP i to portova 27 i 28 ==---------[code]----------== #IPTABLES -I INPUT -i eth0 -p udp --dport 67:68 --sport \ 67:68 -j ACCEPT ==---------[/code]---------== [=- SPOOF attacks - Pomenucu samo ukratko kako se odvija spoof i kako se od istog i zastititi. Naime predpostavimo da imamo 3 masine;A,B,C A pokusava da B (zrtvi) salje pakete pretvarajuci se da je osoba C. -A salje SYN ka B sa source IP od C -B odgovara C sa SYN/ACK -Ako je C down,onda ce A uspostaviti konekciju sa B -Ako je C up onda ce na nepoznati signal odgovoriti sa RST i napad ne uspeva. Znaci ukoliko dodje do primanja RST signala nista od napada. Takodje vise ili manje uspesno uz pomoc IPT mozemo se zastititi i od DoS-a. ==---------[code]----------== # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT ==---------[/code]---------== [=- Block - Pokazacu nacin na koji mozemo blokirati sve nove konekcije sem ako one dolaze iznutra. ==---------[code]----------== # iptables -N blockme # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT # iptables -A block -j DROP # iptables -A INPUT -j blockme # iptables -A FORWARD -j blockme ==---------[/code]---------== [=- TELNET - Sledecim pravilom cemo sa odredjenog hosta zabraniti TELNET saobracaj prema nama tj pakete koji su namenjeni portu 23. ==---------[code]----------== ~ # iptables -A INPUT -s 212.63.45.1 -j DROP -p tcp --destination-port telnet ==---------[/code]---------== Medjutim ako zelimo da blokiramo sav nadolazeci saobracaj na port telneta bez obzira o kom se hostu radi definisac- emo sledece pravilO: ==---------[code]----------== # iptables -A INPUT -j DROP -p tcp --destination-port telnet ==---------[/code]---------== [=- Block int - Ukoliko zelimo da blokiramo saobracaj na odredjenom interfejsu: ==---------[code]----------== # iptables -A INPUT -j DROP -p tcp -i eth1 ==---------[/code]---------== Na ovaj nacin cemo dropovati sve pakete TCP saobracaja koji pristizu na interfejs eth1 Ali ako zelimo da na taj interfejs npr dozvolimo samo HTTP saobracaj mozemo ostaviti da port 80 prima pakete. ==---------[code]----------== # iptables -A INPUT -j ACCEPT -p tcp --destination-port 80 -i eth1 # iptables -A INPUT -j DROP -p tcp -i eth1 ==---------[/code]---------== Znaci prvo smo dozvolili pakete da dolaze na port 80 sto je standardni port za WEB saobracaj , a zatim smo stavili pravilo da odbija sve pakete dolse na interfejs eth1. [=- LOG - Takodje vazno je znati da sve dogadjaje mozemo i logovati tj snimati. ==---------[code]----------== #iptables -A INPUT -j LOG --log-prefix "INPUT-LOG" ==---------[/code]---------== [=- IP Forward - Da napomenem jos jedan nacin na koji mozete ukljuciti IP FORWARDING. ==---------[code]----------== bash-2.05b# cat /proc/sys/net/ipv4/ip_forward 0 bash-2.05b# echo 1 > /proc/sys/net/ipv4/ip_forward ==---------[/code]---------== [=- PING allow - Ukoliko iz nekog razloga da dozvolimo pingovanje masine to cemo uraditi na dolepomenuti nacin.PING je koristan kada zelimo da vidimo dali je masina ziva: ==---------[code]----------== #iptables -A INPUT -p icmp -m icmp --icmp-type echo-request \ -j ACCEPT #iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT ==---------[/code]---------== [=- LOg invalid - Ukoliko zelimo da zabelezimo sve invalid pakete koji dola- ze posle netfilter timeouta: ==---------[code]----------== #iptables -I INPUT 1 -p tcp -m state --state INVALID -j LOG \ --log-prefix "FIREWALL:INVALID" #iptables -I INPUT 2 -p tcp -m state --state INVALID -j DROP ==---------[/code]---------== [=- DNAT - Pokazacemo kako se sav saobracaj namenjen dest hostu 10.2.5.1 i portu 80 redirektuje menjanjem IP hedera tj dest adrese u njemu ,opsegu navedenih hostova. Ovaj proces promene DEST fielnda radi DNAT. ==---------[code]----------== #iptables -t nat -A PREROUTING -p tcp -d 10.2.5.1 --dport 80 -j DNAT --to-destination 10.2.5.111-10.2.5.111 ==---------[/code]---------== [=- Allow int - Ovim kodom cemo omoguciti prijem paketa sa svih IP adresa na adresu 10.2.5.1 uredjaja eth0. ==---------[code]----------== #iptables -A INPUT -s 0/0 -i eth0 -d 10.2.5.1 -p TCP -j ACCEPT ==---------[/code]---------== 0/0 znaci da je source (-s) adresa bilo koja,tj poklapa se sa svim adresama. [=- MASQUARADE - Opet pominjemo maskaradu.Napisacemo kod koji ce raditi doticnu akaciju. ==---------[code]----------== #iptables -F #iptables -N block #iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A block -m state --state NEW -i ! eth0 -j ACCEPT #iptables -A block -j LOG #iptables -A block -j DROP #iptables -A INPUT -j block #iptables -A FORWARD -j block #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ==---------[/code]---------== [=- Simple rules - Na ovaj nacin cemo uraditi sledece: Dozvoljavamo mrezne konekcije koje su vec ESTABLISHED i related ka tebi. (startovane od strane hosta),takodje dozvoljava saobracaj sa loopback interfejsa. ==---------[code]----------== iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT ==---------[/code]---------== [=- HTTP saobracaj - Napisao sam maku shell skripticu koja regulise HTTP sao- bracaj na portovima 80 i 443. ==---------[code]----------== #!/bin/bash echo "Unesi interfejs:" read IME iptables -A INPUT -i $IME -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o $IME -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT # 443 iptables -A INPUT -i $IME -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o $IME -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT ==---------[/code]---------== Sledi kratka skripta koja ce dozvoliti DNS access na masini: ==---------[code]----------== #!/bin/bash #da li je iptables executabilan if [ ! -x /sbin/iptables ] then exit 0 fi iptables -F #flushuje iptables -X iptables -A OUTPUT -p udp -o eth0 --dport 53 --sport 1024:65535 \ -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:65535 \ -j ACCEPT ==---------[/code]---------== Takodje korisno moze biti da imamo skript koji ce dozvoliti useru na FW da koristi HTTP i HTTPS protokol. HTTP je standardni Web protokol dok se HTTPS vec- inom koristi za neke novcane transakcije i stvari koje zahtevaju veci nivo si- gurnosti. ==---------[code]----------== iptables -A OUTPUT -j ACCEPT -m state \ --state NEW,ESTABLISHED,RELATED -o eth0 -p tcp \ -m multiport --dport 80,443 -m multiport --sport 1024:65535 iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED \ -i eth0 -p tcp ==---------[/code]---------== Mozete fushovati iptables tako da se vrati na default police ==---------[code]----------== $IPTABLES -F $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -F -t mangle $IPTABLES -F -t nat ==---------[/code]---------== ...bla bla shvatili ste ideju.Sve komande/primere koje sam dao mozete efikasno kombinovati uz malo maste i volje. Ukoliko iole poznajete shell scripting nece biti problema da sredite skripte koje vam trebaju kako bi izvrsili odredjenu akciju. Nisam zeleo da vrsim pretpostavke itd zasta vam treba pa da ja pisem za] vas jednostavno prateci osnovne konfiguracijske skriptice i komande lako mozete shvatiti princip rada i lako postici max __rezultate__ koristeci iptables. ...ja se odjavljujem vidimo se u sledecem broju :> ---------------<> EOF