Mandatórna metóda riadenia prístupu

linux_server.jpg

V pre­doš­lej čas­ti sme uká­za­li, ako za­bez­pe­čiť ria­de­nie prís­tu­pu k ur­či­tým strán­kam. Zá­ro­veň sme sa nau­či­li za­bez­pe­čiť skry­tie ob­sa­hu ad­re­sá­ra pre prí­pad, že by po­uží­va­teľ po­ža­do­val od náš­ho server­a strán­ku, kto­rú neob­sa­hu­je. Te­raz bu­de­me v za­bez­pe­če­ní HTTP server­a po­kra­čo­vať.

Ria­de­nie prís­tu­pu
Server Apac­he po­dpo­ru­je dve me­tó­dy prís­tu­pu:
- voľ­ná me­tó­da
- man­da­tór­na me­tó­da

Voľ­ná me­tó­da je za­lo­že­ná na iden­ti­fi­ká­cii po­uží­va­te­ľa po­mo­cou me­na a hes­la. Tá vy­ža­du­je, aby klient po­mo­cou pro­to­ko­lu HTTP za­dal nie­čo, čo vie len on (ale­bo pres­nej­šie – mal by ve­dieť len on), te­da me­no a hes­lo. Voľ­ba prih­la­so­va­cích úda­jov je na po­uží­va­te­ľo­vi, kto­rý sa mô­že roz­hod­núť po­uží­vať rôz­ne prih­la­so­va­cie úda­je po­dľa to­ho, ako to si­tuácia v da­nom oka­mi­hu vy­ža­du­je. Tú­to me­tó­du sme uká­za­li prá­ve v pred­chád­za­jú­cej čas­ti se­riá­lu. Jej efekt je v tom, že ne­zá­le­ží na tom, z kto­ré­ho mies­ta na sve­te sa k ur­či­tej strán­ke pri­pá­ja­me, po­dstat­ná je iden­ti­fi­ká­cia me­nom a hes­lom.

Dru­há, man­da­tór­na me­tó­da je za­lo­že­ná na kon­tro­le ad­re­sy IP klien­tske­ho po­čí­ta­ča. Tá ne­zá­vi­sí od prih­la­so­va­cích úda­jov, kto­ré za­dá­va po­uží­va­teľ, ale od úda­jov z klien­tske­ho po­čí­ta­ča. Ad­re­sa IP je pri man­da­tór­nej me­tó­de naj­po­pu­lár­nej­ší prih­la­so­va­cí údaj.

Bez­peč­nos­tné di­rek­tí­vy
Man­da­tór­na me­tó­da po­uží­va na ria­de­nie prís­tu­pu bez­peč­nos­tné di­rek­tí­vy. Sú to:
- Allow
- AllowOverri­de
- De­ny
- Or­der

Te­raz vy­svet­lí­me jed­not­li­vé bez­peč­nos­tné di­rek­tí­vy a uká­že­me si to na cvič­ných prík­la­doch.

Allow
Di­rek­tí­va Allow ur­ču­je, kto­rí klien­ti ma­jú po­vo­le­ný prís­tup k de­fi­no­va­né­mu ob­sa­hu (te­da ku kon­krét­nym webo­vým strán­kam). Syn­tak­tic­ký zá­pis je:

Allow from All| klient [klient] | env=pre­men­ná

Allow from je kľú­čo­vé slo­vo a po­vo­ľu­je prís­tup k ur­či­tej hie­rar­chii strá­nok. Tá mô­že byť opí­sa­ná ako kon­taj­ner v kon­fi­gu­rač­nom sú­bo­re httpd.conf ale­bo v sú­bo­re .htac­cess (po­zri ďa­lej), kde je tá­to di­rek­tí­va uve­de­ná.

Pa­ra­me­ter All po­vo­ľu­je prís­tup všet­kým klien­tom, pa­ra­me­ter klient ur­ču­je, kto bu­de mať prís­tup. Mô­že byť de­fi­no­va­ný ako pl­ne kva­li­fi­ko­va­né do­mé­no­vé me­no (napr. www.gmrsnm.edu.sk), čias­toč­né do­mé­no­vé me­no (napr. edu.sk), čí­sel­ná ad­re­sa IP ale­bo dvo­ji­ca ad­re­sa IP/mas­ka po­dsie­te.

Pa­ra­me­ter env=pre­men­ná ur­ču­je, že strán­ka bu­de od­os­la­ná len v prí­pa­de, že je v sys­té­mo­vom pros­tre­dí nas­ta­ve­ná po­ža­do­va­ná pre­men­ná. Tú mô­že­me nas­ta­viť po­mo­cou prí­ka­zu Se­tEn­vIf.

Po­znám­ka:
Znak | zna­me­ná, že je po­vo­le­ná iba jed­na voľ­ba z uve­de­ných, te­da All ale­bo klient, ale­bo env=.

AllowOverri­de
Aby sme po­cho­pi­li tú­to di­rek­tí­vu, naj­prv mu­sí­me vy­svet­liť nie­čo o sú­bo­roch .htac­cess. Sú­bor .htac­cess (aj s tou bod­kou na za­čiat­ku!) ob­sa­hu­je kon­fi­gu­rač­né di­rek­tí­vy a mô­že byť umies­tne­ný v ľu­bo­voľ­nom ad­re­sá­ri v hie­rar­chii HTTP server­a. Umies­tne­nie sú­bo­ru .htac­cess je veľ­mi dô­le­ži­té. Di­rek­tí­vy uve­de­né v tom­to sú­bo­re pla­tia pre všet­ky sú­bo­ry v rov­na­kom ad­re­sá­ri, kde le­ží aj sú­bor .htac­cess. Di­rek­tí­vy uve­de­né v tom­to sú­bo­re „pre­bi­jú“ di­rek­tí­vy de­fi­no­va­né v kon­fi­gu­rač­nom sú­bo­re httpd.conf. Ak sú niek­to­ré di­rek­tí­vy sú­bo­ru .htac­cess v kon­flik­te s tý­mi v sú­bo­re httpd.conf, po­zrie sa Apac­he na nas­ta­ve­nie di­rek­tí­vy AllowOverri­de, aby ur­čil, kto­ré voľ­by bu­dú pres­ta­ve­né (uká­že­me na prík­la­de nes­kôr).

Syn­tak­tic­ký zá­pis je:

	AllowOverri­de All | None |trie­da_di­rek­tív

Pa­ra­me­ter All po­vo­ľu­je všet­ky di­rek­tí­vy de­fi­no­va­né v sú­bo­re .htac­cess. Pa­ra­me­ter None sú­bor .htac­cess úpl­ne ig­no­ru­je. Pa­ra­me­ter trie­da_di­rek­tív ur­ču­je tie­to iden­ti­fi­ká­to­ry:
- Aut­hCon­fig – kon­tro­lu­je auten­ti­zá­ciu
- Fi­leIn­fo – ria­di typ do­ku­men­tu
- In­dexes – ria­di in­dexova­nie sú­bo­ru
- Li­mit – ria­de­nie klien­tske­ho prís­tu­pu
- Op­tions – kon­tro­lu­je fun­kcie ad­re­sá­rov

De­ny
Di­rek­tí­va De­ny ur­ču­je, kto­rí klien­ti ma­jú vý­slov­ne za­ká­za­ný prís­tup k de­fi­no­va­né­mu ob­sa­hu. De­ny from je kľú­čo­vé slo­vo a za­mie­ta prís­tup k ur­či­tej hie­rar­chii strá­nok. Tá mô­že byť opí­sa­ná ako kon­taj­ner v kon­fi­gu­rač­nom sú­bo­re httpd.conf ale­bo v sú­bo­re .htac­cess (po­zri ďa­lej), kde je tá­to di­rek­tí­va uve­de­ná.

Pa­ra­me­ter All za­mie­ta prís­tup všet­kým klien­tom, pa­ra­me­ter klient za­mie­ta prís­tup len kon­krét­nym po­čí­ta­čom. Mô­že byť de­fi­no­va­ný ako pl­ne kva­li­fi­ko­va­né do­mé­no­vé me­no (napr. www.gmrsnm.edu.sk), čias­toč­né do­mé­no­vé me­no (napr. edu.sk), čí­sel­ná ad­re­sa IP ale­bo dvo­ji­ca ad­re­sa IP/mas­ka po­dsie­te.

Pa­ra­me­ter env=pre­men­ná za­mie­ta ob­sah len v prí­pa­de, že je v sys­té­mo­vom pros­tre­dí nas­ta­ve­ná po­ža­do­va­ná pre­men­ná. Tú­to mô­že­me nas­ta­viť po­mo­cou prí­ka­zu Se­tEn­vIf.

Or­der
Tá­to di­rek­tí­va sta­no­vu­je im­pli­cit­né prá­va prís­tu­pu a po­ra­dia vy­hod­no­co­va­nia di­rek­tív Allow a De­ny. Syn­tak­tic­ký zá­pis je:

Or­der De­ny, Allow |Allow, De­ny

Pr­vý va­riant pa­ra­met­ra De­ny, Allow zna­me­ná, že sa ako pr­vé vy­hod­no­cu­jú di­rek­tí­vy De­ny a až po­tom di­rek­tí­vy Allow. Prís­tup je za­miet­nu­tý iba klien­tom z di­rek­tív De­ny a im­pli­cit­ne je po­vo­le­ný. Dru­hý va­riant Allow, De­ny zna­čí, že sa ako pr­vé vy­hod­no­cu­jú di­rek­tí­vy Allow a až po­tom di­rek­tí­vy De­ny. Te­da prís­tup je po­vo­le­ný iba klien­tom z di­rek­tív Allow a im­pli­cit­ne je za­miet­nu­tý. Po­vo­le­nie ale­bo za­miet­nu­tie prís­tu­pu po­dľa tej­to di­rek­tí­vy pla­tí vždy pre hie­rarchiu ad­re­sá­rov, de­fi­no­va­nú kon­taj­ne­rom ale­bo sú­bo­rom .htac­cess, v kto­rom je di­rek­tí­va uve­de­ná. Na­ľa­vo ani nap­ra­vo od riad­ka nes­mie byť uve­de­ná žiad­na med­ze­ra!

Po­znám­ka:
V sys­té­me Red­Hat a Fe­do­ra pla­tí sí­ce im­pli­cit­ná hod­no­ta Allow, De­ny, te­da im­pli­cit­né za­miet­nu­tie prís­tu­pu všet­kým klien­tom, kto­rí nie sú de­fi­no­va­ní zvlášť v po­vo­ľu­jú­cej di­rek­tí­ve Allow, ale hneď ďa­lej je v sú­bo­re httpd.conf na­pí­sa­ná di­rek­tí­va Allow from all, kto­rá, nao­pak, bez ďal­ších po­dmie­nok prís­tup všet­kým klien­tom po­vo­ľu­je.

Prík­la­dy
Pred­stav­me si, že bu­de­me chcieť ob­med­ziť časť ad­re­sá­ro­vej štruk­tú­ry pre tých klien­tov, kto­rých náz­vy ale­bo ad­re­sy IP zod­po­ve­da­jú ur­či­té­mu kri­té­riu. Nap­rík­lad chce­me po­vo­liť prís­tup k ad­re­se www.ce­va­ro.sk/intra­net na na­šom server­i len pre po­čí­ta­če z na­šej lo­kál­nej sie­te z roz­sa­hu 10.10.10.0/24. Po­tom po­uži­je­me ten­to zá­pis:

Do­cu­men­tRoot “/var/www.html”
<Di­rec­to­ry /var/www/html/intra­net/>
    Allow from 10.10.10.0/24
</Di­rec­to­ry>

V uve­de­nom prík­la­de je vý­sek z kon­fi­gu­rač­né­ho sú­bo­ru. Di­rek­tí­vu Do­cu­men­tRoot už po­zná­me. Za ňou nas­le­du­je kon­taj­ner (už vie­me, čo to je!) od­ka­zu­jú­ci do ad­re­sá­ro­vej štruk­tú­ry /var/www/html/intra­net/. Prí­ka­zom Allow po­vo­ľu­je­me prís­tup do toh­to ad­re­sá­ra pre sku­pi­nu po­čí­ta­čov s nas­ta­ve­nou ad­re­sou IP v tom­to roz­sa­hu.

V ďal­šom prík­la­de po­vo­lí­me prís­tup k náš­mu intra­ne­tu len pre po­čí­ta­če, kto­rých re­verz­ný zá­znam vy­hľa­dá­va­nia DNS je v do­mé­ne ce­va­ro.sk:

Do­cu­men­tRoot “/var/www.html”
<Di­rec­to­ry /var/www/html/intra­net/>
    Allow from .ce­va­ro.sk
</Di­rec­to­ry>
Do­cu­men­tRoot “/var/www.html” <Di­rec­to­ry /var/www/html/intra­net/> Or­der De­ny, Allow De­ny from 192.168.10.0/24 Allow from 192.168.10.1 </Di­rec­to­ry>

V nas­le­du­jú­com prík­la­de uveď­me si­tuáciu, keď sa do náš­ho intra­ne­tu mô­žu pri­po­jiť všet­ci klien­ti s vý­nim­kou klien­tov zo sie­te 192.168.10.0/24. Nech klient 192.168.10.1 je po­vo­le­ný. 

Te­raz to skús­me nao­pak. Nech všet­ci klien­ti ok­rem klien­tov z roz­sa­hu 192.168.10.0/24 ma­jú zá­kaz pri­po­jiť sa. Klient 192.168.10.1 bu­de za­ká­za­ný:

Do­cu­men­tRoot “/var/www.html”
<Di­rec­to­ry /var/www/html/intra­net/>
    Or­der Allow, De­ny
    Allow from 192.168.10.0/24
    De­ny from  192.168.10.1
</Di­rec­to­ry>

Oc­hra­na sú­bo­rov .htac­cess Na zá­ver je dob­ré oc­hrá­niť sú­bo­ry. htac­cess, aby sa ich ob­sah ne­dal zob­ra­ziť na ob­ra­zov­ke klien­ta. To do­siah­ne­me zá­pi­som:

<Fi­les ~”^\.ht”>
    Or­der Allow, De­ny
    De­ny from all
</Fi­les>

Uve­de­ný zá­pis ho­vo­rí server­u Apac­he, aby vy­hľa­dal sú­bo­ry, kto­rých ná­zov sa za­čí­na na .ht, a za­ká­zal k nim prís­tup. Z uve­de­né­ho dô­vo­du je vhod­né hes­lá z pred­chád­za­jú­cej me­tó­dy uk­la­dať do sú­bo­ru .htpasswd.

Na­bu­dú­ce sa bu­de­me ve­no­vať skrip­tom CGI.

Ďal­šie čas­ti >>

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