Podstata firewallu

linux_server.jpg V pred­chád­za­jú­cich čas­tiach se­riá­lu sme sa veľ­mi čas­to stre­tá­vaa­li aj s bez­peč­nos­ťou li­nuxové­ho server­a. Te­da nie s bez­peč­nos­ťou li­nuxové­ho sys­té­mu, ale s bez­peč­nos­ťou jed­not­li­vých slu­žieb. Tú­to bez­peč­nosť sme naj­čas­tej­šie nas­ta­vo­va­li po­mo­cou prí­ka­zu ip­tab­les bez to­ho, aby sme pres­ne ve­de­li, ako to fun­gu­je. Nas­tal čas, aby sme sa po­no­ri­li do tej­to prob­le­ma­ti­ky hlb­šie, a pre­to sa ňou bu­de­me za­obe­rať ten­to­raz po­drob­nej­šie. Všet­ky skôr spo­me­nu­té zá­sa­dy pla­tia a my ich mô­že­me zhr­núť pod je­di­né slo­vo – fi­rewall.

Fi­rewall
Fi­rewall (čí­taj fa­jer­vól) je kon­krét­ne za­ria­de­nie, kto­ré­ho pri­már­na úlo­ha je oc­hra­na po­čí­ta­ča ale­bo lo­kál­nej po­čí­ta­čo­vej sie­te pred zlo­my­seľ­ný­mi útoč­ník­mi zvon­ku (te­da mi­mo po­čí­ta­ča ale­bo lo­kál­nej sie­te). Ak fi­rewall oc­hra­ňu­je iba je­den po­čí­tač, je po­mer­ne jed­no­duc­hý a je­ho úlo­ha nie je ná­roč­ná. Ho­vo­rie­va­me mu aj osob­ný (per­so­nal) fi­rewall. Ak fi­rewall oc­hra­ňu­je lo­kál­nu po­čí­ta­čo­vú sieť (nap­rík­lad od­de­ľu­je ju od inter­ne­tu), kon­tro­lu­je tok dát med­zi tý­mi­to sie­ťa­mi a mô­že vy­ko­ná­vať aj iné zlo­ži­tej­šie úlo­hy. Jed­nou z nich je prek­lad ad­ries (Network Ad­ress Tran­sla­tion – NAT). NAT umož­ňu­je zme­niť zdro­jo­vú ale­bo cie­ľo­vú ad­re­su pa­ke­tu, čo sa naj­čas­tej­šie vy­uží­va na pri­po­je­nie lo­kál­nej po­čí­ta­čo­vej sie­te do inter­ne­tu po­mo­cou jed­nej pri­de­le­nej ve­rej­nej ad­re­sy IP. Fi­rewall mô­že byť čis­to špe­cia­li­zo­va­né tec­hnic­ké za­ria­de­nie, ale aj sof­tvé­ro­vé vy­ba­ve­nie, kto­ré mož­no na­sa­diť na kon­krét­ny server. Keď­že sme li­nuxáci, bu­de­me sa ďa­lej za­obe­rať sof­tvé­ro­vým fi­rewallom pod ope­rač­ným sys­té­mom Li­nux a bu­de­me uva­žo­vať, že je­ho úlo­hou je chrá­niť ce­lú lo­kál­nu po­čí­ta­čo­vú sieť. (Tre­ba po­zna­me­nať, že tu spo­me­nu­té zá­sa­dy pla­tia aj pre fi­rewal­ly na oc­hra­nu jed­né­ho po­čí­ta­ča, tak­že kto zvlád­ne sie­ťo­vý fi­rewall, is­tot­ne zvlád­ne osob­ný fi­rewall.) Slo­vo fi­rewall všeo­bec­ne v prek­la­de zna­me­ná po­žiar­nu ste­nu, kto­rá slú­ži na oc­hra­nu ob­jek­tov pred po­žia­rom (pre­to by bo­lo asi správ­nej­šie ozna­če­nie proti­po­žiar­na či proti­oh­ňo­vá ste­na).

Po­dľa to­ho, na kto­rej vrstve fi­rewall ana­ly­zu­je sie­ťo­vú pre­vád­zku, ho mož­no za­ra­diť do jed­nej z dvoch sku­pín:
- ap­li­kač­ný proxy server
- pa­ke­to­vý fil­ter

Ap­li­kač­ný proxy server
Ty­pic­kým pred­sta­vi­te­ľom ap­li­kač­né­ho proxy server­a je proxy server squid, kto­rým sme sa už za­obe­ra­li. Pra­cu­je s pa­ket­mi na naj­vyš­šej ap­li­kač­nej vrstve. Má do­ko­na­lej­šie nas­ta­ve­nia, mô­že chrá­niť pred rôz­ny­mi ví­rus­mi, nev­hod­ným ale­bo škod­li­vým ob­sa­hom, ria­diť prís­tup na zá­kla­de auten­ti­fi­ká­cie po­uží­va­te­ľa a po­dob­ne. Ne­vý­ho­da ap­li­kač­né­ho proxy server­a je spo­ma­le­nie sie­ťo­vej pre­vád­zky, pre­to­že pre ana­lý­zu úda­jov mu­sí skla­dať všet­ky pa­ke­ty až po ap­li­kač­nú vrstvu. Ďal­šia ne­vý­ho­da je, že ap­li­kač­né proxy server­y nie sú uni­ver­zál­ne a väč­ši­nou tre­ba po­uží­vať špe­ci­fic­ký proxy server pre kaž­dý typ ko­mu­ni­ká­cie. Ty­pic­ké prík­la­dy sú napr. HTTP proxy server­y, FTP proxy server­y a iné.

Pa­ke­to­vý fil­ter
Pa­ke­to­vý fil­ter sle­du­je sie­ťo­vú pre­vád­zku po tre­tiu (štvr­tú) vrstvu mo­de­lu OSI (t. j. ad­re­sy IP a po­rty). Je ove­ľa rých­lej­ší ako proxy, ale je­ho sprá­va je kom­pli­ko­va­nej­šia a ne­má toľ­ko mož­nos­tí ako ap­li­kač­né proxy server­y, pre­to­že sa nap­rík­lad ne­dos­ta­ne k me­nu po­uží­va­te­ľa, kto­ré­mu pa­tria pa­ke­ty.

Sta­vo­vý pa­ke­to­vý fil­ter
Špe­ciál­ny prí­pad pa­ke­to­vé­ho filtra je sta­vo­vý pa­ke­to­vý fil­ter. Ten sle­du­je spo­je­nia a do­ká­že tak spra­cú­vať pa­ke­ty po­dľa sta­vu spo­je­nia. Tak­to mô­že­me na­de­fi­no­vať pra­vid­lo, kto­ré bu­dú pric­hád­za­jú­ce pa­ke­ty s po­ku­som o nad­via­za­nie spo­je­nia od­mie­tať (le­bo sú po­doz­ri­vé, že sa nám chcú špá­rať v sie­ti), ale pric­hád­za­jú­ce pa­ke­ty, kto­ré sú od­po­ve­ďou na už nad­via­za­né spo­je­nie, ini­cia­li­zo­va­né z lo­kál­nej sie­te, bu­dú po­vo­le­né.

Spo­loč­ný ver­sus sa­mos­tat­ný po­čí­tač
Fi­rewall mož­no vy­tvo­riť dvo­ma spô­sob­mi. Pr­vý spô­sob je vy­tvo­re­nie fi­rewal­lu na po­čí­ta­či (server­i), kde už bež­ia kon­krét­ne služ­by, ako po­što­vý server, proxy server, webo­vý server. To­to rie­še­nie je lac­nej­šie, ale me­nej bez­peč­né. V ur­či­tých si­tuá­ciách by to­tiž bo­lo mož­né prev­ziať nad ce­lým server­om kon­tro­lu a ov­lád­nuť tak ce­lú sieť. Dru­hý spô­sob je vy­tvo­re­nie fi­rewal­lu na sa­mos­tat­nom po­čí­ta­či, kto­rý od­de­ľu­je von­kaj­šiu a vnú­tor­nú sieť, v kto­rej sa nac­hád­za dru­hý (po­što­vý, webo­vý...) server. To­to rie­še­nie je z eko­no­mic­ké­ho hľa­dis­ka drah­šie, le­bo mu­sí­me za­po­čí­tať ce­nu toh­to po­čí­ta­ča. Ne­mu­sí to však byť ten naj­špič­ko­vej­ší po­čí­tač. Keď­že ten­to server bu­de vy­ko­ná­vať len úlo­hu fi­rewal­lu, mô­že to byť aj star­ší po­čí­tač, kto­rý sa na iné (nap­rík­lad kan­ce­lár­ske) úlo­hy už ne­ho­dí. Za­to však zís­ka­me vy­so­ký stu­peň bez­peč­nos­ti. Vy­tvo­re­né pra­vid­lá mô­žu byť prís­nej­šie, pre­to­že ne­mu­sí­me brať oh­ľad na iné služ­by (ako v pr­vom prí­pa­de), zá­ro­veň neh­ro­zí ri­zi­ko, že niek­to­rá so slu­žieb zly­há a umož­ní tak prev­za­tie vlá­dy nad sys­té­mom. Zá­ro­veň bez­peč­nosť mô­že­me zvý­šiť tým, že sprá­vu fi­rewal­lu umož­ní­me je­di­ne z kon­zo­ly, te­da ne­mu­sí­me po­uží­vať ani služ­bu ssh. Os­tat­né služ­by, kto­ré ma­jú byť dos­tup­né z inter­ne­tu (ale­bo tzv. von­kaj­šej sie­te), po­be­žia na fy­zic­ky inom, vnú­tor­nom server­i, náš fi­rewall za­bez­pe­čí správ­ne pre­po­sie­la­nie pa­ke­tov a sú­čas­ne ich pl­nú kon­tro­lu.

De­mi­li­ta­ri­zo­va­ná zó­na
Eš­te bez­peč­nej­šie rie­še­nie je, keď fi­rewall od­de­ľu­je nie dve (inter­net – lo­kál­na sieť), ale tri sie­te. Tre­ťou sie­ťou v tom­to prí­pa­de je špe­ciál­na sieť, kto­rá sa na­zý­va de­mi­li­ta­ri­zo­va­ná zó­na – DMZ. DMZ je sieť, kto­rá sa po­uží­va na server­y so služ­ba­mi prís­tup­ný­mi z inter­ne­tu (poš­ta, web). Fi­rewall umož­ňu­je chrá­niť lo­kál­nu sieť (do ne­ho sa dos­ta­nú maximál­ne od­po­ve­de na spo­je­nia ini­cio­va­né z lo­kál­nej sie­te), ve­rej­né služ­by sú v od­de­le­nom seg­men­te sie­te a fi­rewall nad všet­ký­mi pa­ket­mi vy­ko­ná­va kon­tro­lu.

In­šta­lá­cia fi­rewal­lu
Asi naj­zná­mej­ší fi­rewall po­uží­va­ný v Li­nuxe je prog­ra­mo­vý ba­lík s náz­vom net­fil­ter. Ov­lá­da sa po­mo­cou prí­ka­zov ip­tab­les (kto­ré opí­še­me nes­kôr). Ten­to ba­lík by mal byť sú­čas­ťou kaž­dej „sluš­ne vy­cho­va­nej“ dis­tri­bú­cie. Ak to tak nie je, tre­ba ten­to ba­lík doin­šta­lo­vať z ad­re­sy www.net­fil­ter.org a v jad­re sys­té­mu za­pnúť je­ho po­dpo­ru tak­to:

1. po­dpo­ru rou­to­va­nia v jad­re: Networ­king op­tions -> TCP/IP networ­king -> IP: ad­van­ced rou­ter
2. pri štar­te sys­té­mu tre­ba rou­to­va­nie pa­ke­tov po­vo­liť prí­ka­zom ec­ho "1" > /proc/sys/net/ipv4/ip_forward (ale­bo do sú­bo­ru /etc/sysctl.conf, po­lož­ka net.ipv4.ip_forward=1 za­pí­sať jed­not­ku)
3. po­dpo­ru fi­rewal­lu v jad­re: Networ­king op­tions -> IP Net­fil­ter Con­fi­gu­ra­tion – vy­be­rie­me všet­ky po­treb­né mož­nos­ti, zá­kla­dom sú:
Con­nec­tion trac­king (required for masq/NAT)
IP tab­les sup­port (required for fil­te­ring/masq/NAT)
Con­nec­tion sta­te match sup­port
Pac­ket fil­te­ring
RE­JECT tar­get sup­port
Full NAT (ak chce­te ro­biť prek­lad ad­ries)
MASQUERA­DE tar­get sup­port (ak chce­te ro­biť prek­lad ad­ries po­mo­cou MASQUERA­DE – pre server­y s pev­nou ad­re­sou IP po­sta­čí NAT)
EDI­RECT tar­get sup­port (ak chce­te ro­biť pres­me­ro­va­nia slu­žieb, napr. na úče­ly tran­spa­ren­tné­ho proxy server­a)
LOG tar­get sup­port

Ak si pri kom­pi­lo­va­ní jad­ra nie ste cel­kom is­tí, čo bu­de­te po­tre­bo­vať, mô­že­te za­kom­pi­lo­vať všet­ko (ale­bo všet­ko ok­rem „expe­ri­men­tál­nych“ kom­po­nen­tov). Ak vy­tvá­ra­me mo­du­lár­ne jad­ro a kom­po­nen­ty net­filtra skom­pi­lu­je­te ako mo­du­ly, za­ve­dú sa do pa­mä­te, iba ak to bu­de po­treb­né. Ak bu­de­te mať mo­no­li­tic­ké jad­ro, je­ho veľ­kosť sa mier­ne zväč­ší. Keď­že však pred­pok­la­dá­me, že na fi­rewal­le ne­pot­re­bu­je­te po­dpo­ru zvu­ko­vej kar­ty, 3D gra­fic­ké­ho ak­ce­le­rá­to­ra atď., ne­bu­de jad­ro až ta­ké veľ­ké. Na­bu­dú­ce sa bu­de­me za­obe­rať čin­nos­ťou net­filtra a ip­tab­les.

Ďal­šie čas­ti >>

Zdroj: Infoware 6-7/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