Činnosť firewallu

linux_server.jpg V pre­doš­lej čas­ti sme sa za­ča­li ve­no­vať fi­rewal­lu. Vy­svet­li­li sme, či fi­rewall je, aké fi­rewal­ly exis­tu­jú a ako mô­žu byť im­ple­men­to­va­né. Do­hod­li sme sa, že bu­de­me bu­do­vať fi­rewall na li­nuxovom server­i. Te­raz po­kro­čí­me ďa­lej a ob­jas­ní­me zá­kla­dy čin­nos­ti fi­rewal­lu.

Po­dsta­ta fi­rewal­lu
Zo­pa­kuj­me si zá­klad­nú úlo­hu fi­rewal­lu. Je­ho úlo­hou je kon­tro­la úda­jov (pa­ke­tov) v po­čí­ta­čo­vej sie­ti. Naj­čas­tej­šiu ap­li­ká­ciu fi­rewal­lu vi­dí­te na obr. č. 1.

linux_prakticky obr1.bmp
Obr. 1

Fi­rewall od­de­ľu­je lo­kál­nu sieť LAN (prí­pad­ne so spo­me­nu­tou de­mi­li­ta­ri­zo­va­nou zó­nou DMZ) od inter­ne­tu. To zna­čí, že má naj­me­nej dve sie­ťo­vé roz­hra­nia. Dá­ta pre­bie­ha­jú med­zi sie­ťa­mi prá­ve cez tie­to sie­ťo­vé roz­hra­nia, a to v po­do­be pa­ke­tov. Fi­rewall pa­ke­ty od­chy­tí a spra­cu­je. V prí­pa­de, že sa roz­hod­ne o pre­pos­la­ní dát, dru­hým roz­hra­ním po­šle pa­ket do dru­hej sie­te. Mô­že sa však roz­hod­núť, že dá­ta nie sú vhod­né na pre­pos­la­nie, v ta­kom prí­pa­de pa­ket za­ho­dí. Roz­hod­nu­tie o tom, či pa­ket pre­poš­le, po­zme­ní ale­bo za­ho­dí, sa vy­ko­ná na zá­kla­de sta­no­ve­ných pra­vi­diel. Prá­ve sof­tvé­ro­vý fi­rewall je vhod­ný na tvor­bu pra­vi­diel po­dľa na­šich po­trieb. Naj­čas­tej­šie po­uží­va­ný sof­tvé­ro­vý fi­rewall na Li­nuxe je ba­lík net­fil­ter. Ten je dos­tup­ný na inter­ne­to­vej strán­ke www.net­fil­ter.org. Bež­ná li­nuxová ve­rej­nosť po­zná ten­to ba­lík pod dru­hým náz­vom ip­tab­les.

Net­fil­ter a ip­tab­les
Sof­tvér, ozna­čo­va­ný súhr­ne ako ip­tab­les, sa v sku­toč­nos­ti skla­dá z dvoch kom­po­nen­tov – net­fil­ter a ip­tab­les. Net­fil­ter je pra­vý fi­rewall a pra­cu­je v pa­mä­ťo­vom pries­to­re jad­ra Li­nuxu. Tvo­rí ho sku­pi­na ta­bu­liek s pra­vid­la­mi, po­mo­cou kto­rých jad­ro ria­di tok (filtro­va­nie) pa­ke­tov. Ip­tab­les je len uti­li­ta – nás­troj, kto­rým sa pra­vid­lá do ta­bu­liek (v net­filtri) za­dá­va­jú. Beží v pries­to­re po­uží­va­te­ľa, te­da na­rá­ba ním po­uží­va­teľ, naj­čas­tej­šie správ­ca, a to pria­mo z kon­zo­ly v prí­ka­zo­vom riad­ku ale­bo po­mo­cou ne­ja­kej gra­fic­kej nad­stav­by, ale­bo naj­čas­tej­šie po­mo­cou ne­ja­ké­ho skrip­tu, v kto­rom sú prí­ka­zy na­de­fi­no­va­né. Li­nuxáci si však veľ­mi čas­to tie­to dva po­jmy za­mie­ňa­jú a po­va­žu­jú za syn­ony­má, ale v po­dsta­te všet­ci ro­zu­me­jú, o čo ide.

Zá­klad­né po­jmy
Uvied­li sme, že fi­rewall o tom, ako ma­ni­pu­lu­je s pa­ket­mi, roz­ho­du­je po­mo­cou pra­vi­diel. Kaž­dé pra­vid­lo sa skla­dá z po­dmien­ky a z ak­cie (po­dmie­nok aj ak­cií mô­že byť v jed­nom pra­vid­le aj viac). Po­dmien­ky sa sta­no­vu­jú pre úda­je, kto­ré mož­no zís­kať z dá­to­vé­ho to­ku (napr. zdro­jo­vá, cie­ľo­vá ad­re­sa, zdro­jo­vý ale­bo cie­ľo­vý po­rt a rôz­ne iné). Ap­li­ká­cia pra­vid­la je nas­le­du­jú­ca: ak pa­ket vy­ho­vu­je všet­kým po­dmien­kam pra­vid­la, vy­ko­ná sa nad ním ak­cia. Pra­vid­lá sa uk­la­da­jú do tak­zva­nej re­ťa­ze (chain – čí­taj čejn). Na spra­cú­va­ný pa­ket sa po­stup­ne ap­li­ku­jú pra­vid­lá re­ťa­ze v pres­ne de­fi­no­va­nom po­ra­dí, až sa náj­de zho­da pra­vid­la. Ak nie je žiad­na zho­da (te­da nespl­ní sa ni­ja­ká po­dmien­ka v re­ťa­zi), up­lat­ní sa tak­zva­ná zá­sa­da, inak na­zý­va­ná aj štan­dar­dná po­li­ti­ka. Je to v po­dsta­te im­pli­cit­ná ak­cia.

Ta­buľ­ky
V pros­tre­dí net­fil­ter sa po­uží­va­jú na ulo­že­nie pra­vi­diel tri ta­buľ­ky. Sú to:
- fil­ter (filtro­va­cie pra­vid­lá)
- nat (pra­vid­lá pre prek­lad ad­ries – NAT)
- mang­le (pra­vid­lá pre roz­lič­né úp­ra­vy pa­ke­tov)

V ta­buľ­kách sú ulo­že­né už spo­me­nu­té re­ťa­ze. Re­ťa­ze mô­žu byť vsta­va­né ale­bo de­fi­no­va­né po­uží­va­te­ľom. Pa­ket prec­hád­za po­stup­ne všet­ký­mi pra­vid­la­mi re­ťa­ze až dov­te­dy, kým ne­ja­ké pra­vid­lo ne­roz­hod­ne o je­ho osu­de. (Na ta­buľ­ky mu­sí­me na­ze­rať troc­hu ima­gi­nár­ne. Nie sú pres­ne oh­ra­ni­če­né a ich hra­ni­ce sa nav­zá­jom pre­lí­na­jú.)

Ta­buľ­ka Fil­ter
Je to hlav­ná – im­pli­cit­ná ta­buľ­ka. Naj­čas­tej­šie de­fi­nu­je dve zá­klad­né ak­cie - po­vo­liť pa­ket (AC­CEPT) a za­miet­nuť pa­ket (DROP). Ak sa pa­ket za­miet­ne (tzv. za­ho­dí), fi­rewall pres­ta­ne pa­ket spra­co­vá­vať. Pa­ke­ty ni­jak ne­poz­me­ňu­je, roz­ho­du­je sa po­dľa ich ob­sa­hu. Ta­buľ­ka Fil­ter ob­sa­hu­je tri vsta­va­né re­ťa­ze IN­PUT, FORWARD a OUT­PUT, prí­pad­ne re­ťa­ze de­fi­no­va­né po­uží­va­te­ľom:

1. IN­PUT: re­ťaz pra­vi­diel, kto­ré sa ap­li­ku­jú na všet­ky pa­ke­ty, kto­ré pric­hád­za­jú na ten­to po­čí­tač. Tý­mi­to pra­vid­la­mi chrá­ni­me po­čí­tač, na kto­rom beží fi­rewall.
2. OUT­PUT: re­ťaz pra­vi­diel, kto­ré sa ap­li­ku­jú na všet­ky pa­ke­ty, kto­ré vznik­li na tom­to po­čí­ta­či a od­chád­za­jú z ne­ho. Tý­mi­to pra­vid­la­mi mô­že­te ob­med­ziť pa­ke­ty, kto­ré vzni­ka­jú a od­chád­za­jú z po­čí­ta­ča, na kto­rom beží fi­rewall.
3. FORWARD: re­ťaz pra­vi­diel, kto­ré prec­hád­za­jú tým­to po­čí­ta­čom a sú sme­ro­va­né ďa­lej (ak náš po­čí­tač fun­gu­je ako brá­na med­zi sie­ťa­mi). Tý­mi­to pra­vid­la­mi chrá­ni­te vnú­tor­nú sieť LAN, prí­pad­ne DMZ.

Za nor­mál­nych okol­nos­tí sú všet­ky tri re­ťa­ze pra­vi­diel práz­dne, neexis­tu­jú te­da ni­ja­ké ob­med­ze­nia pre pa­ke­ty.

Ta­buľ­ka NAT
Prek­la­do­vá ta­buľ­ka NAT (Network Ad­dress Tran­sla­tion) slú­ži vý­hrad­ne na prek­lad ad­ries. NAT umož­ňu­je zme­niť zdro­jo­vé a cie­ľo­vé ad­re­sy v pa­ke­toch, čím sa naj­čas­tej­šie umož­ňu­je ko­mu­ni­ká­cia so sie­ťa­mi s pri­vát­ny­mi ad­re­sa­mi (napr. 10.0.0.0/8). Aj prek­lad ad­ries pre­bie­ha po­mo­cou pra­vi­diel. Ba­lík net­fil­ter roz­li­šu­je v ta­buľ­ke NAT tri re­ťa­ze pra­vi­diel:

• PRE­ROU­TING: re­ťaz pra­vi­diel, kto­ré sa ap­li­ku­jú na pa­ke­ty v oka­mi­hu vstu­pu do po­čí­ta­ča. Po­mo­cou pra­vi­diel v tej­to re­ťa­zi mô­že­te mo­di­fi­ko­vať cie­ľo­vú ad­re­su pa­ke­tu (Des­ti­na­tion NAT – DNAT).
• OUT­PUT: re­ťaz pra­vi­diel, kto­ré sa ap­li­ku­jú na pa­ke­ty vzni­ka­jú­ce a od­chád­za­jú­ce z po­čí­ta­ča, na kto­rom beží fi­rewall, tes­ne pred ich rou­to­va­ním.
• PO­STROU­TING: re­ťaz pra­vi­diel, kto­ré sa ap­li­ku­jú na pa­ke­ty v oka­mi­hu, keď opúš­ťa­jú po­čí­tač. Po­mo­cou pra­vi­diel v tej­to re­ťa­zi mô­že­te mo­di­fi­ko­vať zdro­jo­vú ad­re­su pa­ke­tu (Sour­ce NAT – SNAT a Masquera­ding).

NAT sa po­uží­va naj­čas­tej­šie vte­dy, ak má­me lo­kál­nu sieť, v kto­rej po­uží­va­me pri­vát­ne roz­sa­hy ad­ries IP (ne­rou­to­va­teľ­né na inter­ne­te) a po­tre­bu­je­te za­bez­pe­čiť ko­mu­ni­ká­ciu med­zi vnú­tor­nou sie­ťou a inter­ne­tom. Aby moh­li po­čí­ta­če v LAN ko­mu­ni­ko­vať s inter­ne­tom (vy­sie­lať po­žia­dav­ky a pri­jí­mať od­po­ve­de), po­tre­bu­je­me zme­niť zdro­jo­vú ad­re­su kaž­dé­ho pa­ke­tu z vnú­tor­nej sie­te na kon­krét­nu ve­rej­nú ad­re­su IP, po­uží­va­nú a zná­mu v inter­ne­te. Naj­čas­tej­šie sa po­uži­je ve­rej­ná ad­re­sa po­čí­ta­ča – server­a, na kto­rom prek­lad ad­ries ro­bí­me. Ten­to prek­lad ad­ries sa na­zý­va SNAT a väč­ši­nou ho rob­me v po­me­re 1:N. Po­mo­cou sle­do­va­nia ko­mu­ni­ká­cie sa za­bez­pe­čí spät­ný prek­lad zdro­jo­vých ad­ries pa­ke­tov, kto­ré pred­sta­vu­jú od­po­ve­de, aby sa dos­ta­li do vnú­tor­nej sie­te k správ­ne­mu prí­jem­co­vi. Pri SNAT sa po­čí­ta­če v inter­ne­te dom­nie­va­jú, že ko­mu­ni­ku­jú len s jed­ným po­čí­ta­čom, na kto­rom je prek­lad ad­ries, a o exis­ten­cii vnú­tor­nej sie­te a prek­la­de ad­ries ne­ma­jú tu­še­nie. Ak má­me vo vnú­tor­nej sie­ti server­y a chce­me za­bez­pe­čiť, aby bo­li prís­tup­né z inter­ne­tu, mu­sí­me na server­i s prek­la­dom ad­ries pub­li­ko­vať ve­rej­né ad­re­sy IP, kto­ré bu­de­me po­uží­vať na prek­lad (net­re­ba pri­dá­vať sie­ťo­vé kar­ty, sta­čí vy­tvo­riť vir­tuál­ne sie­ťo­vé roz­hra­nia). Po­čí­ta­če na inter­ne­te bu­dú ko­mu­ni­ko­vať s tý­mi­to ve­rej­ný­mi ad­re­sa­mi, pri­čom NAT za­bez­pe­čí prek­lad cie­ľo­vej ad­re­sy tak, aby sa pa­ket dos­tal do vnú­tor­nej sie­te. Ten­to prek­lad sa na­zý­va DNAT a väč­ši­nou ho ro­bí­me v po­me­re 1:1. Po­mo­cou sle­do­va­nia ko­mu­ni­ká­cie sa za­bez­pe­čí spät­ný prek­lad zdro­jo­vých ad­ries pa­ke­tov, kto­ré pred­sta­vu­jú od­po­ve­de, aby sa dos­ta­li nas­päť do inter­ne­tu. Pri DNAT sa po­čí­ta­če v inter­ne­te dom­nie­va­jú, že ko­mu­ni­ku­jú s po­čí­ta­čom, na kto­rom je prek­lad NAT (ten­to po­čí­tač po­uží­va ok­rem svo­jej ve­rej­nej ad­re­sy IP aj ďal­šie ve­rej­né ad­re­sy) a o exis­ten­cii vnú­tor­nej sie­te a prek­la­de ad­ries ne­má ani po­tuc­hy. Maš­ka­rá­da (masquera­de – mas­ko­va­nie) sa od prek­la­du SNAT lí­ši v tom, že zdro­jo­vú ad­re­su IP kaž­dé­ho od­chád­za­jú­ce­ho pa­ke­tu nas­ta­vu­je auto­ma­tic­ky po­dľa ad­re­sy roz­hra­nia, z kto­ré­ho od­chád­za. Mas­ko­va­nie mô­že­me po­užiť v spo­je­ní s dy­na­mic­ký­mi IP ad­re­sa­mi, kto­ré nap­rík­lad pri­de­ľu­je pro­to­kol DHCP od „nad­ria­de­né­ho“ server­a (veľ­mi čas­to tak ro­bia rou­te­ry do­dá­va­né po­sky­to­va­teľ­mi inter­ne­tu na Slo­ven­sku). Maš­ka­rá­da by sa ma­la po­užiť prá­ve v tom­to prí­pa­de, keď nie je zná­ma pev­ná ad­re­sa IP, inak je SNAT lep­šie rie­še­nie. Maš­ka­rá­da za­bud­ne po zho­de­ní roz­hra­nia všet­ky spo­je­nia. SNAT je schop­ný po­kra­čo­vať ďa­lej, pre­to­že pred­pok­la­dá, že ad­re­sa IP sa med­zi­tým nez­me­ni­la.

Ta­buľ­ka Mang­le
Tá­to ta­buľ­ka sa po­uží­va vý­hrad­ne na zme­nu po­lí TOS (Ty­pe Of Servic­e – typ služ­by), TTL (Ti­me To Li­ve – do­ba ži­vo­ta) a MARK v pa­ke­toch. Vsta­va­né re­ťa­ze sú PRE­ROU­TING a OUT­PUT. Tú­to ta­buľ­ku vy­uži­je­me nes­kôr pri tvor­be shap­pe­ra – nás­tro­ja na ria­de­nie rých­los­ti to­ku dát.

Prík­lad pra­vid­la
Na obr. č. 2 je vý­vo­jo­vý di­ag­ram prík­la­du pra­vid­la. Pa­ket vstu­pu­je cez roz­hra­nie do sys­té­mu a fi­rewall kon­tro­lu­je, či pa­ket sme­ru­je na po­rt 22, čo je ssh, te­da za­bez­pe­če­né šif­ro­va­né spo­je­nie. Ak pa­ket sme­ru­je na ten­to po­rt, bu­de pre­da­ný do ope­rač­né­ho sys­té­mu a ďa­lej v sys­té­me spra­co­va­ný. Ak cie­ľo­vý po­rt nie je 22, ale aký­koľ­vek iný, bu­de pa­ket za­ho­de­ný. Tak­to jed­no­duc­ho mô­že­me za­bez­pe­čiť oc­hra­nu server­a.

graf.jpg

Prík­lad je len ilus­tra­tív­ny, na­bu­dú­ce si po­vie­me o pra­vid­lách viac.

Ďal­šie čas­ti >>

Zdroj: Infoware 8-9/2008



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Li­nux prak­tic­ky ako server úvod
Linux ako server je pomerne zložitá technológia. Jej výhodou je určitá modularita, keď sa nemusí nastaviť celý server naraz, ale postupne. čítať »
 
Syn­chro­ni­zá­cia ča­su v Li­nuxe
V predchádzajúcich dvoch častiach sme si ukázali, že Linux a všeobecne open source softvér sa nenachádza iba v serveroch a počítačových sieťach, ale aj v iných zariadeniach bežnej domácej potreby a v oblasti hobby. čítať »
 
Za­ria­de­nia za­lo­že­né na Li­nuxe
V predchádzajúcej časti sme si spomenuli definície nie - ktorých pojmov z oblasti nášho záujmu, teda Linuxu. Vysvetlili sme si, čo je to Open Source, Public Domain, proprietárny softvér a GNU GPL. Tentoraz ukážeme, ako sa tieto pojmy využívajú v praxi. čítať »
 
Po­jmy z ob­las­ti
Tentoraz na chvíľu trochu odbočíme od bezpečnosti Linuxu a jeho siete. V tejto neštandardnej časti seriálu sa mu budeme venovať len okrajovo. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí II.
V predchádzajúcej časti sme sa začali zaoberať bezpečnosťou bezdrôtových sietí. Poukázali sme na rôzne faktory zneužitia siete, podstatu rizika a vysvetlili sme základné prvky bezpečnosti. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí I.
V predchádzajúcich častiach sme sa venovali bezpečnosti linuxového servera. Riešili sme firewall, bezpečnosť prístupu na internet, zaoberali sme sa demilitarizovanou zónou a podobne. čítať »
 
Údr­žba lo­gov – kon­fi­gu­rá­cia log­ro­ta­te
V predchádzajúcej časti sme sa venovali rotácii logov. Vysvetlili sme princíp ukladania logov, spôsob, ako sa rotujú, a uviedli sme niečo o tom, čo a ako treba nastaviť čítať »
 
Údr­žba lo­gov – ro­tá­cia
V predošlej časti sme sa zaoberali spôsobom logovania informácií na iný alebo vzdialený počítač a ukázali sme, ako riešiť problém s logovaním uzavretých procesov pomocou chroot. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter