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.

Našli jste v článku chybu?
Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

DigiZone.cz: Prima a vznik slovenského kanálu

Prima a vznik slovenského kanálu

Vitalia.cz: Galerie: Strouhanka ze starých rohlíků? Kdepak

Galerie: Strouhanka ze starých rohlíků? Kdepak

Lupa.cz: Co najdete uvnitř kosmické sondy?

Co najdete uvnitř kosmické sondy?

DigiZone.cz: Evropa 2: od září nové vedení

Evropa 2: od září nové vedení

Lupa.cz: Co vzal čas: internetové kavárny a herny

Co vzal čas: internetové kavárny a herny

DigiZone.cz: Další rána pro piráty: 6 měsíců

Další rána pro piráty: 6 měsíců

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Lupa.cz: Sdílíte veřejně běhání a jízdu na kole?

Sdílíte veřejně běhání a jízdu na kole?

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Podnikatel.cz: Novela zákoníku práce. Řeší homeworking

Novela zákoníku práce. Řeší homeworking

Vitalia.cz: dTest vybral nejlepší pomerančový džus

dTest vybral nejlepší pomerančový džus

DigiZone.cz: ČTÚ zveřejnil aktualizovaný D-Book

ČTÚ zveřejnil aktualizovaný D-Book

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

Podnikatel.cz: Týká se vás EET? Chtějte od berňáku posudek

Týká se vás EET? Chtějte od berňáku posudek