Copy Link
Add to Bookmark
Report

2x11 Hiding Behind FIREWALL

eZine's profile picture
Published in 
phearless
 · 10 months ago

                                 
...................
...::: 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

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT