You are on page 1of 5

PF: Primer: Zastitni Zid za Kucnu mrezu ili

Malu Kancelariju
Sarzaj
Scenario
o Mreza
o Cilj
o Priprema
Skup Pravila
o Makroi
o Opcije
o Scrub
o Mrezno Prevodjenje Adresa
o Preusmeravanje
o Filter Pravila
Kompletan Skup Pravila
Scenario
U ovom primeru, PF radi na OpenBS masini predstavljajuci zastitni zid i !A" #ate$a% za malu mrezu u kuci
ili kancelariji& 'lavni cilj je da se omo#uci (nternet pristup mrezi i da se dozvoli o#ranceni pristup do masine sa
zastitnim zidom sa (nterneta, i omo#uci pristup unutrasnjem $eb serveru sa (nterneta& Ovaj document ce proci
kroz kompletan skup pravila koja rade upravo to&
Mreza
Mreza je ovako podesena)

[ COMP1 ] [ COMP3 ]
| |
---+------+-----+------- xl0 [ OpenBSD ] fxp0 -------- ( Internet )
|
[ COMP2 ]
Postoji nekoliko kompjutera na unutrasnjoj mrezi* dia#ram prikazuje tri ali je u stvari pravi broj nevazan& Ovi
kompjuteri su re#ularne radne stanice koje se koriste za sur+ovanje $eb,om, email, c-at,ovanje, itd&, osim
COMP. na kom je podi#nut mali $eb server& Unutrasnja mreza koristi /01&/23&4&4 5 166&166&166&4 mrezni
blok&
OpenBS zastitni zid je Celeron .44 sa dve mrezne kartice) .com .c046B 78l49 i (ntel :t-er:8press Pro5/44
7+8p49& ;astitni zid je kablom povezan do (nterneta i koristi !A" da deli ovu konekciju sa unutrasnjom
mrezom& (P adresa na spoljnjem inter+ejsu je dinamicki dodeljena od strane (nternet Servis Provajdera&
Cilj
Ciljevi su)
Omo#uci neo#raniceni prostup (nternetu svakom unutrasnjem kompjuteru&
Koristi <de+ault den%< +iltriranje skupa pravila&
ozvoli sledeci dolazni saobracaj od (nterneta do zastitno# zida)
o SS= 7"CP port 119) ovo ce se koristiti za spoljno odrzavanje masine sa zastitnim zidom&
o Aut-5(dent 7"CP port //.9) koriscen od neki- servisa kao sto su SM"P i (>C&
o (CMP :c-o >e?uests) (CMP tip paketa koje koristi pin#739&
Preusmeri "CP port 34 pokusaje konektovanja 7pokusaji da se pristupi $eb serveru9 do kompjutera
COMP.& (sto tako, dozvoli "CP port 34 saobracaj namenjen COMP. kroz zastitni zid&
@o#iraj stastistike +iltriranja na spoljasnjem inter+ejsu&
Podrazumevano, od#ovori sa "CP >S" ili (CMP Unreac-able za blokirane pakete&
!apravi skup pravila jednostavnijim i lakim za odrzavanje koliko je to mo#uce&
Priprema
Ovaj document pretpostavlja da je OpenBS -ost od#ovarajuce kon+i#urisan da radi kao router, ukljucujuci
proveravanje (P mrezno# podesavanja, (nternet konekcije, i podesavanja net.inet.ip.forwarding na <1<& Aerovatno
cete i aktivirati PF u /etc/rc.conf.local&
Skup Pravila
U nastavku cemo korak,po,korak procu kroz skup pravila koji ce postici #ore navedene ciljeve&
Makroi
Sledeci makroi su de+inisani da olaksaju odrzavanje i citanje skupa pravila&
ext_if="fxp0"
int_if="xl0"
tcp_services="{ 22, 113 }"
icmp_types="echoreq"
comp3="192.168.0.3"
Prve dve linije de+inisu mrezne inter+ejse na kojima ce se desavati +iltriranje& e+inisuci i- ovde, ako trebamo
premestiti ovaj sistem na dru#u masinu sa razlicitim -ardverom, mozemo promeniti samo te dve linije, i ostatak
skupa pravila se i dalje moze koristiti& "reca i cetvrta linija izlistavaju "CP brojeve portova servisa koji ce biti
otvoreni ka (nternetu 7SS= i ident5aut-9 i (CMP tip paketa koji ce biti pri-vaceni od zastitno# zida& !a kraju,
zadnja linija de+inise (P adresu COMP.&
Beleska) Ako (nternet veza za-teva PPPo:, onda +iltriranje i !A" mora da se radi na tun4 inter+ejsu a ne na 8l4&
Opcije
Sledece dve opcije ce postaviti podrazumevani od#ovor za block +ilter pravila i BukljucitiC lo#iranje statistike za
spoljni inter+ejs)
set block-policy return
set loginterface $ext_if
Svaki Uni8 sistem ima <loopback< inter+ejs& "o je virtualni mrezni inter+ejs koji koriste aplikacije za
medjusobno komuniciranje unutar sistema& !a OpenBS,u, loopback inter+ejs je lo7D9& Smatra se da je najbolje
da se onemo#uce sva +iltriranja na loopback inter+ejsu& Koristeci set skip mozemo postici ovo&
set skip on lo
Primetite da EpreskacemoC celu inter+ejs #rupu lo, na ovaj nacin, u slucaju da kasnije dodamo dodatne loopback
inter+ejse, necemo morati da menjamo ovaj deo nase# postojece# +ajla sa pravilima&
Scrub
!e postoji razlo# za ne koriscenje preporuceno# EciscenjaC svo# dolazno# saobracaja, sto#a je dovoljno staviti
samo jednu liniju)
scrub in
Mrezno Prevodjenje Adresa
a bi ste koristili !A" za celu unutrasnju mrezu koristi se sledece nat pravilo)
nat on $ext_if from !($ext_if) to any -> ($ext_if)
Ovo <F7Ge8tHi+9< se lako moze zameniti sa <GintHi+< u ovom slucaju, ali ako ste dodali nekoliko mrezni- inter+ejsa,
morate dodati dodatna !A" pravila, dok u ovom slucaju, !A",om ce se rukovoditi na svim zasticenim
inter+ejsima&
Posto je (P adresa na spoljnom inter+ejsu dinamicki dodeljena, za#radama se okruzuje inter+ejs na kom se
desava prevodjenje tako da ce PF primetiti kada se adresa promeni&
Posto zelimo da nam F"P pro8% radi, stavicemo i !A" anc-or)
nat-anchor "ftp-proxy/*"
Preusmeravanje
Prva pravila preusmeravanja koja su nam potrebna su za +tp,pro8%739 tako da F"P klijenti na lokalnoj mrezi
mo#u da se povezu na F"P servere na (nternetu&
rdr-anchor "ftp-proxy/*"
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
Primetite da ce ovo pravilo -vatati F"P konekcije na port 1/& Ako se korisnici re#ularno konektuju na F"P
servere na dru#im portovima, onda treba da se koristi lista za odredjivanje odredisni- portova, na primer: from
any to any port { 21, 2121 }.
;adnje pravilo za preusmeravanje -vata sve pokusaje neko# na (nternetu da se poveze na "CP port 34 na
zastitnom zidu& @e#itimni pokusaji da se pristupi ovom portu ce biti od strane korisnika koji pokusavaju da
pristupe $eb serveru na mrezi& Ovi pokusaju konektovanja se trebaju preusmeriti na COMP.)
rdr on $ext_if proto tcp from any to any port 80 -> $comp3
Filter Pravila
A sada pravila za +iltriranje& Pocenite sa podrazumevanim odbijanjem pristupa)
block in
Sada ce sav saobracaj koji pokusava da dodje na inter+ejs biti blokiran, cak i onaj sa unutrasnje mreze& Pravila
koja slede ce otvoriti zastitni zid prema #ore navedenim ciljevima kao i sve neop-odne virtualne inter+ejse&
(majte na umu, p+ moze da blokira saobracaj koji dolazi ili odlazi sa inter+ejsa& Mozete olaksati sebi ako
odaberete da +iltrirate saobracaj u jednom pravcu, radije ne#o da pokusavate da sredjujete stvari kada +iltrirate
neke dolazne stvari, i neke odlazne stvari& U nasem slucaju, usredsredicemo se na +iltriranje dolazno#
saobracaja, ali kada saobracaj vec dodje do inter+ejsa, necemo pokusavati da sprecimo nje#ov odlazak, tako da
cemo uraditi sledece)
pass out keep state
Potreban nam je anchor za ftppro!y"#$:
anchor "ftp-proxy/*"
obro je da se koristi zastita od lazni- adresa)
antispoof quick for { lo $int_if }
Sada otvorite portove koje koriste oni mrezni servisi koji ce biti dostupni (nternetu& Prvo, saobracaj koji je
namenjen samom +ire$all,u)
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
Odredjivanje mrezni- portova u makrou GtcpHservices olaksava da se otvore dodatni servisi ka (nternetu tako sto
cete jednostavno editovati makro i ponovo ucitati skup pravila& i UP servisi se mo#u otvoriti kreiranjem
GudpHservices makroa i dodavanjem +ilter pravila, slicnim #ore navedenim, koji odredjuje proto %dp.
Posto imamo rdr pravilo koje dozvoljava $eb server saobracaj to COMP., MO>AMO da dozvolimo i ovaj
saobracaj kroz zastitni zid)
pass in on $ext_if inet proto tcp from any to $comp3 port 80 \
flags S/SA synproxy state
;a malo dodatne si#urnosti, iskoristi cemo "CP SI! Pro8% da bi jos vise zastitili $eb server&
(CMP saobracaj treba biti propusten)
pass in inet proto icmp all icmp-type $icmp_types keep state
Slicno GtcpHservices makrou, i GicmpHt%pes makro se lako moze editovati da bi se promenio tip (CMP paketa
kojima ce se dozvoliti da dodju do zastitno# zida& Primetite da se ovo pravilo primenjuje na sve mrezne
inter+ejse&
Sada se mora propustiti saobracaj do, i od unutrasnje mreze& Pretpostavicemo da korisnici na unutrsanjoj mrezi
znaju sta rade i nece praviti probleme& Ovo ne znaci da je pretpostavka tacna* stroziji skup pravila ce verovatno
vise od#ovarati za mno#a oruzenja&
pass in quick on $int_if
"CP, UP, i (CMP saobracaju je dozvoljeno da napusti zastitni zid prema (nternetu zbo# ranije <pass out keep
state< linije& (n+ormacije o konekciji se cuvaju tako da se povratni paketi prosledjuju kroz zastinti zid&
Kompletan Skup Pravila
# macros
ext_if="fxp0"
int_if="xl0"
tcp_services="{ 22, 113 }"
icmp_types="echoreq"
comp3="192.168.0.3"
# options
set block-policy return
set loginterface $ext_if
set skip on lo
# scrub
scrub in
# nat/rdr
nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to any port 80 -> $comp3
# filter rules
block in
pass out keep state
anchor "ftp-proxy/*"
antispoof quick for { lo $int_if }
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
pass in on $ext_if inet proto tcp from any to $comp3 port 80 \
flags S/SA synproxy state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass quick on $int_if
Jalibor 'udzicKso888

You might also like