RYCHLÝ NÁHLED DO PROBLEMATIKY MODULU WWW SERVERY

 
 

Modul poskytuje základní informace o problematice správy WWW serverů.

Rychlý náhled

 

ÚVODEM MODULU WWW SERVERY

Ještě než se pustíte do samotného studia je potřeba na úvod říci několik vstupních požadavků na vás. Protože úroveň vašich znalostí může být rozdílná je nutné hned v úvodu upozornit na to, že k tomu abyste mohli studovat tento modul a vlastně celý předmět je nutné mít alespoň základní znalosti z následujících oblastí:

  • Internet a intranet
    • Základní znalost počítačových sítí (povědomí o prvcích sítě), základy protokolu TCP/IP, aktivní schopnosti práce se službou WWW, představa o standardu MIME
  • Tvorba WWW stránek
    • Oblasti: HTML, CSS, XML (základy), skriptování na straně serveru (výhodou je znalost PHP), skriptování na straně klienta (JavaScript)
  • OS Linux
    • Práce na OS Linux, základní práce s příkazovou řádkou, nastavování práv k souborům a adresářům, vytváření symbolických linků

Pokud vám některé z termínů uváděných v tomto učebním textu nebudou srozumitelné bude to většinou znamenat, že nemáte potřebné základní znalosti. Tyto je nutné nastudovat z dalších učebních textů.

Úvodní předpoklady

CÍL MODULU WWW SERVERY

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TOHOTO MODULU

Budete rozumět:

  • Základům konfigurace WWW serveru.
  • Protokolům HTTP a HTTPS
  • Vrstvě SSL.

Budete umět

   

Získáte:

  • Základní představu o existujících nástrojích pro provoz WWW serveru.
  • Základní představu o zabezpečení WWW serveru.

Získáte

   

Budete schopni:

  • Konfigurovat WWW server Apache.
  • Konfigurovat přístup ke zdrojům WWW serveru.

Budete schopni

 

 

ČAS POTŘEBNÝ KE STUDIU

 

Studijní text WWW Servery je spíše praktického charakteru s množstvím úkolů, a proto v závislosti na konfiguraci počítače můžete na jeho prostudování strávit 40 i více hodin.

 

 

 

PRŮVODCE STUDIEM 1

 

Celý text je koncipován systémem od jednoduchých principů ke složitějším, proto je vhodné studovat kapitoly tak jak jsou za sebou. Přesto můžete klidně nepostupovat sekvenčním způsobem a vybírat si jen pro vás zajímavé kapitoly. Určitě, ale nezapomeňte prolistovat shrnutí všech kapitol a určitě si vyřešte všechny předložené samostatné úkoly. Ty s obálkou nezapomeňte zaslat tutorovi k hodnocení.

 
2

1 ZÁKLADY PROBLEMATIKY WWW SERVERŮ

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ZÁKLADY PROBLEMATIKY WWW SERVERŮ

 
 

Kapitola je vstupním bodem do problematiky WWW serverů, neboť popisuje základní pravidla chování WWW serverů a počítačové sítě. V žádném případě si však nečiní nároky na výuku počítačových sítí, naopak předpokládá čtenářovu alespoň základní znalost v této oblasti.

Rychlý náhled

 

CÍLE KAPITOLY ZÁKLADY PROBLEMATIKY WWW SERVERŮ

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Popsat základní komunikační protokoly

Budete umět

   

Získáte:

  • Základní představu o architektuře WWW služby

Získáte

   

Budete schopni:

  • Definovat standard MIME
  • Popsat komunikaci přes HTTP protokol

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 120 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY ZÁKLADY PROBLEMATIKY WWW SERVERŮ

 
 

Internet, intranet, HTTP, MIME, TCP/IP, HTTPS

Klíčová slova

3

1.1 Počítačová síť

Zjednodušeně řečeno: počítačová síť je systém, který umožňuje komunikaci (výměnu dat) mezi počítači. Tento systém sestává z mnoha součástí a ty se mohou lišit svou rolí v systému. Jedná se především o počítače (např. klientské, servery, typu peer-to-peer), přepínače, směrovače, mosty, síťové programové vybavení, komunikační média (např. kabely, vlákna), přenášená data, administrátoři, uživatelé a jiné.

Počítačová síť

 

KORESPONDENČNÍ ÚKOL 1

 

Podívejte se na stránky http://www.earchiv.cz/index.php3 a pokuste se na jejich základě definovat počítačovou síť. Definici zašlete k posouzení tutorovi.

Definice počítačové sítě

4

1.1.1 Internet vs. intranet

Rozdíl mezi Internetem a intranetem je poměrně obtížně specifikovatelný, přesto se o to pokusme. Zatímco Internet je globální počítačová síť, ke které se může připojit kdokoliv s odpovídajícím zařízením (počítačová síť, počítač, modem, telefon, atd.), intranet je lokální počítačová síť, ke které se může připojit jen uživatel, který je v nějakém smluvním vztahu se správcem této lokální sítě. Jednotlivé intranety jsou často připojeny k síti Internet a styčné body přes které jsou připojeny jsou součástí obou sítí. Aby mohla být určitá síť označena jakožto intranet musí být jednotlivé počítače vhodnou formou od Internetu odstíněny a ke zdrojům na Internetu přistupovat přes zmíněné styčné body. Tzn. že by neměly být přístupné z počítačů nacházejících se mimo intranet.

Internet vs. intranet

 

SAMOSTATNÝ ÚKOL 1

 

Podívejte se na http://archiv.czech.net/a804s200/a804p201.htm a pokuste se sami definovat rozdíl mezi internetem a intranetem.

Internet vs. intranet

5

1.1.2 WWW servery a klienti

K prohlížení WWW dokumentů se využívá speciální program zvaný WWW prohlížeč (WWW klient). WWW prohlížeč navazuje komunikaci s počítači (WWW servery). Komunikace je uskutečňována prostřednictvím WWW protokolu HyperText Transfer Protocol (HTTP) a pomocí síťového protokolu Transmission Communication Protocol/Internet Protocol (TCP/IP).

K identifikaci protokolu, WWW serveru a dokumentu, o který má uživatel zájem se využívá jednoznačná adresa v Internetu, která se nazývá Uniform Resource Locator (URL).Je třeba říci, že WWW klienti umožňují připojení nejen k WWW serverům (resp. komunikaci nejen pomocí HTTP protokolu), ale i komunikaci pomocí jiných protokolů (např. FTP, News, Gopher). Na začátku URL adresy v takovýchto případech není uvedeno http, ale např. ftp, gopher, news.

Mezi standardní prohlížeče v současné době patří Microsoft Internet Explorer a Mozilla. Pro různé účely jako je např. prohlížení nestandardních grafických formátů je nutná implementace přídavného modulu pro prohlížeč. Tento modul se pak stará o korektní zobrazení příslušného formátu. V případě Microsoft Internet Exploreru se tento modul nazývá ActiveX a pro produke Mozilla se používá označení Plug – in. WWW klientů (prohlížečů) je několik desítek. Mezi nejznámější po dvou uvedených gigantech patří Amaya, Lynx a Opera.

WWW klienti

WWW server je počítač, který pro WWW klienta zprostředkovává zpřístupnění WWW stránek. WWW server je vybaven specifickým programovým vybavením. V současné době, podobně jako v případě WWW klientů, existuje značné množství různých WWW serverů. Následující graf a tabulka ukazují zastoupení těch hlavních WWW serverů používaných v roce 2002. Celkový počet stránek, se kterými je počítáno je 37 585 233. Údaje jsou z roku 2002.

WWW servery

Obrázek 1-1: Vývoj používanosti WWW serverů ve světě, převzato z [Umlauf 2002]

Obrázek 1-2: Počet stránek umístěných na WWW serverech uvedených vývojových týmů, převzato z [Umlauf 2002]

Podle těchto údajů jsou v současné době nejpoužívanější WWW servery Apache s přibližně 56%, následuje Microsoft s 32% (produkty Microsoft Internet Information Server, Microsoft IIS-W, Microsoft PWS-95 a Microsoft PWS), iPlanet (produkty iPlanet Enterprise, Netscape Enterprise, Netscape FastTrack, Netscape Commerce, Netscape Communications, Netsite Commerce & Netsite Communications), modro-zelenkavá křivka pak reprezentuje podíl ostatních týmů, ze kterých je nejúspěšnější Zeus.

Používání WWW serverů

 

KORESPONDENČNÍ ÚKOL 2

 

Najděte aktuálnější srovnání počtu WWW serverů. Srovnání zašlete k posouzení tutorovi.

Využití WWW serverů

6

1.2 Komunikační protokoly a standardy

1.2.1 TCP/IP

Protokol TCP/IP je charakterizován:

  • síťový model (architektura)
  • zajišťuje přenos dat (paketů)
  • vznik souvisí s ARPANETEM (zárodek Internetu)
  • decentralizovaný charakter
  • komunikace- nespojovaný charakter
  • řešen tak aby bylo možné připojovat již existující sítě
  • bezestavový chrakter – server neví nic o klientech – neudržuje si přehled
  • přenosová část – přenášet data – nespolehlivá
  • spolehlivost řeší koncové uzle
  • nešifruje data – řeší aplikační úroveň
  • jednotné rozhraní nad všemi možnými přenosovými technologiemi nižších vrstev

Popis

Aplikační vrstva

  • služby: e-mail, přenos souborů, vzdálené přihlašování
  • později přidané: sdílení souborů, správa sítě, zpřístupnění informací (www, gopher, news)

Transportní vrstva

  • využívá služeb síťové vrstvy
  • nabízí:
    • spojovaný a spolehlivý přenos
    • nespojovaný a nespolehlivý přenos

Protokoly transportní vrstvy:

  • TCP (Transmission Control Protocol) - zasílání paketů, které spolu souvisí (zabaleny do IP obálky) – některý se může ztratit – klient si ho znovu vyžádá a zařadí na místo kam patří – ověření kontrolní součet
  • UDP (User Datagram Protocol) - lehká nadstavba nad síťovou vrstvou, nespojovaný a nespolehlivý přenos, vhodný při zasílání krátkých zpráv které se vejdou do jednoho paketu

Síťová vrstva

  • nespojovaný a nespolehlivý přenos
  • jednotné rozhraní nad všemi možnými přenosovými technologiemi nižších vrstev
  • Protokol - IP (Internet Protocol)

Vrstva síťového rozhraní

  • TCP/IP ji neřeší – nespecifikuje
  • Předpokládá se že se použije něco jiného co již existuje
    • Ethernet
    • Token Ring
    • ATM

Vrstvy

 

SAMOSTATNÝ ÚKOL 2

 

Zjistěte IP adresu vašeho počítače. Zjistěte loop-back adresu svého počítače. Postup si poznamenejte.

IP adresa a Loop-back IP adresa

7

1.2.2 Domain Name System (DNS)

  • Zajišťuje nahrazení IP adres jmény – pro lepší orientaci uživatele – převodník IP adresa – WWW adresa
  • Doména (cz, vsb, gis) – zodpovídají správci přidělování jmen – max 5 úrovní
  • Domény com, edu, gov, org, net, mil – základní + kódy zemí

Popis

8

1.2.3 HTTP

Definice komunikace mezi WWW serverem a WWW klientem.

Ve verzi 0.9 - co nejjednodušší. Verze 1.0 přidává podporu vyrovnávací paměti a inspiruje se protokolem el. pošty a MIME.

Popis

Klient naváže spojení se serverem prostřednictvím nějakého transportního protokolu (obvykle TCP) a položí mu dotaz. Server na něj odpoví. Pak obvykle uzavře spojení. Takováto komunikace je často označována jako bezstavový protokol (komunikace) neboť server o klientech ví pouze v "krátkém" okamžiku dotazu a odpovědi.

Častým způsobem komunikace je komunikace s využitím nepřímého spojení mezi serverem a klientem prostřednictvím nějakého prostředníka.

Komunikace

Proxy - od klienta obdrží URL dekóduje jej a dotáže se serveru. Odpověď serveru předá klientovi. Často se využívá při přístupu odstíněných počítačů např. firewallem.

Gateway - slouží jako prostředník pro překlad HTTP do jiného protokolu. Např. e-mail - zaslání požadavku na server přes e-mail - převedení do http - obdržení odpovědi v http - převedení do e-mail a odeslání klientovi.

Proxy Cache - proxy s vyrovnávací pamětí - ukládá často používané stránky a klient pak nepřistupuje k těmto stránkám přímo u serverů, ale získává je z "paměti" proxy serveru.

Prostředníci

Dotaz: první řádek + hlavičky + prázdný řádek + tělo dokumentu

první řádek: metoda + lokátor + verze HTTP - nejčastější metodou je GET a POST (post má tělo - údaje z formulářů), lokátor - objekt na serveru, kterého se dotaz týká

hlavičky: název + : + hodnota - př. User-Agent: Mozila/4.76 [en] (WinNT; I)

Odpověď: první řádek + hlavičky + prázdný řádek + tělo dokumentu

první řádek: id protokolu + stavový kód + vysvětlení - př. HTTP/1.1 200 OK - dotaz vyřízen kladně

hlavičky: název + : + hodnota - př. Server: IIS/2.0, Content-type: text/html

Dotaz a odpověď

Např. Content-type - MIME typ předávaných dat
Content-length - délka dat
Content-Language, Content-Encoding

Hlavičky

 

SAMOSTATNÝ ÚKOL 3

 

V příkazovém řádku napište telnet gis.vsb.cz 80 a do vytvořeného spojení zašlete následující text (podobný zasílá WWW serveru prohlížeč MSIE 6.0):

GET / HTTP/1.1

Accept-Language: cs
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: 158.196.143.23:80
Connection: Keep-Alive

Výstup, který obdržíte si uložte do souboru, k pozdější analýze na tutorialu.

Zaslání požadavku na WWW server, obdržení odpovědi

 

SAMOSTATNÝ ÚKOL 4

 

Pokud zvládáte programování v jazyce Java, můžete se pokusit o zprovoznění serveru, který vypíše obsah požadavku WWW klienta do systémového výstupu.

Zde je kód serveru:

import java.io.*;
import java.net.*;
import java.util.*;

class SimpleThread extends Thread {
  Socket s;
  int id;
  public SimpleThread(String str, Socket ss, int cid){
    super(str);
    s = ss;
    id=cid;
  }
  public void run() {
    try {
      DataInputStream dis = new DataInputStream(s.getInputStream());
      String header;
      //ctení streamu z klienta
      while ((header = dis.readLine())!= null) {
        System.out.println(header);
      }
    } catch (IOException e) {
      System.out.println("Chyba cteni z klienta: " + e);
    }
  }
}

public class MyServer {
  public static void main(String args[]) {
    int iii=1;
    ServerSocket ser = null;
    Socket s = null;
    try {
      ser = new ServerSocket(2255);
    }	catch (IOException e) {
      System.out.println("chyba Serveru: " + e);
    }
    while (true) {
      try {
        System.out.println("Starting Thread");
        s = ser.accept();
        new SimpleThread(new Integer(iii).toString(), s, iii).start();
        iii++;
      } catch (IOException e) {
        System.out.println("chyba zapis: " + e);
        //System.exit(0);
      }
    }
  }
}

V prohlížeči zadejte adresu http://127.0.0.1:2255/. Výstup, který na straně serveru obdržíte srovnejte s textem v předchozím úkolu.

Přijetí požadavku WWW klienta.

8

1.2.4 MIME

Pro práci s protokolem HTTP a tedy i WWW serverem je nutná minimální znalost standardu MIME. MIME standar umožňuje jednoduchým způsobem definovat formát zasílaných dat. Příjemce (obvykle WWW prohlížeč) nemusí daná data analyzovat a na základě údaje v hlavičce zprávy (Content-Type) zjistí o jaká data se jedná.

Popis

 

KORESPONDENČNÍ ÚKOL 3

 

Podívejte se na stránku IANA - MIME a sestavte dokument, který bude obsahovat: základní MIME typy, příklady MIME podtypů, MIME typy pro HTML, XML, SVG a PHP dokumenty. Dokument zašlete k posouzení tutorovi.

MIME typy

9

1.2.5 HTTPS

Zabezpečená (šifrovaná) forma protokolu HTTP. Bude probrána v kapitole 8.

Popis

SHRNUTÍ KAPITOLY ZÁKLADY PROBLEMATIKY WWW SERVERŮ

 

Víte, že Internet je globální počítačová síť a intranet je lokální počítačová síť

MIME slouží k popisu datových formátů

Dotaz HTTP má strukturu: první řádek + hlavičky + prázdný řádek + tělo dokumentu

Odpověď HTTP má strukturu: první řádek + hlavičky + prázdný řádek + tělo dokumentu

DNS se stará o překlad IP adres na jména a naopak.

Shrnutí

PRŮVODCE STUDIEM 2

 

Následující kapitola obecně popisuje problematiku správy WWW serveru.

Průchod modulem

2

2 SPRÁVA WWW SERVERU

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY SPRÁVA WWW SERVERU

 
 

Kapitola SPRÁVA WWW SERVERU se věnuje základnímu rozboru úkolů správce WWW serveru.

Rychlý náhled

 

CÍLE KAPITOLY SPRÁVA WWW SERVERU

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Vyjmenovat úkoly správce WWW serveru

Budete umět

   

Získáte:

  • Představu o střetech zájmů při správě WWW serveru

Získáte

   

Budete schopni:

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 30 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY SPRÁVA WWW SERVERU

 
 

Správce HW, Správce OS, Správce sítě, Tvůrci WWW stránek, Uživatelé WWW stránek

Klíčová slova

3

2.1 Prvky WWW serveru

WWW server je v zásadě jednoduchý nástroj. V zásadě pouze na základě požadavku uživatele zpět vrátí požadovaný dokument. Přesto správa WWW serveru není tak jednoduchá, jak by se mohlo zdát. Důvodem je především velké množství lidských činitelů, kteří do chodu WWW serveru obvykle zasahují.

Správce se musí snažit udržet server v chodu, tak aby uspokojil potřeby všech jeho uživatelů (aktivních i pasivních) a správců. Následuje výčet uživatelů a správců WWW serveru, jejichž požadavky jsou často v příkrém rozporu:

Lidský činitel Obvyklé požadavky
Správce HW Co nejméně investovat do nákupu HW. Nechat server běžet, nic neměnit, nic nepřidávat.
Správce OS Neměnit konfiguraci OS, pokud je to jen trochu možné. Nicméně záplatovat systém proti bezpečnostním chybám OS.
Správce sítě Povolit co nejméně přístupných komunikačních portů.
Tvůrce statických WWW stránek Mít vzdálený přístup k datům. Mít možnost zabezpečit data.
Tvůrce dynamických WWW stránek Mít vzdálený přístup k dokumentům, databázi a skriptům. Mít možnost zabezpečit data. Mít možnost používat svůj oblíbený programovací jazyk. Mít možnost konfigurovat svůj virtuální adresář.
Uživatelé WWW stránek Mít extrémně rychlou odezvu na všechny požadavky. Nemuset nikde psát žádná přístupová hesla.

Počítačová síť

 

KORESPONDENČNÍ ÚKOL 4

 

Doplňte tabulku o další požadavky a vymezte střety zájmů jednotlivých lidských činitelů. Své hodnocení zašlete k posouzení tutorovi.

3

2.2 Úkoly správce WWW serveru

Správce WWW serveru provádí mnoho operací, které se liší rozsahem a četností. Rozsah a četnost závisí na mnoha okolnostech. Způsob provádění činností (a někdy i výčet) závisí na použitém programovém vybavení pro WWW server a na použitém OS. V následujících kapitolách se naučíte jak spravovat WWW Server Apache. Důvody k volbě tohoto nástroje jsou v zásadě dva. Ten první důvod je ten, že WWW server Apache se spravuje s využitím konfiguračních souborů, které se editují v textovém editoru a správce se tak s problematikou seznámí na úrovni, která mu umožní spravovat i WWW server, který poskytuje ke správě nástroj v podobě dialogových oken (např. MS IIS).

Úvod

 

SAMOSTATNÝ ÚKOL 5

 

Zamyslete se nad druhým důvodem k volbě serveru Apache pro tento učební materiál.

Druhý důvod pro volbu WWW serveru Apache

 

Mezi operace, které správce WWW serveru obvykle provádí patří:

  • Instalace (kompilace - v případě Open Source)
  • Spuštění, zastavení, restartování
  • Základní konfigurace
  • Sledování činnosti
  • Konfigurace adresářů
  • Tvorba virtuálních adresářů. Konfigurace virtuálních adresářů
  • Instalace interpretů skriptovacích jazyků a jejich konfigurace
  • Konfigurace a omezení konfigurace uživatelských virtuálních adresářů
  • Správa rejstříků
  • Optimalizace výkonu
  • Přesměrování URL
  • Konfigurace řízení přístupu k virtuálním adresářům
  • Konfigurace zabezpečené komunikace, šifrování
  • Nastavení cache, proxy
  • Konfigurace virtuálních serverů
  • Správa modulů WWW serveru

Činnosti správce

SHRNUTÍ KAPITOLY SPRÁVA WWW SERVERU

 

Uvědomujtete si střety zájmů při správě WWW serveru

Znáte záladní úkoly správce WWW serveru

Shrnutí

PRŮVODCE STUDIEM 2

 

Následující kapitola vás zavede do problematiky instalace WWW serveru Apache, jeho ovládání a sledování jeho činnosti.

Průchod modulem

2

3 INSTALACE, SPOUŠTĚNÍ, SLEDOVÁNÍ ČINNOSTI

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY INSTALACE, SPOUŠTĚNÍ, SLEDOVÁNÍ ČINNOSTI

 
 

Kapitola INSTALACE, SPOUŠTĚNÍ, SLEDOVÁNÍ ČINNOSTI představuje ty nejzákladnější činnosti správce WWW serveru na příkladu WWW serveru Apache

Rychlý náhled

 

CÍLE KAPITOLY SPRÁVA WWW SERVERU

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Nainstalovat WWW server Apache
  • Spustit a zastabvit WWW server Apache

Budete umět

   

Získáte:

  • Informace potřebné pro sledování činnosti WWW serveru Apache

Získáte

   

Budete schopni:

  • Provést základní konfiguraci WWW serveru Apache

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 180 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY INSTALACE, SPOUŠTĚNÍ, SLEDOVÁNÍ ČINNOSTI

 
 

Instalace, Apache, Access Log, Error Log, Web Alizer

Klíčová slova

3

3.1 Instalce

Přestože je konfigurace WWW serveru Apache transparentní na všech OS, pro které je určen, existují určité výjimky ve správě. V dalším textu budeme předpokládat, že používáte OS Linux. Pokud používate jiný operační systém můžete se při studiu tohoto materiálu dostat do komplikací, které musíte řešit ve spolupráci s tutorem předmětu.

WWW server Apache se velmi často v prostředí OS Linux kompiluje ze zdrojových kódů. Tento postup má nesporné výhody, ale klade zvýšené nároky na znalosti správce, proto je tento způsob probírán až v kapitole 10, jako jakýsi bonus ve správě WWW serveru.

Úvod

WWW server Apache je již standardní součástí většiny distribucí OS Linux. Pokud jste jej při instalaci OS nenainstalovali můžete tak učinit dodatečně z instalačních CD nebo jiným obvyklým způsobem (např. pomocí apt-get). Balík pro instalaci se nazývá httpd-XXX.

Instalace Linux

Na OS Windows se WWW server instaluje pomocí instalátoru MSI (případně EXE), který je možné stáhnout ze stránek http://www.apache.org

Návod k instalaci na OS Windows najdete na stránkách Apache

Instalace Windows

Pokud nemáte zájem instalovat OS Linux, ale přesto byste rádi pracovali a konfigurovali WWW server Apache v prostředí OS Linux, můžete s výhodou využít některého z LiveCD. WWW server Apache je nainstalován např. na LiveCD KNOPPIX (http://www.knoppix.net).

KNOPPIX

 

SAMOSTATNÝ ÚKOL 6

 

Nainstalujte WWW server Apache pro svůj OS nebo nabootujte LiveCD.

3

3.2 Spuštění, restartování

Vědět jakým způsobem server Apache spustit a restartovat je velmi důležité. Především restart serveru je velmi často využíván neboť je nutný při většině změn konfigurace WWW serveru.

Restart WWW serveru musí být proveden takovým způsobem aby uživatel nic nezaznamenal. Proto to není jednoduchá záležitost z pohledu programátora. Server musí zachovat všechny existující relace s klienty a nově vznikající již předávat novému běhu www serveru. Z pohledu administrátora jde však o operaci poměrně jednoduchou.

Úvod

 

KORESPONDENČNÍ ÚKOL 5

 

Podívejte se na stránky http://httpd.apache.org/docs-2.0/invoking.html a http://httpd.apache.org/docs-2.0/stopping.html. Pokuste se vlastními slovy popsat jakým způsobem řeší Apache svůj restart tak aby zachoval existující relace na klienty. Popis zašlete tutorovi.

Zachování relací

 

N stránkách http://httpd.apache.org/docs-2.0/invoking.html a http://httpd.apache.org/docs-2.0/stopping.html najdete návod jak (re) startovat Apache na OS Linux.

Výše uvedený návod není úplný a obvykle se Apache restartuje jiným způsobem. Pokud máte Apache nainstalovaný ze záklaní distribuce je zároveň zaregistrován jako služba systému, proto je přístupný jako skript mezi službami systému. Restart proto můžete provést i následujícím způsobem /etc/init.d/httpd restart.

Pokud máte zájem aby se Apache spouštěl po nastartování systému a používáte distribuci RedHat, Fedora můžete využít nástroj setup spustitelný příkazem setup.

Start, restart na OS Linux

Na OS Windows se WWW server restartuje přes nabídku start

Návod k restartování a startování na OS Windows najdete na stránkách Apache

Restart na OS Windows

 

SAMOSTATNÝ ÚKOL 7

 

Vyzkoušejte si restart Apache všemi uvedenými způsoby.

3

3.3 Základní konfigurace

Po nainstalování je server Apache již nakonfigurován a může tudíž běžet. Konfigurace je však implicitní a ne vždy vyhovující potřebám správce a uživatelů. V zásadě můžete WWW server provozovat bez zásahu do konfigurace, ale obvykle dříve či později budete nuceni do konfigurace zasáhnout.

Ke konfiguraci Apache slouží jeden základní konfigurační soubor a několik dalších doprovodných (doplňujících). Základní konfigurační soubor se jmenuje httpd.conf a obvykle se nachází v adresáři /etc/httpd/conf (na Windows pak v C:\Program Files\Apache Group\Apache\conf).

Úvod

Z počátku konfigurace budou stačit následující základní informace a informace uvedené na http://httpd.apache.org/docs-2.0/configuring.html:

  • Řádky v konfiguračním souboru začínající znakem # nejsou serverem interpretovány, jedná se o komentáře
  • Instrukce pro server mají náledující tvar Název_Instrukce Hodnota_Instrukce
  • Instrukce mohou být uzavřeny v některé z povolených sekcí. Sekce začínají značkou <Nazev_Sekce ... > a končí značkou </Nazev_Sekce ... >. Jedná se o analogii k HTML kódu.

Struktura konfiguračního souboru

Mezi základní direktivy (parametry), které je možno nastavit patří:
Direktiva HodnotaPopis
ServerRoot "/usr/local/httpd"Udává aktuální cestu k www serveru. Od této cesty se pak odvíjí relativní cesty k logům, konfiguraci, apod. (viz. dále). Z počátku práce nedoporučuji měnit hodnotu.
PidFile logs/httpd.pidUdává relatvní cestu (od ServerRoot) a název souboru v němž je uložen identifikátor hlavního procesu aplikace Apache (httpd)
Timeout 300Doba po které server klientovi oznámí chybu TimeOut (požadavek nemohl být v časovém limitu zpracován). Doba je v sekundách.
Port 80Číslo portu na kterém WWW server běží.
ServerAdmin jan.ruzicka@vsb.czE-mailová adresa správce WWW serveru. Objevuje se v chybových hlášeních.
DocumentRoot "/var/www/html"Cesta k adresáři, který je wwwrootem daného serveru. Pokud uživatel zadá http://ipadresa/pokus.html nebo použijete loopback adresu http://127.0.0.1/pokus.html pak se načte dokument pokus.html z adresáře /var/www/html

Základní direktivy

 

SAMOSTATNÝ ÚKOL 8

 

Nastavte direktivu Port na hodnotu 8055 a ServerAdmin na svou e-mailovou adresu. Restartujte server. Vyzkoušejte, že na portu 80 již server neběží ale beží na portu 8055 (Při zadání http://127.0.0.1/ by měl klient oznámit, že server nenalezl, ale při zadání http://127.0.0.1:8055/ by měl odpovědět). Zkuste zadat požadavek na dokument, který ve vašem wwwrootu neexistuje a přesvěčte se, že server již uvádí správný administrátorský e-mail.

Nastavení Port a ServerAdmin

3

3.4 Sledování činnosti

Sledování činnosti WWW serveru patří mezi základní činnosti správce. Na základě činnosti správce rozhoduje o optimalizaci serveru, opravuje vzniklé chyby, odhaluje vzniké bezpečnostní problémy, apod.

Pro sledování činosti je možné využít dva základní nástroje. První z nich se téměř nevyužívá a jedná se o tzv. ScoreBoardFile (direktiva v httpd.conf). Měl by zachycovat vnitřní stav serveru Apache, ale osobně jsem jej nikdy neviděl. Druhým nástrojem jsou standardní log soubory.

Log soubory jsou dvojího druhu:

  • Error Log
  • Access Log

Popis

3

3.4.1 Access Log

Access log je soubor, do kterého se zapisují všechny požadavky na WWW server a odpovědi na ně. Logovací soubory jsou implicitně umístěny v adresáři /etc/httpd/logs (na Winodws pak v C:\Program Files\Apache Group\Apache\logs). Jejich umístění je možné změnit v konfiguračním souboru. Slouží k tomu direktiva CustomLog.

Direktiva CustomLog má dva parametry (hodnoty). První udává cestu a název souboru, do kterého se bude zapisovat a druhý udává název struktury výstupních dat.

Př.
CustomLog logs/access.log common
CustomLog logs/agent.log agent
CustomLog logs/jencek.log jencek

Direktiva CustomLog se může v konfiguračním souboru vyskytnout vícektrát. Je tedy možné zaznamenávat dotazy a odpovědi do více souborů s různou strukturou.

Struktura zápisu může být definována pomocí direktivy LogFormat, která má dva parametry. První udává strukturu a druhý název struktury, který je pak použit u direktivy CustomLog.

Př.
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t" jencek
LogFormat "%{User-agent}i" agent

Popis

 

SAMOSTATNÝ ÚKOL 9

 

Podívejte se do souboru access_log, do kterého vám server zapisuje dle předpisu common a pokuste se popsat co server zaznamnal. Na pomoc můžete využít http://httpd.apache.org/docs-2.0/logs.html

Struktura předpisu common

 

KORESPONDENČNÍ ÚKOL 6

 

Nakonfigurujte server Apcahe tak aby do souboru jencek_log zapisoval záznamy v následující struktuře:
IP-Adresa klienta;Požadavek(metoda a URl);kód odpověďi serveru;

Vlastní log format

3

3.4.2 Error Log

Error log je soubor, do kterého se zapisují všechny chyby WWW serveru a aplikací WWW serverem spuštěných. Logovací soubor je implicitně umístěn v adresáři /etc/httpd/logs (na Windows pak v C:\Program Files\Apache Group\Apache\logs). Jeho umístění je možné změnitv konfiguračním souboru. Slouží k tomu direktiva ErrorLog.

Direktiva ErrorLog má jden parametr (hodnotu), který udává cestu a název souboru, do kterého se bude zapisovat.

Př.
ErrorLog logs/error.log

Direktiva ErrorLog se může v konfiguračním souboru vyskytnout pouze jednou.

Úroveň zápisu může být definována pomocí direktivy LogLevel, která má jeden parametr, který udává úroveň zaznamenávaných chyb a to od fatálních chyb serveru (LogLevel emerg) až po všechny činností serveru (LogLevel debug). V případě že zadáte úroveň debug bude zaznamenáváno úplně vše co zaznament lze. Pro běžného správce to však nemá význam a implicitně je nastavena úroveň warn (varování).

Popis

 

SAMOSTATNÝ ÚKOL 10

 

Zadejte v prohlížeči adresu http://127.0.0.1/axdfglmp. Změňte úroveň chybových hlášení na debug. Restartujte server. Zadejte opět adresu http://127.0.0.1/axdfglmp. Podívejte se do souboru error_log a porovnejte obě úrovně zápisu (warn vs. debug).

Úroveň zápisu

3

3.4.3 Web Alizer

Access log je soubor, který je pro člověka poněkud hůře čitelný a neposkytuje žádné souhrnné informace o požadavcích na WWW server. Např. nás může zajímat, který virtuální adresář je nejvytíženější a zasloužil by si vlastní virtuální či úplně nový server.

K analýze logů WWW serveru je možné využít mnoho nástrojů. Nejvyhledávanějším (pro Apache) je zřejmě WebAlizer.

Popis

 

SAMOSTATNÝ ÚKOL 11

 

Pokud nemáte Web Alizer ještě nainstalován, nainstalujte jej a těšte se z jeho analýz (resp. souhrnných přehledů).

WebAlizer

SHRNUTÍ KAPITOLY INSTALACE, SPOU©TĚNÍ, SLEDOVÁNÍ ČINNOSTI

 

Umíte nainstalovat WWW server Apache

Umíte WWW server Apache spouštět a zastavovat

Jste schopni sledovat činnost WWW severu Apache s využitím log souborů

Shrnutí

PRŮVODCE STUDIEM 3

 

Následující kapitola se zabývá tím hlavním co obvykle správce WWW serveru provádí a to řízení konfigurace adresářů a virtuálních adresářů. Jako doplněk je zde rovněž zmíněna možnost tvorby automatických rejstříků.

Průchod modulem

2

4 ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY

 
 

Kapitola ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY se zabývá základními prvky konfigurace přístupu uživatelů k adresářům a souborům, které publikujete s využitím WWW serveru. Jedná se o základní operace, které správce WWW serveru provádí.

Rychlý náhled

 

CÍLE KAPITOLY ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Konfigurovat přístup k adresářům WWW serveru
  • Vytvářet a konfigurovat virtuální adresáře

Budete umět

   

Získáte:

  • Základní představu o konfiguraci a vytváření rejstříků

Získáte

   

Budete schopni:

  • Umožnit, zakázat nebo omezit konfiguraci uživatelům vašeho WWW serveru

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 180 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY

 
 

Adresář, Virtuální adresář, Options, ExecCGI, AllowOverride, Allow, Deny, Indexes, Alias, UserDir

Klíčová slova

3

4.1 Konfigurace adresářů

Direktiva DocumentRoot zmíněná v kapitole 3.3 udává wwwroot celého serveru. Všechny podadresáře v DocumentRoot dědí nastavení pravidel pro tento adresář. V případně implicitního nastavení to např. znamená, že všechny podadresáře wwwrootu jsou přístupné uživateli WWW serveru.

Nastavení wwwrootu je možné měnit a stejně tak je možné měnit i nastavení jednotlivých podadresářů. K tomuto slouží blok uvozený značkou:
<Directory>
a ukončený značkou:
</Directory>

Veškeré nastvení bloku se provádějí uvnitř těchto značek.S blokem se můžete seznámit na adrese http://httpd.apache.org/docs-2.0/mod/core.html#directory

Úvod

Struktura sekce Directory je jednoduchá. Uvnitř uvozující značky se uvádí cesta k adresáři, který se bude konfigurovat. Mezi značkami se pak uvádí jednotlivé volby nastavení.

<Directory /var/www>

Options Indexes FollowSymLinks

</Directory>

Cesta k adresáři může být doplněna zástupnými znaky (např. *) nebo může být využita adekvátní blok DirectoryMatch, který umožňuje zadávat regulární výrazy místo samotné cesty.

Struktura

Mezi základní volby lze zařadit následující možnosti a jejich kombinace (podmnožiny):

Options All MultiViews
Options Indexes FollowSymLinks ExecCGI MultiViews Includes
AllowOverride None
AllowOverride Options FileInfo AuthConfig Limit
Order allow,deny
Allow from all
Deny from 158.196.143.103

Volba Options může být následována některým z uvedených parametrů, případně i více parametry. Parametr All představuje všehcny parametry kromě parametru MultiViews (ten se musí explicitně uvádět - kdo ví proč?). Parametr Indexes povoluje generování implicitních rejstříků (probíráno v kapitole 4.4). Parametr FollowSymLinks umožňuje WWW serveru zobrazovat soubory, ke kterým vedou symbolické linky (v OS Linux vytvářené pomocí ln -s, jedná se o jakési zástupce adresářů nebo souborů). Parametr ExecCGI povoluje v adresáři vykonávat kód CGI skriptů nebo aplikací. Parametr Includes povoluje v adresáři vykonávat interní příkazy WWW serveru (tzv. Serverem vkládané vsuvky - Includes - viz. přednáška z WWW stránek). Parametr Multiviews umožňuje v daném adresáři vyjednávat o obsahu (např. nabízet jazykové mutace nebo mutace pro různé typy prohlížečů, apod.)

Volba AllowOverride řídí možnost dodatečné konfigurace, která se provádí v externím souboru. Parametry této volby udávají co vše (jaké nastavení) je možné pomocí tohoto externího souboru měnit. Implicitně se tento soubor nazývá .htacces a umisťuje se přímo do daného adresáře. Této volby je vhodné využívat pouze v případě, že správce daného adresáře nemá práva modifikovat hlavní konfigurační soubor WWW serveru.

Volba Order uvádí pořadí vyhodnocování přístupu k adresáři. V případě pořadí allow,deny jsou nejdříve vyhodnoceny volby Allow a až následně volby Deny. Volba Allow povoluje přístup, volba Deny zakazuje přístup. Volby Allow a Deny mohou mít jako parametry uvedeny all, ip adresy (oddělené mezerou), části ip adresy, DNS jména nebo části.

Základní volby

 

SAMOSTATNÝ ÚKOL 12

 

Ve wwwrootu vytvořte adresář nepristupny. Umístěte do něj dokument index.html. Zobrazte si tento dokument přes WWW prohlížeč. Nastavte přístup k adresáři nepristupny na Deny from all. A vyzkoušejte znovu přístup.

Deny from all

3

4.2 Tvorba a konfigurace virtuálních adresářů

Podadresáře wwwrootu celého serveru jsou pro uživatele WWW přístupné (pokud jsme nenastavili jinak). Velmi často však potřebujeme zpřístupnit i adresáře mimo wwwroot. K tomu nám slouží direktiva Alias (případně ScriptAlias).

Úvod

Direktiva Alias je jednoduchá. Má dva parametry. První z nich je název virtuálního adresáře a druhý fyzická cesta k adresáři.

Alias /adresarmimowwroot/ /home/mujadresar/

Při zadání adresy http://127.0.0.1/adresarmimowwwroot/ v prohlížeči dojde k zobrazení obsahu adresáře /home/mujadresar/.

Struktura Alias

Alternativou k direktivě Alias je direktiva ScriptAlias. Tato dikrektiva se chová (a má i stejnou strukturu) stejně jako direktiva Alias s tím rozdílem, že navíc předává zpracování objektů v adresáři jako CGI akriptů.

Script Alias

Obě direktivy musí být následovány blokem Directory, ve kterém je nutné nastavit práva přístupu k danému adresáři (ne virtuálnímu, ale fyzickému). Je to z důvodu, že tento adresář nedědí údaje z wwwrootu.

<Directory /home/mujadresar/>

Options Indexes FollowSymLinks
Order allow,deny
Allow from all

</Directory>

Directory

 

SAMOSTATNÝ ÚKOL 13

 

Zpřístupněte libovolný adresář mimo wwwroot.

Virtuální adresář

 

SAMOSTATNÝ ÚKOL 14

 

Najděte v konfigruračním souboru sekci, která definuje přístup k adresáři cgi-bin.

cgi-bin

3

4.3 Tvorba a konfigurace uživatelských virtuálních adresářů

Možná jste se již setkali s URL ve tvaru http://gisak.vsb.cz/~ruz76/. Takovýto typ adresy obvykle ukazuje na web uživatele pod uživatelským jménem uvedeným za ~, v našem případě tedy ruz76. Aby mohli uživatelé využívat služeb vašeho WWW serveru je nutné doplnit (povolit konfiguraci) uživatelských virtuálních adresářů.

Úvod

K tomuto účelu se využívá direktiva UserDir a následně pak sekce Directory, kterou se řídí konfigurace uživatelských adresářů. Direktiva UserDir má jeden parametr. Parametr představuje definici názvu uživatelského adresáře. Aby byly postiženy všechny uživatelské adresáře je nutné aby sekce Directory byla doplněna zástupným znakem (např. *)

<IfModule mod_userdir.c>
   UserDir public_html
</IfModule>

<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes
    Order allow,deny
    Allow from all
</Directory>

Sekce IfModule pouze kontroluje zda Apache obsahuje modul nutný pro UserDir direktivu. Implicitně tomu tak je. Sekce Directory upravuje přístup k uživatelským adresářům.

Struktura UserDir

Všimněte si direktivy AllowOverride, která byla posána v kapitole 4.1. Uživatelské virtuální adresáře jsou ideálním místem, kde se tato direktiva může uplatnit. Touto direktivou dáváte uživatelům možnost upravit si přístup ke svému adresáři s využitím zmiňovaného souboru .htaccess.

.htaccess

 

SAMOSTATNÝ ÚKOL 15

 

Podívejte se na http://httpd.apache.org/docs-2.0/howto/public_html.html a http://httpd.apache.org/docs-2.0/mod/mod_userdir.html#userdir a podle příkladů zpřístupněte uživatelské virtuální adresáře. Následně povolte spouštění CGI skriptů v podadresáři cgi-bin uživatelského adresáře.

Uživatelský adresář a CGI

3

4.4 Správa rejstříků

Rejtříky jsou seznamy obsahu adresáře, o který požádal WWW prohlížeč. WWW Apache umožňuje generovat automaticky tyto seznamy. Jejich konfigurace je poměrně rozsáhlá. Podrobně se s ní můžete seznámit na http://httpd.apache.org/docs-2.0/mod/mod_autoindex.html. V této kapitole se seznámíme pouze se základy konfigurace rejtříků.

Úvod

V případě, že se uživatel vyžádá adresář (např. zadáním http://gisak.vsb.cz/ vyžaduje wwwroot daného serveru), apache posoudí přístupová práva (sekce Directory) a pokud je vše v souladu hledá v adresáři specifikcé soubory, které určuje direktiva DirectoryIndex.

Direktiva DirectoryIndex definuje seznam základních rejstříků, které se mají uživateli při zájmu o adresář zobrazit. Seznam představuje názvy souborů oddělelých mezerami dle priority předání.

DirectoryIndex index.html index.htm index.php default.html default.htm 

Uvedený příklad donutí apache nejdříve hledat soubor index.html, pokud jej nalezne předá jej zpět prohlížeči. pokud jej nenalezne pak hledá index.htm. Tak až do konce seznamu. Pokud žádný ze soouborů v adresáři neexistuje, pak přichází ke slovu implictní rejstříky.

Implicitní rejstřík se zobrazí však pouze v případě, když je v sekci Directory na daném adresáři povolena volba Options Indexes.

DirectoryIndex

Implictiní rejstřík se chová dle konfigurace pomocí několika direktiv.

Direktiva IndexOptions definuje záklandí chování rejstříků. Většině správců však implictní typ vyhovuje. Pokud máte zájem něco měnit podívejte se na výše uvednou stránku.

Direktiva AddIconByType definuje ikonu, která se v rejstříku zobrazí vedle názvu souboru. ByType znamená, že ikona bude přiřazena na základě MIME typu daného jako třetí parametr direktivy.

AddIconByType (TXT,/icons/text.gif) text/*

Direktiva AddIcon definuje ikonu, která se v rejstříku zobrazí vedle názvu souboru. V tomto případě je přiřazení závislé na příponě souboru. Přípony se uvádějí jako třetí až n-tý parametr direktivy. V příkladu níže tedy .bin a .exe.

AddIcon /icons/binary.gif .bin .exe

Direktiva DeafaultIcon definuje ikonu, která se v rejstříku zobrazí vedle názvu souboru. V tomto případě je přiřazena pokud soubor neodpovídá, žádnému přiřazení pomocí direktiv AddIconByType nebo AddIcon.

DefaultIcon /icons/unknown.gif

Direktivy implicitního rejstříku

 

SAMOSTATNÝ ÚKOL 16

 

Vytvořte vlastní ikonu a modifukujte konfiguraci tak aby se u souborů s příponou .txt zobrazovala vámi vytvořená ikona.

Vlastní ikona

 

KORESPONDENČNÍ ÚKOL 7

 

Soubor httpd.conf modifikovaný dle úkolů v kapitole 4 zašlete k posouzení tutorovi.

Konfigurační soubor

SHRNUTÍ KAPITOLY ADRESÁŘE, VIRTUÁLNÍ ADRESÁŘE, REJSTŘÍKY

 

Umíte vytvořit virtuální adresář

Umíte omezit přístup k adresáři na základě IP adresy uživatele

Víte jak umožnit využívání uživatelských adresářů

Umíte změnit chování implicitního rejstříku

Víte jak omezit uživatelům konfiguraci jejich adresářů

Shrnutí

PRŮVODCE STUDIEM 4

 

Další kapitola se zabývá konfigurací interpretů CGI skriptů a povolením spouštění CGI skriptů a aplikací.

Průchod modulem

2

5 CGI, INTERPRETI

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY CGI, INTERPRETI

 
 

Kapitola CGI, INTERPRETI obecně popisuje možnosti a omezení dynamických stránek z pohledu správce WWW serveru. Podrobněji se věnuje interpretu skriptovacího jazyka PHP a to v obou formách (Interpret jako modul WWW serveru a Interpret jako CGI aplikace).

Rychlý náhled

 

CÍLE KAPITOLY CGI, INTERPRETI

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Konfigurovat interpret pro PHP

Budete umět

   

Získáte:

  • Základní představu o zavedení obecného intrepretu

Získáte

   

Budete schopni:

  • Nainstalovat interpret pro PHP

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 90 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY CGI, INTERPRETI

 
 

CGI, Interpret, PHP, PERL, BASH, php.ini

Klíčová slova

3

5.1 Instalace interpretů skriptovacích jazyků a jejich konfigurace

Dynamika stránek může být zajištěna různými způsoby. V zásadě, se obvykle spouští externí programový kód, který zajiš»uje dynamickou odpověď klientovi. Daný programový kód může existovat ve dvou podobách a v různých vztazích k WWW serveru. Podoby jsou: zdrojový kód (nebo binární mezikód) a binární kód (strojový kód). první varianta vyžaduje ke spuštění interpret. Interpret nebo binární kód může vůči WWW serveru vystupovat obvykle ve třech úrovních, které jsou ve vztahu s formou komunikace mezi WWW serverem a kódem:

  • Součást kódu WWW serveru - pokud je to možné a WWW server nabízí zdrojový kód, můžeme jej rozšířit o náš kód
  • Komunikace přes API WWW serveru - pokud WWW server nějaké API nabízí, je možné vytvořit kód, který toto API volá (v případě Apache takový ko označujeme jako modul Apache)
  • Komunikace přes jiné rozhraní - pokud WWW server podporuje jiné rozhraní, je možné vytvořit kód, který toto rozhraní využívá. Obvyklými rozhraními jsou CGI a servlet (Apache podporuje CGI a v případě projektu Apache-Tomcat i servlet)

Variantě "Součást kódu WWW serveru" se věnovat nebudeme, protože se obvykle nevyužívá. Variantě "Komunikace přes API WWW serveru" se věnují specializované publikace dostupné ze stránek projektu Apache. Varianta "Komunikace přes jiné rozhraní" je velmi obvyklá a proto jí bude věnována pozornost.

Úvod

V případě samospustitelných aplikací, kdy nepotřebujeme Interpret stačí aplikaci umístit do adresáře, kde je povoleno spouštět CGI aplikace (viz kap. 4).

V případě interpretů se obvykle setkáme s tím, že některé jsou již součástí OS (např. na OS Linux: BASH, SH, Perl) a rovněž že není nutné WWW server pro jejich spouštění konfigurovat. U jiných je nutná instalace a někdy také konfigurace (pokud není již součástí instalace) (např. PHP).

 

SAMOSTATNÝ ÚKOL 17

 

Vyzkoušejte si vytvoření CGI skriptu, který využívá interpret SH. Skript pojmenujte s příponou .cgi a umístěte jej do spustitelného adresáře.

#!/bin/sh
echo "Content-type:text/plain";
echo ""
echo "Ahoj lidi!"
echo $1;

Vyzkoušejte si vytvoření CGI skriptu, který využívá interpret Perl. Skript pojmenujte s příponou .pl a umístěte jej do spustitelnhé adresáře.

#!/usr/bin/perl
print "Content-type:text/plain\n";
print "\n"
print "Ahoj lidi!\n"

CGI skripty SH, Perl

 

V případě, že instalujete některý z interpretů skriptů, je nutné postupovat dle návodu, protože, žádný univerzální postup neexistuje. Pokud je interpret instalován jako modul WWW serveru, obvykle s sebou nese i informaci o typu (MIME) souboru, který interpretuje a často daké doplní do konfigurace WWW serveru informaci o příponách souboru (seznam přípon), které jsou daného MIME typu. Tak jako např. instalace PHP ve standardní distribuci FedoraCore 2. Instalátor PHP nainstaluje modul a do adresáře (obvykle /etc/httpd/conf.d/) přidá konfigurační soubor php.conf s následujícím obsahem:

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#

LoadModule php4_module modules/libphp4.so

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddType application/x-httpd-php .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

Řádek LoadModule php4_module modules/libphp4.so udává, že má být načten modul Apache. Řádek AddType application/x-httpd-php .php udává, že soubory s příponou .php mají být MIME typu application/x-httpd-php, který výše uvedený modul zpracovává (to je explicitně uvedeno přímo v kódu modulu).

Interpret jako modul WWW serveru

V případě, že instalujete interpret, který bude s WWW serverem komunikovat přes CGI, obvykle musíte konfiguraci WWW serveru doplnit o následující kód.

ScriptAlias /php-bin/ /usr/local/bin/
AddType application/x-httpd-php .php
Action application/x-httpd-php /php-bin/php

Řádek ScriptAlias /php-bin/ /usr/local/bin/ deklaruje virtuální adresář, který ukazuje na adresář, ve kterém se nachází CGI interpret (spustitelná aplikace) pro PHP kód. Řádek Action application/x-httpd-php /php-bin/php říká, že MIME typ application/x-httpd-php má být interpretován aplikací php ve virtuálním adresáři /php-bin/

Interpret jako CGI aplikace

Konfigurace chování samotného interpretu skriptů závisí na daném interpretu. Zase neexistuje jednoduchý návod jak interpret konfigurovat. Vzhledem, k tomu, že máte zkušenosti s interpretem PHP skriptů, procvičíte si konfiguraci na tomto interpretu.

Konfigurace chování interpretu

 

KORESPONDENČNÍ ÚKOL 8

 

Nainstalujte interpret pro PHP. Konfiguraci v souboru php.ini změňte tak, aby:

  • Zobrazoval pouze chybová hlášení
  • Soubory zaslané uživatelem ukládal do adresáře /home/tmp (Linux) nebo C:/home/temp (Windows)
  • Podporoval přístup k SŘBD Oracle

Soubor php.ini zašlete k posouzení tutorovi.

Konfigurace PHP

SHRNUTÍ KAPITOLY CGI, INTERPRETI

 

Víte, že interpret můžete nainstalovat ve třech různých úrovních ve vztahu k WWW serveru

Umíte nainstalovat intrepret pro jazyk PHP

Víte jak konfigurovat chování intrepretu pro jazyk PHP

Shrnutí

PRŮVODCE STUDIEM 5

 

Následující kapitola se zabývá otázkou optimalizace výkonu WWW serveru.

Průchod modulem

2

6 OPTIMALIZACE, PŘESMĚROVÁNÍ

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY OPTIMALIZACE, PŘESMĚROVÁNÍ

 
 

Kapitola OPTIMALIZACE, PŘESMĚROVÁNÍ je v první části velmi teoretická, ale informace v této teoretické části jsou velmi důležité, a to především v případě, že váš WWW server vykazuje výrazné zatížení (100 tisíc hitů a více denně). Další část se týká prakticé operace přesměrování, kterou každý ze správců WWW serveru občas provádí.

Rychlý náhled

 

CÍLE KAPITOLY OPTIMALIZACE, PŘESMĚROVÁNÍ

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Popsat co vše ovlivňuje výkon WWW serveru

Budete umět

   

Získáte:

  • Představu o složitosti problematiky optimalizace výkonu WWW serveru

Získáte

   

Budete schopni:

  • Provést přesměrování jedné URL na jinou URL (resp. "do ztracena")

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 90 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY OPTIMALIZACE, PŘESMĚROVÁNÍ

 
 

MaxSpareServers, MinSpareServers, KeepAliveTimeout, StartServers, HostnameLookups, Redirect

Klíčová slova

3

6.1 Optimalizace výkonu

Optimalizovat výkon WWW serveru budete potřebovat jen u velmi vytížených WWW serverů. Implicitní konfigurace a kompilace by měla vyhovovat většině nasazení WWW Serveru. Přesto je dobré dodržovat několik zásad, které mohou běh WWW serveru optimalizovat. Optimalizace může probíhat na třech úrovních:

  • Operační systém
  • Kompilace WWW serveru
  • Konfigurace WWW serveru

V tomto textu se seznámíme pouze s některými pravidly. Pro podrobnější informace je vhodné nahlédnout do http://httpd.apache.org/docs-2.0/misc/perf-tuning.html.

Následující direktivy konfigurace mohou ovlivnit výkon WWW serveru:

  • AllowOverride
  • DirectoryIndex
  • HostnameLookups
  • EnableMMAP
  • EnableSendfile
  • KeepAliveTimeout
  • MaxSpareServers
  • MinSpareServers
  • Options
  • StartServers

Úvod

Direktiva AllowOverride, která umožňuje využívat soubory .htaccess umístěné v adresářích pro dodatečnou (uživatelskou) konfiguraci nutí (pokud není nastavena na None), při každém dotazu klienta, www server načítat soubor .htaccess a přizpůsobit mu chování serveru. Tato činnost zpomaluje běh WWW serveru.

AllowOverride

Direktiva DirectoryIndex může být nastavena obecně pro všechny soubory dle nějaké masky. Např. DirectoryIndex index, která bude jako rejstříky zobrazovat všechny soubory jménem index bez ohledu na příponu. Naneštěstí i tato operace zpomaluje běh serveru. Daleko vhodnější je explicitně uvést seznam všech možných rejstříků. Na druhou stranu se tak zbavujeme možností vyjednávání o obsahu.

DirectoryIndex

Direktiva Options s parametry FollowSymLinks a FollowSymLinksIfOwnerMatch vynucuje spouštění dalších příkazů OS a tím zpomaluje běh WWW serveru. Proto pokud to není nezbytně nutné je vhodnější symbolické linky v případě WWW serveru nevyužívat.

Options FollowSymLinks FollowSymLinksIfOwnerMatch

Direktiva HostnameLookups umožňuje nastavit překlad IP adresy v reálném čase. V Log souboru se pak místo IP objevuje jméno počítače (pokud bylo zjistitelné). To je sice pěkné, ale v reálném provozu to znamená neustálé dotazování DNS serveru na překlad IP na jméno. Podobně je to v případě direktiv Allow from a Denny from. Proto raději za všech okolností volte IP místo jména a nepovolujte HostnameLookups. Překlad IP adres na jména v LogSouboru můžete provést dodatečně s využitím programu logresolve (kompiluje se implicitně s Apache).

HostnameLookups
Denny from *
Allow from *

Direktiva KeepAliveTimeout udává jaká je maximální doba po kterou může jeden proces apache zpracovávat jeden požadavek od klienta. Tato direktiva je velmi problematická. V případě, že její hodnotu nastavíte na relativně vysokou, můžete výrazně zatížit server např. v okamžiku, kdy uživatel požádá o zpracování nějakého skriptu ve kterém je chyba (a dojde např. zacyklení a zabrání procesoru na 100%). Toto zatížení pak bude trvat tak dlouho jak dlouhý je Timeout. V případě více klientů, kteří takto požádají o chybný skript, může dojít k úplnému zahlcení serveru a pro další klienty se server chová jako nedostupný.

Na druhou stranu, pokud hodnotu nastavíte na příliš nízkou, nemusí se v daném limitu podařit vyřídit požadavek, a klient obdrží zprávu Timeout.

KeepAliveTimeout

Velmi důležitá je konfigurace počtu běžících pocesů Apache a s tím související direktivy. Následující konfigurace se této problematice věnuje.

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
MaxClients       150
MaxRequestsPerChild  1000
</IfModule>

V konfiguračním souboru se můžete setkat s několika sekcemi, které se této části konfigurace věnují. Vždy se však uplatňuje jen jedna z nich. Výše uvedená se opírá o modul prefork.c. Tento modul se uplatňuje na OS Linux/Unix. Na MS Windows se uplatňuje sekce mpm_winnt.c.

Direktiva StartServers udává kolik se má po startu Apache do paměti počítače načíst (spustit) procesů apache.
Direktiva MaxClients udává kolik maximálně je možné spustit procesů Apache
Direktiva MaxRequestsPerChild udává kolik požadavků může maximálně zpracovat v jednom okamžiku jeden proces Apache
Direktiva MinSpareServers udává minimálně kolik procesů Apache má být v paměti k dispozici v nečinném stavu. Zavedení procesu do paměti představuje určitou zátěž serveru (a hlavně chvíli trvá) a toto číslo udává jakýsi buffer procesů, které je možné ihned bez zavádění využít. Direktiva MaxSpareServers je horní hranicí bufferu nečinných procesů apache.

StartServers, MinSpareServers, MaxSpareServers, MaxClients, MaxRequestsPerChild

 

SAMOSTATNÝ ÚKOL 18

 

Pokuste si sepsat na čem všem závisí rychlost zpracování požadavku klienta a co vám tedy může ovlivnit Timeout.

Timeout

3

6.2 Přesměrování

Přesměrování URL adresy je velmi často používanou direktivou v konfiguraci WWW Serveru. V případě, že je na některou URL spravovanou WWW serverem nastaveno přesměrování, pak při požádání o tuto URL je vrácen některý z přesměrovacích kódů a cílové (nové) URL. Pro podrobné informace je vhodné nahlédnout do http://httpd.apache.org/docs-2.0/mod/mod_alias.html#redirect

Popis

K přesměrování je možné využít tři direktivy. Obvykle se využívá direktiva Redirect. Direktiva Redirect má tři parametry. První udává status přesměrování. Druhý udává URL na serveru (relativní) a třetí udává URL na kterou má být požadavek přesměrován.

Př.

Redirect permanent /gis http://gis.vsb.cz/

V tomto případě dojde při vyžádání adresy http://127.0.0.1/gis k zobrazení obsahu adresy http://gis.vsb.cz/

Redirect

První parametr direktivy zvaný status může nabývat čtyř hodnot:

  • permanent - přesměrování je trvalé, klient obdrží kód 301
  • temp - přesměrování je dočasné, klient obdrží kód 302
  • seeother - původní adresa byla nahrazena jinou, klient obdrží kód 303
  • gone - původní adresa již neexistuje a není za ní náhrada, klient obdrží kód 410, třetí parametr není povolen

Status

K dispozici jsou ještě direktivy RedirectPermanent a RedirectMatch. Direktiva RedirectPermanent je totožná s direktivou Redirect se statusem permanent. Direktiva RedirectMatch umožňuje nastavit přesměrování dle masky s vužitím regulárních výrazů (Podobně jako DirectoryMatch).

Př.

RedirectMatch permanent (.*)\.pl$ http://gis.vsb.cz$1.php

Uvedený kód způsobí, že všechny požadavky na soubory s příponou pl (PERL) budou přesměrovány na adekvátní soubory s příponou php na jiném serveru (http://gis.vsb.cz).

RedirectPermanent, RedirectMatch

 

KORESPONDENČNÍ ÚKOL 9

 

Nakonfigurujte WWW server Apache tak aby při zadání adresy /gisak přesměroval požadavek na http://gisak.vsb.cz a při zadání adresy, která obsahuje řetězec gis (s výjimkou adresy /gisak) přesměroval na http://gis.vsb.cz. Konfiguraci zašlete k posouzení tutorovi.

Přesměrování

SHRNUTÍ KAPITOLY OPTIMALIZACE, PŘESMĚROVÁNÍ

 

Máte základní představu o optimalizaci výkonu WWW serveru

Umíte přesměrovat jednu URL na jinou URL

Shrnutí

PRŮVODCE STUDIEM 6

 

Následující kapitola se zabývá třemi různými přístupy k řízení přístupu ke zdrojům WWW serveru na základě vyzádání uživatelského jména a hesla.

Průchod modulem

2

7 ŘÍZENÍ PŘÍSTUPU

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ŘÍZENÍ PŘÍSTUPU

 
 

Kapitola ŘÍZENÍ PŘÍSTUPU se zabývá třemi různými přístupy k řízení přístupu ke zdrojům WWW serveru na základě vyžádání uživatelského jména a hesla.

Rychlý náhled

 

CÍLE KAPITOLY ŘÍZENÍ PŘÍSTUPU

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Využít nástrojů WWW serveru pro řízení přístupu ze skupiny Basic

Budete umět

   

Získáte:

  • Základní představu o využítí a omezeních nástrojů WWW serveru pro řízení přístupu ze skupiny Digest

Získáte

   

Budete schopni:

  • Připravit vlastní implementaci pro řízení přístupu bez využití nástrojů WWW serveru s vyuižitím vašeho oblíbeného skriptovacího jazyka.

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 180 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY ŘÍZENÍ PŘÍSTUPU

 
 

htpasswd, AuthType, AuthUserFile, AuthGroupFile, Require, cookies

Klíčová slova

3

7.1 Konfigurace řízení přístupu k virtuálním adresářům

Řízení přístupu je možné založit na dvou principech.

Prvním z nich je filtrování adres, které bylo zmíněno v kapitole č. 4.1. Toto řešení však není příliš vhodné, protože podvržení IP adresy je to nejjednodušší co může uživatel udělat.

Druhým řešením je přístup na základě uživatelského jména a hesla. Toto řešení je z bezpečnostního hlediska daleko vhodnější, ale přináší komplikace. V případě použití hesla můžeme postupovat podle dvou odlišných přístupů:

  • Využití nástrojů WWW serveru (specifikace protokolu HTTP)
  • Vlastní implementace (založená buď na cookies nebo na obdobné alternativě).

Popis

3

7.2 Využití nástrojů WWW serveru

V případě využití nástrojů WWW serveru můžeme využít dva přístupy: Basic a Digest. Oba přístupy jsou pěkně popsány na http://www.unixpapa.com/auth/index.html. Pro další čtení je nutné pročíst první kapitolu odkazovaného dokumentu.

Poznámka: U WWW serveru MS IIS se můžete setkat rovněž s přístupem Integrated Windows Autentication. Tento přístup využívá databázi uživatelů z OS W2KS (WNTS, W2003S) resp. z ActiveDirectory serveru. Tento typ není podporován specifikací HTTP a proto funguje jen na omezeném počtu klientů (resp. na MSIE).

Basic autentizace není příliš bezpečná, proto se nedoporučuje používat pro operace nad citlivými daty. Digest autentizaci provází nekompatibilita WWW serverů a WWW prohlížečů. V zásadě jsou z tohoto problému pouze dvě cesty. Buďto zabezpečená komunikace (probíraná v kapitole 8) ve spojení s Basic metodou autentizace nebo vlastní řešení (obvykle také v kombinaci se zabezpečenou komunikací). Přesto, předtím než se budeme věnovat vlastní implementaci, se v následujícím textu podíváme jak se řeší Basic autentizace v prostředí WWW serveru Apache.

HTTP specifikace (nástroje WWW serveru)

Podrobné informace o Basic metodě pro Apache najdete na http://httpd.apache.org/docs-2.0/howto/auth.html. K tomu aby bylo možné nastavit Basic autentizaci v prostředí WWW serveru Apache postupovat následujícím způsobem:

  • Vytvořit databázi uživatelů
  • (Volitelně vytvořit skupiny uživatelů)
  • Doplnit sekci Directory pro zvolený adresář o prvky autentizace

Basic autentication

K vytvoření databáze uživatelů se využívá program htpasswd, který je kompilován spolu s apache.

htpasswd -c /usr/local/apache/passwd/passwords jencek

Příkaz vytváří novou databázi (soubor) uživatelů a přidává do něj uživatele jencek. Následně je vyžádáno heslo pro uživatele.

New password: mypassword
Re-type new password: mypassword
Adding password for user jencek

Další uživatelé se přidávají pomocí stejného programu jen se vypouští přepínač -c.

Vytvoření databáze uživatelů

K vytvoření databáze skupin se využívá textový editor. Struktura souboru se skupinami je následující:

GroupName: username username username

Př.
gis: jencek michal pavel
igi: lojza, karel, marek

Vytvoření databáze skupin

Sekce Directory zvoleného adresáře se doplní následujícím (nebo podobným kódem):

AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require user jencek
Require group gis

Direktiva AuthType udává typ (Basic, Digest). Direktiva AuthName udává pojmenování komunikace (uvedený text se objeví na přihlašovacím okně).

Direktiva AuthUserFile udává cestu a název souboru s hesly (vytvořený v prvním kroku). Direktiva AuthGroupFile udává cestu a název souboru se skupinami (vytvořený ve druhém kroku). Direktiva AuthGroupFile nemusí být uvedena.

Direktiva Require může mít tři tvary:

  • Require user username username username ... - vyžaduje uživatelské jméno a heslo od některého z uvedených uživatelů
  • Require group groupname groupname gourpname ... - vyžaduje uživatelské jméno a heslo od některého uživatele z vyjmenovaných skupin
  • Require valid-user - vyžaduje jakéhokoliv platného uživatele a jeho heslo

Konfigurace adresáře

 

KORESPONDENČNÍ ÚKOL 10

 

Nakonfigurujte WWW server tak aby měli do virtuálního adresáře gis přístup všichni uživatelé ze skupiny gisaci a také uživatel pepa. Uživateli pepa a nikomu jinému umožňete přístp do virtuálního adresáře pepa a všem uživatelům v databázi umožňete přístup do adresáře publicforusers. Konfiguraci zašlete k posouzení tutorovi.

Přístup

 

SAMOSTATNÝ ÚKOL 19

 

Doplňte následující tabulku týkající se kompatibility klientů a serverů v oblasti medoty Digest.

 MozillaMSIEOpera
Apache   
IIS   

3

7.3 Vlastní implementace

Vlastní implementace autentizace představuje obvyklé řešení na většině WWW serverů. Určité informace o takovémto řešení naleznete např. na http://www.unixpapa.com/auth/index.html (pozor údaje jsou poměrně zastaralé, nicméně princip platí i nadále).

Výhodou vlastní implementace je možnost volby vlastního dialogového okna pro přihlášení a vlastní možnosti řízení přístupu (k adresářům, souborů, datům v databázi, atd.).

Nevýhodou je nutnost znalosti programování a nestandardnost takového řešení.

Úvod

Obvyklé řešení předpokláná následující scénář (nicméně variant řešení může být mnoho):

  • Vytvoření databáze uživatelů, hesel, skupin. Je možné využít některý ze SŘBD.
  • Vytvoření HTML formuláře (obvykle jako součást skriptu na straně serveru) pro vyplnění uživatelského jména a hesla. Formulář může obsahovat JavaScript, který provede zakryptování hesla (např. pomocí MD5) před odesláním, podobně jako to dělá metoda Digest.
  • Vytvoření skriptu, který ověří zaslané heslo vůči databázi. Daný skript musí rovněž vytvořit unikátní identifikaci spojení mezi uživatelem a serverem. Tento indetifikátor je zaslán klientovi k použití pro další komunikaci. Identifikátor může být řešen buď systémově (s využitím technologie cookies) nebo vlastním řešením např. přidání identifikátoru do každého HTML formuláře každé odpovědi serveru.

Možná implementace

 

KORESPONDENČNÍ ÚKOL 11

 

Na svém WWW serveru vystavte tento web. Povolte přístup k tomuto webu pouze vybraným uživatelům. Uživatelte evidujte v některém ze SŘBD. Pro předání identifikátoru komunikace můžete využít buď cookies nebo vlastní řešení. Podmínkou je aby se heslo předávalo pouze při prvotním dotázání se na web. Upravený web zašlete k posouzení tutorovi.

Přístup

SHRNUTÍ KAPITOLY ŘÍZENÍ PŘÍSTUPU

 

Umíte využít nástrojů WWW serveru pro řízení přístupu ze skupiny Basic

Umíte připravit vlastní implementaci pro řízení přístupu bez využití nástrojů WWW serveru s využitím vašeho oblíbeného skriptovacího jazyka.

Shrnutí

PRŮVODCE STUDIEM 7

 

Další kapitola se zabývá využitím šifrování pro zabezpečení přenášených dat

Průchod modulem

2

8 ZABEZPEČENÁ KOMUNIKACE

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ZABEZPEČENÁ KOMUNIKACE

 
 

Kapitola ZABEZPEČENÁ KOMUNIKACE se odkazuje na dokument připravený Mirkem Umlaufem a tento dokument je stěžejní publikací pro celou kapitolu. Praktická část kapitoly je zaměřena pouze na základní konfiguraci HTTPS protokolu,

Rychlý náhled

 

CÍLE KAPITOLY ZABEZPEČENÁ KOMUNIKACE

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Rozlišit mezi SSL a TSL vrstvami

Budete umět

   

Získáte:

  • Základní informace o šifrované komunikaci
  • Základní informace o HTTPS protokolu

Získáte

   

Budete schopni:

  • Změnit konfiguraci modulu mod_ssl WWW serveru Apache

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 180 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY ZABEZPEČENÁ KOMUNIKACE

 
 

HTTPS, SSl, TSL, Veřejný klíč, Soukromý klíč, Kryptografie, Šifrování

Klíčová slova

3

8.1 Konfigurace zabezpečené komunikace, šifrování

Teoretické informace o fungování protokolu HTTPS a tedy bezpečné komunikace v síti přes službu WWW můžete získat z dokumentu jehož autorem je Miroslav Umlauf. Dokument je sice staršího data, ale principy v něm popsané mají platnost stále. Dokument ve formátu DOC je součástí tohoto CD.

Úvod

Pokud chcete využívat SSL vrstvu pro šifrování jako součást WWW serveru Apache musíte si nainstalovat modul mod_ssl. Pokud máte přístup k internetu a používáte Fedora Core, stačí napsat apt-get install mod_ssl. Pokud chcete pracovat se zdrojovými kódy a zkompilovat si mod_ssl sami, pak tento návod vypadá slibně.

Instalace

Implicitní instalace mod_ssl už v tomto okamžitu zajistila, že váš Apache umí komunikovat přes HTTPS protokol. Jediné co musíte udělat je restart WWW serveru. Pak stačí v prohlížeči zadat https://127.0.0.1/.

Konfigurace SSL se provádí v souboru ssl.conf, ten je obvykle umístěn v adresáři /etc/httpd/conf.d. Konfigurační soubor má stejnou strukturu jako httpd.conf. Hlavní konfigurace je zajištěna s využitím Virtuálního serveru - viz. kapitola č. 9.2.

Celá konfigurace je poměrně složitá a pro její pochopení je nutné navštívit buď tutorial na stránkách Apache nebo dokumentaci k modulu SSL.

Konfigurace

 

KORESPONDENČNÍ ÚKOL 12

 

Nainstalujte si mod_ssl. Změňte implicitní konfiguraci tak aby server neodpovídal na standardním portu 443, ale na portu 444. Konfigurační soubor ssl.conf zašlete k posouzení tutorovi.

Změna portu HTTPS

SHRNUTÍ KAPITOLY ZABEZPEČENÁ KOMUNIKACE

 

Umíte rozlišit mezi SSL a TSL vrstvami

Získali jste základní informace o HTTPS protokolu

Víte jak změnit konfiguraci modulu mod_ssl WWW serveru Apache

Shrnutí

PRŮVODCE STUDIEM 8

 

Další kapitola se věnuje zejména vytvoření proxy serveru.

Průchod modulem

2

9 ROZŠÍŘENÁ KONFIGURACE

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ROZŠÍŘENÁ KONFIGURACE

 
 

Kapitola ROZŠÍŘENÁ KONFIGURACE se v úvodu věnuje problematice proxy (proxy-cache) serverů a následně tzv. virtuálními servery, které umožňují v rámci jedné instance WWW serveru provozovat několik konfiguračně nezávislých virtuálních WWW serverů.

Rychlý náhled

 

CÍLE KAPITOLY ROZŠÍŘENÁ KONFIGURACE

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Nakonfigurovat WWW server Apache, tak aby sloužil jako proxy server

Budete umět

   

Získáte:

  • Představu o využití virtuálních serverů

Získáte

   

Budete schopni:

  • Nakonfigurovat virtuální server

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 120 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY ROZŠÍŘENÁ KONFIGURACE

 
 

Proxy, Cache, Virtuální server, ProxyRequests, VirtualHost

Klíčová slova

3

9.1 Nastavení cache, proxy

WWW server Apache může sloužit i jako tzv. proxy (případně proxy-cache) server. To znamená, že požadavek na některou URL může přesměrovat na jiný server a odpověď jiného serveru předá zpět uživateli. Z pohledu uživatele je to transparentní proces, uživatel se domnívá, že komunikuje pouze s jedním serverem.

Jiný WWW server, na který je požadavek přesměrován vůbec o uživateli za proxy serverem neví, pro něj je uživatelem náš WWW server. Využití proxy najde tedy především tam, kde pořebujeme zpřístupnit např. data z WWW serveru, který není dostupný z Internetu. Přes náš WWW proxy server se tak uživatel (přicházející z Internetu) může dostat k datům na WWW serveru, který je přístupný pouze v našem intranetu. Nemusí se však jednat jen o zpřístupnění intranetových serverů.

Úvod

Nejjednodušší konfigurace (když chci zpřístupnit přes můj veřejný server data z nějakého serveru v intranetu) je využití modulu proxy a několika direktiv:

<IfModule mod_proxy.c>
ProxyRequests On

<Proxy *>
    Order deny,allow
    Allow from all
    #Allow from .your-domain.com
</Proxy>


ProxyPass /virtualniadresar/ http://intranetovyserver/

</IfModule>

Direktiva ProxyRequests povoluje nebo naopak zakazuje vykonávání proxy požadavků. Sekce Proxy nastavuje práva přístupu k proxy požadavkům, můžete tak např. omezit využívání vašeho proxy jen na omezenou skupinu uživatelů. Direktiva ProxyPass má dva parametry. první parametr udává název virtuálního adresáře o který může žádat uživatel a druhý parametr udává adresu www serveru (obecně URL), které bude proxy serverem žádáno. Pokud tedy v našem příkladu uživatel zadá http://nasproxyserver/virtualniadresar/ dostane odpověď od serveru intranetovyserver.

Proxy-cache umožňuje navíc často vyžadované dokumenty ukládat na našem proxy serveru. Dotazy uživatelů jsou poté výrazně rychlejší. Při takovémto řešení se proxy server zeptá intranetového serveru zda byl dokument změněn a pokud ne, vytáhne dokument ze svého cache adresáře.

Další informace naleznete v tutorialu na stránkách Apache.

Konfigurace

 

KORESPONDENČNÍ ÚKOL 13

 

Nakonfigurujte WWW server tak aby v případě požadavku na virtuální adresář karel zpřístupnil www server karel.vsb.cz a to pouze pro uživatele ze spřátelené domény osu.cz. Konfigurační soubor httpd.conf zašlete k posouzení tutorovi.

Změna portu HTTPS

3

9.2 Konfigurace virtuálních serverů

Princip virtuálních serverů umožňuje na jednom počítači provozovat několik nezávislých virtuálních www serverů. Všechny tyto virtuální servery využívají stejné programové vybavení, ale liší se konfigurací. Např. mohou mít jiný DocumentRoot nebo jiné uživatele, jiná přístupová práva, apod.

Úvod

Konfigurace virtuálních serverů se provádí v httpd.conf souboru pomocí bloku <VirtualHost ></VirtualHost >. Uvnitř bloku je možné definovat kompletní sadu instrukcí tak jako u implicitního serveru.

Konfigurace virtuálních serverů může mít mnoho podob, a pro podrobný popis je vhodné nahlédnout do http://httpd.apache.org/docs-2.0/vhosts/. Pro naše účely základní představy poslouží jednoduchý příklad:

Listen 5555

<VirtualHost _default_:5555>

ErrorLog logs/jencek_error_log
TransferLog logs/jencek_access_log
LogLevel warn

</VirtualHost>

Uvedená konfigurace zajistí, že Apache bude naslouchat navíc na portu 5555 (Listen). Virtuální server poběží na portu 5555 a pro zaznamenávání činnosti byde využívat soubory jencek_error_log a jencek_access_log.

Konfigurace

 

KORESPONDENČNÍ ÚKOL 14

 

Nakonfigurujte virtuální server tak aby odpovídal na portu 5556 a wwwroot serveru ukazoval do adresáře /var/www/usage. Konfigurační soubor httpd.conf zašlete k posouzení tutorovi.

Virtuální server

SHRNUTÍ KAPITOLY ROZŠÍŘENÁ KONFIGURACE

 

Umíte nakonfigurovat WWW server Apache, tak aby sloužil jako proxy server

Víte jak nakonfigurovat a využít virtuální server

Shrnutí

PRŮVODCE STUDIEM 9

 

Následující kapitola odkazuje na prezenční setkání, na kterém se provádí kompilace WWW serveru Apache.

Průchod modulem

2

10 KOMPILACE

RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY KOMPILACE

 
 

Kapitola KOMPILACE neobsahuje studijní texty, protože její zvládnutí předpokládá využití prezečního setkání, na kterém se daná problematika prakticky procvičí.

Rychlý náhled

 

CÍLE KAPITOLY KOMPILACE

PO ÚSPĚŠNÉM A AKTIVNÍM ABSOLVOVÁNÍ TÉTO KAPITOLY

Budete umět:

  • Spustit kompilaci WWW serveru Apache
  • Spustit kompilaci interpretu pro jazyk PHP

Budete umět

   

Získáte:

  • Základní představu o problematice kompilace WWW serveru Apache a interpretu PHP

Získáte

   

Budete schopni:

  • Nastavit parametry kompilace

Budete schopni

ČAS POTŘEBNÝ KE STUDIU

 

Celkový doporučený čas k prostudování KAPITOLY je 120 minut.

 

 

KLÍČOVÁ SLOVA KAPITOLY KOMPILACE

 
 

Kompilace, Apache, PHP

Klíčová slova

42

10.1 Kompilace Apache

Kompilace WWW serveru Apache probíhá na prezenčním setkání.

Úvod

43

10.2 Kompilace PHP

Kompilace interpretu jazyka PHP probíhá na prezenčním setkání.

Úvod

SHRNUTÍ KAPITOLY KOMPILACE

 

Kompilace se provádí v rámci prezenčního setkání

Shrnutí

44

SHRNUTÍ MODULU WWW SERVERY

 

Víte, že Internet je globální počítačová síť a intranet je lokální počítačová síť

MIME slouží k popisu datových formátů

Dotaz HTTP má strukturu: první řádek + hlavičky + prázdný řádek + tělo dokumentu

Odpověď HTTP má strukturu: první řádek + hlavičky + prázdný řádek + tělo dokumentu

DNS se stará o překlad IP adres na jména a naopak.

Uvědomujtete si střety zájmů při správě WWW serveru

Znáte záladní úkoly správce WWW serveru

Umíte nainstalovat WWW server Apache

Umíte WWW server Apache spouštět a zastavovat

Jste schopni sledovat činnost WWW severu Apache s využitím log souborů

Umíte vytvořit virtuální adresář

Umíte omezit přístup k adresáři na základě IP adresy uživatele

Víte jak umožnit využívání uživatelských adresářů

Umíte změnit chování implicitního rejstříku

Víte jak omezit uživatelům konfiguraci jejich adresářů

Víte, že interpret můžete nainstalovat ve třech různých úrovních ve vztahu k WWW serveru

Umíte nainstalovat intrepret pro jazyk PHP

Víte jak konfigurovat chování intrepretu pro jazyk PHP

Máte základní představu o optimalizaci výkonu WWW serveru

Umíte přesměrovat jednu URL na jinou URL

Umíte využít nástrojů WWW serveru pro řízení přístupu ze skupiny Basic

Umíte připravit vlastní implementaci pro řízení přístupu bez využití nástrojů WWW serveru s využitím vašeho oblíbeného skriptovacího jazyka.

Umíte rozlišit mezi SSL a TSL vrstvami

Získali jste základní informace o HTTPS protokolu

Víte jak změnit konfiguraci modulu mod_ssl WWW serveru Apache

Umíte nakonfigurovat WWW server Apache, tak aby sloužil jako proxy server

Víte jak nakonfigurovat a využít virtuální server

Kompilace se provádí v rámci prezenčního setkání

Shrnutí modulu

KLÍČOVÁ SLOVA MODULU WWW SERVERY

 
 

Internet, intranet, HTTP, MIME, TCP/IP, HTTPS, Správce HW, Správce OS, Správce sítě, Tvůrci WWW stránek, Uživatelé WWW stránek, Instalace, Apache, Access Log, Error Log, Web Alizer, Adresář, Virtuální adresář, Options, ExecCGI, AllowOverride, Allow, Deny, Indexes, Alias, UserDir, CGI, Interpret, PHP, PERL, BASH, php.ini, MaxSpareServers, MinSpareServers, KeepAliveTimeout, StartServers, HostnameLookups, Redirect, htpasswd, AuthType, AuthUserFile, AuthGroupFile, Require, cookies, HTTPS, SSl, TSL, Veřejný klíč, Soukromý klíč, Kryptografie, Šifrování, Proxy, Cache, Virtuální server, ProxyRequests, VirtualHost, Kompilace, Apache, PHP

Klíčová slova

DOPLŇUJÍCÍ ZDROJE

Greer, T.: Intranety principy a praxe, Brno,. Computer Press, 1999
Gundavaram, S.: CGI programování, Computer Press 1998
Laurie, B., Laurie, P.: Apache - správa webového serveru, Computer Press 1997
Umlauf, M.: Zhodnocení možnosti využití zabezpečení přenosu vektorových formátů prostorových dat v prostředí Internetu. Ostrava 2002.

Kniha

Apache Group: Apache.org. Dostupné na WWW: <http://www.apache.org>
PHP Group: php.net. Dostupné na WWW: <http://www.php.net>

Web

13

SEZNAM POUŽITÝCH ZNAČEK, SYMBOLŮ A ZKRATEK

INFORMATIVNÍ, NAVIGAČNÍ, ORIENTAČNÍ

Průvodce studiem

Průvodce textem, podnět, otázka, úkol

Shrnutí

Tutoriál

Čas potřebný k prostudování

Nezapomeň na odměnu a odpočinek

KE SPLNĚNÍ, KONTROLNÍ, PRACOVNÍ

Kontrolní otázka

Samostatný úkol

Test a otázka

Řešení a odpovědi, návody

Korespondenční úkoly

VÝKLADOVÉ

K zapamatování

Řešený příklad

Definice

Věta

NÁMĚTY K ZAMYŠLENÍ, MYŠLENKOVÉ, PRO DALŠÍ STUDIUM

Úkol k zamyšlení

Část pro zájemce

Další zdroje

VLASTNÍ ZNAČKY, SYMBOLY, ZKRATKY

G

Vládní výdaje

HK