+ All Categories
Home > Documents > Hiding Behind Firewall

Hiding Behind Firewall

Date post: 03-Mar-2016
Category:
Upload: nikola-mika-colakovic
View: 234 times
Download: 0 times
Share this document with a friend

of 35

Transcript
  • ................... ...::: phearless zine #2 :::...

    ......................>---[ Hiding Behind FIREWALL ]------[ by _bl00dz3r0_ ]---=---- [0x00] % I'am Going in! INTRODUCTION Acknowledgments Documentation [0x01] % Me the Armored!!! Get your IPtables now KERNEL setup User setup

    [0x02] % FW philosophy FW Technologies FW Arhitecture Packet Filters Proxy Server We made this

    [0x03] % IPtables Internals How it work? USER States [0x04] % It's time for rules baby! BASICS commands Putting some rules Rules,rules and more rules!

    >=---- //////////////////////////////////////////////////////////////////////////////// --==

  • muzeo IPTABLES, IMHO najbolji FW koji se moze naci ne samo na UNIX sistemu vecuopste na racunarskim sistemima. Moc i fukncionalnost IPtablesa su ogromni zbog toga mu vredi posvetiti citavtekst u ovom broju, a ne samo jedan odeljak.Trudicu se da prvo objasnim osnovne pojmove i koncepciju firewallova, a zatim dapolako predjemo na konfiguraciju i koriscenje IPtablesa. Ako se neko pita sta cemu uopste FW...odgovor je jednostavan - pruzanje velikedoze sigurnosti i pravljenja prave male tvrdjave od vaseg sistema, naravno sa parjos drugih utila o kojima cemo u drugim brojevima. Sve to skupa moze doprineti dase 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 toneki 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 opsegeu nadi da ce naleteti na nesto busno sto moze ownati.Ukoliko zelite da uvidite i da se zastitite od takvih vrsta "napada" dovoljno jeu 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 radibash onako kako ste vi to zeleli.Takodje sve cu pokazati na primerima tako da vam se jasno stavlja do znanja stadobijate sa odredjenim pravilima. Ucemo i malo dublje u strukturu IPTablesa i njegovog funkcionisanja cisto dabi shvatili kako on uopste radi i sta se sve odvija ispod haube. Time cete dobitijasnu sliku sta se i kad desava ... Takodje da nepomenem jednu vaznu stvar. Necu pisati o nacinu zaobilaska FWniti 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-apokusacu da sto detaljnije objasnim i ostale tehnike Harderinga tako da u vezisame 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 utome sto je kao sto vec rekoh po mom misljenju najbolji FW koji sebi mozetepriustiti. 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 suUNIX 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 strpljenuza vecito kasnjenje tekstova...xexe :)...ali sta je tu je. Eto zadnjih dana sambio 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 jenajbolje sam sebe uciti, truditi se citati i vezbati jel praksa je veoma vaznaZeleo 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 sesvojim prethodnim znanjem. Medjutim posto sam hteo da u tematikuudjem sto dublje bilo je potrebno da svoje znanje dopunim i unapredim.Stoga sam koristio razlicitu literaturui 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 stogase 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. ////////////////////////////////////////////////////////////////////////////////

  • --==
  • [=- 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 namenaza 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 pomociu resenju problema oko instalacije.U prcesu instalacije mozete navesti niz opcija sa kojima ce se kompajliratiIPTables 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.

  • //////////////////////////////////////////////////////////////////////////////// --==
  • 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,cistoda 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 jedinicena Internetu. Datagrami takodje imaju header sa informacija o rutiranju kojekoriste 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 v

    eoma 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 drugikada se radi o spoljasnjoj mrezi.Svi zahtevi prolaze kroz tzv Choke Point koji u stvari i radi Translaciju tjprevod,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 ondolazi 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 promeniceadresu u 212.64.46.100

    Za nadolazece pakete menja se DEST adress. Tj kada masina van mreze posalje paketNAT modifikuje DEST spoljnu vidljivu adresu u unutrasnju koja se ne vidi odstrane posaljioca.

    Dobre strane NAT-a su sto moze ustedeti na Address space-u, a i takodje zbogsigurnosnih razloga.Znaci konekcija bez prolaska kroz NAT ce biti neuspesna sto je opet jedan vidzastite.NAT vam moze pomoci da stavite zabranu na spoljni saobracaj odredjene vrste ilinpr na sav saobracaj koji je usmeren ka odredjenom hostu.Restrikcije mogu bitidublje nego kod Packet filtera.Mozda je problem sto necete imati svoj public IP tako da vas moze onemogucitipri 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" uHEADER 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 sigurnopreko Packet Filtera cete kontrolisati sav saobracaj koji se interesuje vas.Mozete npr ukoliko je to potrebno zabraniti dolazak paketa sa odredjenih hostovaili 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 pojaviou kernelu 1.2.1 sada vec daleke 1995.IPFWADM je imao neke osnovne featurse tipafiltriranje po broju porta ili SOURCE/DEST adrese. Medjutim i pored toga sto jesadrzao samo osnovne karakteristike PF imao je siroku primenu.Sa kernelom 2.2.0 dosao je i IPChains koji je uneo niz poboljsanja i promena uodnosu 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 osnovuMAC 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 paketiuci 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 namasinama 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 saljuna 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 pricaoPotrebno 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 saznanjada kada se "hakuje" treba koristiti proxy kako te ejfbiaj nebi ufatio :>>Ta tipicna definicija dovodi do zakljucka da je proxy tamo neki ip preko kogacete ici i tako sakriti svoj. Naravno retko ko se zapita kako to zapravo radista se krije iza svega toga. Tu dolazimo na red mi da malo pojasnimo pojmovevezane 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 jedneFW 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 stranehosta ka Proxy-ju. Zatim u zavisnosti od konfiguracije Proxy servera on priv-hvata ili odbija tu konekciju. Znaci host ne pravi konekcije ka spoljnem svetuvec to radi Proxy umesto njega. Proxy serveri se mogu konfigurisati na stotinenacina 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 mozemoimati u mrezi npr HTTP ili FTP server koji operise, ali takodje mozemo ikombinovati.Drugu grupu cine CIRCUIT-LEVEL proxiji koji za razliku od Ap Level proksijasprovode sav TCP/IP saobracaj.Kada se radi o Aplication proksijima mozemo navesti jos jednu pogodnost a toje da se Web stranice mogu prikazivati i lokalno pri cemu je brzina ucitavanjaveca. To se desava kada jedan user npr poseti neku stranicu i onda se stranicakesira (cache) tako da svaki sledeci pristup toj stranici od strane bilo kog hosta unutar mreze ce biti znacajno brzi. Medjutim tu takodje dolazimo do togada 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 adresaposlatih paketa moze biti samo adresa PROXY-a a da ostali koji idu van proksijabudu 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 storekoh 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 daukoliko dodje do neke provale logovi vam mogu biti od velike pomoci. Oni obicnosadrze visok nivo detaljnosti i svom saobracaju.Testiranje paketa se vrsi u oba smera tj kada mi saljemo paket ka Web Serverunekom 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 iza odgovore koji stizu kao odgovor na poslate zahteve na proxy. Znaci vrsi setestiranje na set pravila pristiglih paketa i ukoliko paket prodje pravila onmoze stici do prcvobitnog posaljioca paketa.

    OUTSIDE conn INSIDe CONN

    -------- |---| |remote| | p | |------- | HOST | --------->| r | ------> | HOST | | |

  • -------- | x | | y | -----

    ==-[ 0x02e % We made this

    Navescemo najpoznatije kompanije i njihove FW koji su uspeli da zadovoljeICSA's Firewall Product Certification kriterijume.Svi FW iz liste koju imaju ovaj sertifikat prosli su kroz niz testova kakobi 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 likomanija 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 Serverlogies | Check Point SoftwareFirewall-1 NT | Firewall-1 Solaris--------------------------------------------Cisco Systems PIX | SERIJA prozivoda--------------------------------------------WatchGuard Technolo- | Firebox IIgies |--------------------------------------------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 oficijelnomsajtu ovog sertifikata i da napomenem da ova FW resenja mogu bitii ekstremno skupa :>

    //////////////////////////////////////////////////////////////////////////////// --==

  • 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 cetedefinisati 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 uvidelidali 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 |-

  • 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 necegatako 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 krozKERNEL 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 nekeaplikacije objasnicemo sada. Uzecemo primer naseg sistema kao krajnje destinacijei navescemo korake putovanja paketa za njega. Posto sam u prethodnom tutrialu vecpodosta opisao strukturu IP paketa nebih zeleo da se ponavljam stoga citajtedalje.

    ----------------------------------------------------------------------- |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 lanacga ispituje kako bi odlucio o njegovoj daljnjoj sudbini.Ukoliko LANAC prihvati paket on nastavlja put ,ali ukoliko CHAIn zeli da dropapaket ubija ga tu na mestu.LANAC je jednostavno Lista pravila. Svaki paket koji se nadje u lancu ispitivanjatestira se na ta pravila. Ukoliko se testiranja poklope (matchuju),sa izgledomheadera 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 lanaco sudbini paketa odlucuje DEFAULT POLICY koja vecinom preferira DROP paketa.

    ==-[ 0x03b % USER states U zavisnosti o kom protokolu se radi paket moze imati nekoliko razlicitihstanja 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.

  • //////////////////////////////////////////////////////////////////////////////// --==
  • 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 jednakoi 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 uticatida 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 modifikovatiponasanje 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 SYNi 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,/dayOvaj 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 uradimoi nesto korisno :) xexe...U ovoj sekciji cemo pokusati da konfigurisemo neki osnovni odbrambeni sistemkoji ce nas stititi. Naravno naredne sekcije ce biti sve komplikovanije i kompl-ikovanije, pa stoga cemo krenuti sa osnovnim pravilima koji ne zahtevaju nekoposebno 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 seintegrisu 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 dolazeciNaime definisanjem ovog pravila blokiracete sav saobracaj koji ide ka vamasem 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 definisatipravilo 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 primerkoji 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 pristupodredjenom 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 nasegsistema na zahtev pinga. Znaci jednostavno zabranicemo ICMP saobracaj medjutim nesav 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 protokoletipa 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 stranaproizvodjaca. Ona je jedinstvena za svaki uredjaj. Medjutim moze doci do spoofanjaMAC 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 ihmozete 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 jeda 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 pravljenjusvoji.

    [=- 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 d

    a 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 n

    apada.

    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 dakoristi 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 efikasnokombinovati uz malo maste i volje. Ukoliko iole poznajete shell scripting necebiti problema da sredite skripte koje vam trebaju kako bi izvrsili odredjenuakciju. Nisam zeleo da vrsim pretpostavke itd zasta vam treba pa da ja pisem za]vas jednostavno prateci osnovne konfiguracijske skriptice i komande lako mozeteshvatiti princip rada i lako postici max __rezultate__ koristeci iptables....ja se odjavljujem vidimo se u sledecem broju :>

    --------------- EOF


Recommended