Malý průvodce konfigurací Apache (3)

Tomáš Lopašovský 5. 4. 2001

Náplňou ďalšieho pokračovania Malého sprievodcu konfiguráciou Apache bude oboznámenie sa s direktívami obmedzujúcimi prístup do oblastí na disku. Zmienka bude aj o spôsobe, ktorým Apache určuje nastavenia jednotlivých dokumentov žiadaných užívateľmi a uvediem niekoľko konkrétnych príkladov pre lepšie pochopenie.

Obmedzovanie prístupu k dokumentom

Prístup k súborom na serveri môžeme zakázať/povoliť na základe nasleducúcich parametrov:

  • kompletné meno domény (napr.: user.apache.org) alebo doména, do ktorej user patrí (apache.org)
  • kompletná IP adresa alebo časť IP adresy (adresa siete)
  • IP adresa spolu s maskou siete

Order, Deny, Allow
Podľa čoho obmedzujeme, to už vieme. Teraz si povieme o tom ako obmedzujeme…
Najprv zadefinujeme priority, ktoré sa uplatnia v prípade, že užívateľ, snažiaci sa o prístup na server je uvedený aj v zozname direktívy Deny aj v zozname Allow. Definujeme pomocou direktívy Order :

Order Allow,Deny     #De­ny (zamietnutie) má vyššiu prioritu

alebo

Order Deny,Allow     #vyš­šiu prioritu má Allow (povolenie)

Ďalej nasleduje samotný zoznam IP adries, domén a pod., ktoré budú odmietnuté respektíve prijaté, napr.:

Deny from all
Allow from apache.org

K tomuto príkladu sa ešte vrátime, teraz niečo o už spomenutých prioritách.
Pokiaľ je užívateľ uvedený v zozname direktívy Allow alebo v zozname Deny (čiže nie v oboch súčasne), podľa názvu direktívy server určí jeho budúcnosť – buď ho príjme(Allow) alebo odmietne(Deny). Pokiaľ je user súčasne v oboch zoznamoch, alebo ani v jednom postupuje sa podľa direktívy Order, a to tak, že rozhoduje direktíva, ktorá je v Order zapísaná za čiarkou a má teda vyššiu prioritu.

Niekoľko príkladov pre lepšie pochopenie:

Order Deny,Allow
Deny From All
#Odmietnutý je všetok prístup k dokumentom

Order Allow,Deny
#To isté – odmietnutý je všetok prístup k súborom

Order Deny,Allow
Deny From apache.org
#Odmietnutý je prístup k dokumentom zo serveru apache.org

Order Deny,Allow
Deny From All
Allow From apache.org

#Odmietnutý je všetok prístup k súborom, okrem požiadaviek z apache.org

V konfiguračnom súbore pravdepodobne nájdeme aj tieto riadky:

<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>

Jednu direktívu v tejto definícii poznáme z minula (Options), o druhej (AllowOverride) sa dozvieme až v budúcej časti . Čo je ale podstatné je to, že nanajvýš vhodné do tohoto zápisu je vložiť riadky, ktoré implicitne zakážu prístup ku všetkým dokumentom na serveri, teda:

<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order Allow,Deny
   Deny from all
</Directory>

Zabránime tým prístupu nepovolaných osôb k súborom ktoré nie sú pre nich určené. Oblasti, ktoré naopak prístupné majú byť, nakonfigurujeme napríklad týmto spôsobom:

<Directory /home/httpd>
… direktívy …
   Order Allow,Deny
   Allow from all
… direktívy …
</Directory>

Vlastnosti prekrývajúcich sa oblastí
V predchádzajúcej časti sme sa naučili definovať oblasti. Nevyšlo ale miesto na vysvetlenie spôsobu určovania konfigurácie adresárov, ktoré sa v definíciach oblastí nachádzajú viac krát, a teda sa prekrývajú, respektíve nie sú uvedené vôbec, ale patria do nejakej oblasti.

Majme definície oblastí pre adresáre:
/, /home, /home/httpd/, /home/httpd/www­/user

Dokument, o ktorý užívateľ žiada, je umiestnený v: /home/httpd/www­/user/osobne/ .

Otázka: akú konfiguráciu použije Apache pre túto oblasť ?
Odpoveď: najprv server načíta konfiguráciu pre oblasti, ktoré sú definované a do ktorých daný objekt patrí (teda: /, /home, /home/httpd, /home/httpd/www­/user) a skombinuje ich. Výsledok je aplikovaný na žiadaný adresár. Skutočne jednoduchý príklad:

<Directory />
   AllowOverride None
   Order Allow,Deny
   Deny from all
</Directory>

<Directory /home>
   Order Allow,Deny
   Allow from all
</Directory>

<Directory /home/httpd>
   AllowOverride All
   Order Allow,Deny
   Deny from all
</Directory>

<Directory /home/httpd/www­/user>
   Order Allow,Deny
   Allow from all
</Directory>

Potom adresár /home/httpd/www­/user/osobne/ bude prístupný aj napriek tomu, že nie je priamo definovaný ako oblasť a uplatní sa v ňom naviac aj AllowOverride All.

Je tu ale jedna výnimka, a tou je práve direktíva Options. Vysvetlím znova na príklade.

Sú dané tieto definície oblastí:

<Directory />
   Options ExecCGI
</Directory>


<Directory /home/httpd>
   Options FollowSymLinks
</Directory>


Potom pre adresár /home/httpd je uplatnená iba direktíva FollowSymLinks, neplatí tu už ExecCGI. Pokiaľ potrebujeme aby platila aj vo vnútri oblasti /home/httpd, použijeme prefix „+“ pre pridanie direktívy k parametrom Options posledne definovanej oblasti, respektíve „-“ pre odobranie. Za direktívou Options sa parametre uvádzajú buď všetky s prefixmi, alebo všetky bez prefixov. Vyššie uvedený príklad by sme mohli pre platnosť ExecCGI v adresári /home/httpd prepísať takto:

<Directory />
   Options ExecCGI
</Directory>

<Directory /home/httpd>
   Options +FollowSymLinks
</Directory>

Apache to vlastne interpretuje ako pridanie parametra FollowSymLinks ku parametru ExecCGI – teda pridanie FollowSymLinks k najbližšej definícii oblasti. Iný príklad:

<Directory />
   Options Indexes FollowSymLinks
</Directory>

<Directory /home>
   Options -Indexes
</Directory>

<Directory /home/httpd/user>
   Options +ExecCGI
</Directory>

V adresári /home/httpd/user bude možné používať symbolické linky a spúšťať CGI skripty. Inak povedané, uplatnia sa tu parametre FollowSymLinks a ExecCGI direktívy Options.

V ďalšom pokračovaní sa naučíme konfigurovať oblasti pomocou oddelených súborov .htaccess a vysvetlíme si s tým súvisiacu direktívu AllowOverride.

Ohodnoťte jako ve škole:

Průměrná známka 2,82

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

Podnikatel.cz: Alza radí e-shopům, jak opustit Heureku

Alza radí e-shopům, jak opustit Heureku

Lupa.cz: Česká umělá inteligence umí rozpoznávat zvuky

Česká umělá inteligence umí rozpoznávat zvuky

Podnikatel.cz: Přechod z OSVČ na firmu? Totální šok!

Přechod z OSVČ na firmu? Totální šok!

120na80.cz: Jak správně vytrhnout mléčný zub?

Jak správně vytrhnout mléčný zub?

Podnikatel.cz: Internet věcí ušetří v podnikání peníze

Internet věcí ušetří v podnikání peníze

DigiZone.cz: V RS7 ukončila vysílání Retro Music Television

V RS7 ukončila vysílání Retro Music Television

DigiZone.cz: Rádio Retro spouští stream o Karlu IV.

Rádio Retro spouští stream o Karlu IV.

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

Podnikatel.cz: Šizený guláš na pultě. Jako Lidl to nedělejte

Šizený guláš na pultě. Jako Lidl to nedělejte

Podnikatel.cz: Využijte v byznysu nulové tarify

Využijte v byznysu nulové tarify

120na80.cz: Jak si udržet zdravou vaginu

Jak si udržet zdravou vaginu

120na80.cz: Velký přehled: 7 očkování proti exotickým nemocem

Velký přehled: 7 očkování proti exotickým nemocem

Podnikatel.cz: Opět chtějí zvyšovat daně živnostníkům

Opět chtějí zvyšovat daně živnostníkům

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

120na80.cz: Zjistěte, zda je vaše klíště infikované

Zjistěte, zda je vaše klíště infikované

120na80.cz: Co jí dělá? Sklerotizaci

Co jí dělá? Sklerotizaci

120na80.cz: Poznáte, který z léků je pravý?

Poznáte, který z léků je pravý?

DigiZone.cz: Konec geoblokace? Ani náhodou…

Konec geoblokace? Ani náhodou…