Využitie superdémona xinetd

linux_server.jpg V pre­doš­lej čas­ti sme sa ve­no­va­li úto­kom na server a spô­so­bom oc­hra­ny pro­ti nim. Ta­kis­to sme uká­za­li, ako tre­ba up­ra­viť pra­vid­lá fi­rewal­lu. Zvy­šo­va­nie bez­peč­nos­ti nie je na ško­du, a tak oc­hra­nu pro­ti rôz­nym úto­kom mô­že­me zvý­šiť aj vhod­ným nas­ta­ve­ním su­per­dé­mo­na xinetd. To­to nas­ta­ve­nie sa ho­dí aj tam, kde fi­rewall ne­mô­že­me na­sa­diť. A to si te­raz uká­že­me.

Čo je xinetd
Už vie­me, že v li­nuxovom server­i exis­tu­je prog­ram bež­iaci na po­za­dí v ope­rač­nej pa­mä­ti server­a, kto­ré­mu sa ho­vo­rí dé­mon (dae­mon). Kaž­dý dé­mon má pri­de­le­ný ur­či­tý po­rt (ale­bo viac po­rtov), na kto­rých na­čú­va, a ak sa ob­ja­ví po­žia­dav­ka na ko­mu­ni­ká­ciu, dé­mon tú­to po­žia­dav­ku ob­slú­ži. Ta­ký­to po­stup je naj­jed­no­duc­hší, ale nie op­ti­mál­ny, pre­to­že kaž­dý dé­mon „zo­že­rie“ časť sys­té­mo­vých pros­tried­kov server­a, či už ob­slu­hu­je ko­mu­ni­ká­ciu, ale­bo nie. Ke­by bo­lo ta­kých dé­mo­nov v sys­té­me ve­ľa, bo­lo by ne­vyh­nut­né pre nich za­bez­pe­čiť dos­ta­tok sys­té­mo­vých pros­tried­kov (te­da ope­rač­nej pa­mä­te, vý­ko­nu pro­ce­so­ra atď.) a server by bol z har­dvé­ro­vej strán­ky veľ­mi zlo­ži­tý a hlav­ne nák­lad­ný.

Keď­že v Li­nuxe je ve­ľa dô­le­ži­tých slu­žieb, kto­ré tre­ba za­bez­pe­čiť po­mo­cou dé­mo­nov, no z uve­de­ných dô­vo­dov ich nec­hce­me mať ve­ľa spus­te­ných v sys­té­me, ro­bí sa to troc­hu inak. V Li­nuxe sa nec­há­va­jú iba tie naj­dô­le­ži­tej­šie služ­by ob­slu­ho­vať vlas­tný­mi dé­mon­mi a os­tat­né, tie me­nej dô­le­ži­té, sa za­bez­pe­ču­jú po­mo­cou jed­né­ho špe­ciál­ne­ho su­per­dé­mo­na s náz­vom xinetd (v star­ších ver­ziách Li­nuxu sa na­zý­val inetd). Ten nah­rád­za dé­mo­nov mno­hých slu­žieb a sám na­mies­to nich na­čú­va na mno­hých po­rtoch a ča­ká na po­žia­dav­ky ko­mu­ni­ká­cie. Ak sa ne­ja­ká ob­ja­ví, xinetd zis­tí jej po­va­hu, prí­pad­ne op­ráv­ne­nia a až po­tom za­vo­lá a spus­tí prís­luš­né­ho dé­mo­na, kto­rý da­nú služ­bu za­bez­pe­čí. Po spl­ne­ní úlo­hy sa za­vo­la­ný dé­mon ukon­čí a su­per­dé­mon xinetd na­čú­va ďa­lej.

Po­uži­tie su­per­dé­mo­na xinetd má via­ce­ro vý­hod. Pr­vá z nich je cen­trál­na sprá­va os­tat­ných dé­mo­nov a s tým sú­vi­sia­ce cen­trál­ne za­is­te­nie bez­peč­nos­ti. Ďalej xinetd vy­stu­pu­je v po­zí­cii aké­ho­si re­gu­lov­čí­ka (tí, kto­rí ab­sol­vo­va­li vo­jen­skú zá­klad­nú služ­bu, ve­dia, čo to je :-)), kto­rý má tie­to fun­kcie:

- kon­tro­lu­je prís­tup k jed­not­li­vým služ­bám a po­dľa IP ad­re­sy po­vo­ľu­je ale­bo za­mie­ta prís­tup,
- za­vád­za de­tail­nej­šie mož­nos­ti lo­go­va­nia ce­lej ko­mu­ni­ká­cie,
- ob­med­zu­je prís­tup k služ­bám po­dľa den­nej do­by,
- chrá­ni jed­not­li­vé služ­by pred útok­mi ty­pu De­nial of Servic­e,
- umož­ňu­je pres­me­ro­va­nie po­žia­dav­ky na iný po­čí­tač
- a iné.

Kon­fi­gu­rá­cia su­per­dé­mo­na xinetd
Kon­fi­gu­rá­cia su­per­dé­mo­na xinetd sa skla­dá z dvoch čas­tí – hlav­nou je kon­fi­gu­rač­ný sú­bor /etc/xinetd.conf a po­tom špe­ciál­ny po­dad­re­sár /etc/xinetd.d/. V tom­to po­dad­re­sá­ri sa nac­hád­za­jú sa­mos­tat­né sú­bo­ry s vlas­tnou kon­fi­gu­rá­ciou. Sú­bor spra­vid­la ne­sie me­no služ­by a ob­sa­hu­je kon­fi­gu­rač­né pa­ra­met­re pre ňu. Tak v sú­bo­re xinetd.conf, ako aj v jed­not­li­vých sú­bo­roch v po­dad­re­sá­ri /etc/xinetd.d/ sa nac­hád­za­jú vlas­tné kon­fi­gu­rač­né pa­ra­met­re. Bý­va zvy­kom, že v hlav­nom kon­fi­gu­rač­nom sú­bo­re xinetd.conf sa nac­hád­za­jú glo­bál­ne pa­ra­met­re, plat­né pre všet­ky služ­by v li­nuxovom server­i. Na kon­ci sú­bo­ru xinetd.conf je uve­de­ný ria­dok

in­clu­de­dir /etc/xinetd.d

kto­rým sa za­bez­pe­čí na­čí­ta­nie kon­fi­gu­rá­cií jed­not­li­vých slu­žieb, ulo­že­ných prá­ve v sú­bo­roch v po­dad­re­sá­ri /etc/xinetd.d/.

Kon­fi­gu­rač­né pa­ra­met­re, či už v hlav­nom sú­bo­re xinetd.conf, ale­bo v jed­not­li­vých sú­bo­roch, sú roz­de­le­né do sek­cií. Kaž­dá sek­cia pred­sta­vu­je jed­nu služ­bu a syn­tak­tic­ký zá­pis je ta­ký­to:

ná­zov služ­by
{
	pre­men­ná1 ope­rá­tor1 hod­no­ta1
	pre­men­ná2 ope­rá­tor2 hod­no­ta2
	...
}

Pre­men­ná nas­ta­vu­je zá­klad­né sprá­va­nie služ­by a je de­fi­no­va­ná náz­vom pa­ra­met­ra. Ope­rá­tor pri­ra­ďu­je pre­men­nej hod­no­tu. Ak pri­ra­ďu­je­me iba jed­nu hod­no­tu, po­uží­va sa znak = (je rov­né), ak pri­ra­ďu­je­me viac hod­nôt, mô­že­me hod­no­tu pri­dá­vať ope­rá­to­rom += ale­bo od­obe­rať ope­rá­to­rom -=.

Hod­no­tou mô­že byť čís­lo, lo­gic­ká hod­no­ta ale­bo aj text, rep­re­zen­tu­jú­ci ur­či­tý pr­vok ope­rač­né­ho sys­té­mu (uká­že­me v prík­la­doch).

Pre­men­ných je mno­ho (ich úpl­ný zoz­nam náj­de­me v ma­nuá­lo­vých strán­kach), uve­die­me tie naj­zák­lad­nej­šie:
 id – iden­ti­fi­kač­ná znač­ka služ­by; po­uží­va sa v prí­pa­de viac­ná­sob­né­ho po­uži­tia rov­na­kej služ­by, ak tá má v rám­ci xinetd rôz­ne nas­ta­ve­nia
 soc­ket_ty­pe – ozna­ču­je druh spo­je­nia (stream pre TCP, dgram pre UDP)
 user – po­uží­va­teľ, pod kto­ré­ho prá­va­mi bu­de služ­ba spus­te­ná; po­uží­va­teľ mu­sí v li­nuxovom sys­té­me exis­to­vať, te­da mu­sí byť uve­de­ný v sú­bo­re /etc/passwd
 group – sku­pi­na, pod kto­rej prá­va­mi bu­de služ­ba spus­te­ná; sku­pi­na mu­sí v li­nuxovom sys­té­me exis­to­vať, te­da mu­sí byť uve­de­ná v sú­bo­re /etc/group
 server – ces­ta k sú­bo­ru, kto­ré­ho spus­te­ním sa žia­da­ná služ­ba vy­ko­ná­va (niek­to­ré služ­by ma­jú špe­ciál­ny prog­ram na spo­lup­rá­cu s xinetd, tá sa od kla­sic­kej ver­zie od­li­šu­je pred­po­nou in v náz­ve prog­ra­mu, napr. in.talkd)
 server_args – pa­ra­met­re od­ov­zdá­va­né pri spus­te­ní služ­by
 wait – udá­va do­bu, po kto­rú ča­ká od pri­ja­tia po­sled­né­ho UDP pa­ke­tu do ukon­če­nia služ­by
 pro­to­col – udá­va sa pri služ­bách, kto­ré nie sú uve­de­né v sú­bo­re /etc/servic­es
 dis­ab­le – pre­pí­nač, kto­rým sa nas­ta­vu­je, či je služ­ba ak­tív­na, ale­bo nie (hod­no­ta no zna­me­ná, že služ­ba bu­de ak­tív­na = nie je neak­tív­na)
 on­ly_from – ur­ču­je klien­tske po­čí­ta­če, kto­ré bu­dú mať po­vo­le­ný prís­tup k da­nej služ­be; mô­že­me po­užiť zá­pis IP ad­re­sy (napr. 192.168.1.1) ale­bo s mas­kou (192.168.1.1/24), do­mé­no­vé me­ná ale­bo ľu­bo­voľ­né kom­bi­ná­cie
 po­rt – udá­va čís­lo po­rtu, na kto­rom služ­ba po­be­ží
 no_ac­cess – ur­ču­je klien­tske po­čí­ta­če, kto­ré ne­bu­dú mať po­vo­le­ný prís­tup k služ­be; zá­pis je po­dob­ný ako pri pred­chád­za­jú­com pa­ra­met­ri
 ac­cess_ti­me – udá­va ča­so­vé ob­do­bie, po­čas kto­ré­ho bu­de služ­ba prís­tup­ná; hod­no­ty sa za­pi­su­jú v tva­re napr. 6:30-15:00 21:00-23:00
 log_ty­pe – nas­ta­vu­je spô­sob lo­go­va­nia (hod­no­ta SYS­LOG na vy­uži­tie sys­logd ale­bo FI­LE na zá­pis lo­gov do zvláš­tne­ho sú­bo­ru)
 log_on_suc­cess – udá­va za­lo­go­va­né in­for­má­cie v prí­pa­de ús­peš­né­ho ukon­če­nia služ­by; hod­no­ty sú PID, HOST, USE­RID, EXIT, DU­RA­TION
 log_on_fai­lu­re – udá­va za­lo­go­va­né in­for­má­cie v prí­pa­de neús­peš­né­ho ukon­če­nia služ­by
 re­di­rect – umož­ňu­je pres­me­ro­vať spo­je­nie na iný po­čí­tač; ob­sa­hu­je IP ad­re­su a po­rt cie­ľo­vé­ho po­čí­ta­ča v tva­re napr. 192.168.1.10 4000 (po­rt sa od IP ad­re­sy od­de­ľu­je med­ze­rou). Pres­me­ro­va­nie je veľ­mi uži­toč­ná služ­ba, umož­ňu­jú­ca pres­me­ro­vať služ­by zo server­a na po­čí­tač scho­va­ný vnút­ri sie­te, kto­rá je od­de­le­ná od oko­li­té­ho sve­ta nap­rík­lad fi­rewallom (uká­že­me v prík­la­de)
 max_load – nas­ta­vu­je maximál­ne za­ťa­že­nie sys­té­mu, kto­ré da­ná služ­ba mô­že v sys­té­me spô­so­bo­vať; ak je po­čet po­žia­da­viek na spo­je­nie vy­šší ako nas­ta­ve­ná hod­no­ta, ne­bu­dú ďal­šie po­žia­dav­ky na spo­je­nie ak­cep­to­va­né
 ni­ce – nas­ta­vu­je prio­ri­tu prog­ra­mu, kto­rý za­bez­pe­ču­je služ­bu, pri­čom vy­ššie hod­no­ty zna­me­na­jú niž­šiu prio­ri­tu; tým sa dá pred­chád­zať ob­med­zo­va­niu os­tat­ných slu­žieb  in­stan­ces – udá­va po­čet po­vo­le­ných sú­čas­ne pre­bie­ha­jú­cich spo­je­ní pre jed­nu služ­bu; hod­no­ta UN­LI­MI­TED ur­ču­je neob­med­ze­ný po­čet

Na­bu­dú­ce uká­že­me na prík­la­doch, ako vy­užiť nas­ta­ve­nie su­per­dé­mo­na xinetd na zvý­še­nie bez­peč­nos­ti li­nuxové­ho sys­té­mu.

Ďal­šie čas­ti >>

Zdroj: Infoware 3/2010



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