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?
Vitalia.cz: Jeďte do lázní, to je holistika

Jeďte do lázní, to je holistika

120na80.cz: Aktivita klíšťat: stupeň 9

Aktivita klíšťat: stupeň 9

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

DigiZone.cz: Světlé zítřky gaučových sportovců

Světlé zítřky gaučových sportovců

Podnikatel.cz: Český podnikatel a #brexit. Co nastane?

Český podnikatel a #brexit. Co nastane?

DigiZone.cz: Soud zakázal šíření TV Markíza v ČR

Soud zakázal šíření TV Markíza v ČR

DigiZone.cz: Nova: technické pauzy každé 1. pondělí

Nova: technické pauzy každé 1. pondělí

Lupa.cz: Jaké IoT tarify nabízejí mobilní operátoři?

Jaké IoT tarify nabízejí mobilní operátoři?

DigiZone.cz: Markíza: tady je předběžné opatření

Markíza: tady je předběžné opatření

DigiZone.cz: Noxon iRadio 1 W bude za pár měsíců

Noxon iRadio 1 W bude za pár měsíců

Vitalia.cz: 7 receptur z pohanky. Svědčí zdraví

7 receptur z pohanky. Svědčí zdraví

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

DigiZone.cz: Pardubicko: Výrazně posílen Mux 3

Pardubicko: Výrazně posílen Mux 3

DigiZone.cz: Dabingové ceny znají letošní nominace

Dabingové ceny znají letošní nominace

Vitalia.cz: Jíme přesolené potraviny. Zrovna tyhle

Jíme přesolené potraviny. Zrovna tyhle

Root.cz: Quake slaví 20 let novou epizodou zdarma

Quake slaví 20 let novou epizodou zdarma

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: Boj Markízy a Novy o federální trh vrcholí

Boj Markízy a Novy o federální trh vrcholí

DigiZone.cz: HbbTV KinoSvět: už jede na dalších TV

HbbTV KinoSvět: už jede na dalších TV

Podnikatel.cz: Oblíbené Babišovo reverse charge. Potopilo je?

Oblíbené Babišovo reverse charge. Potopilo je?