ZASTOSOWANIA Serwery WWW Apache

background image

ZASTOSOWANIA:

serwery WWW

WWW dla wszystkich

Wst p

B d czujny

Linux: du a wydajno ...

Windows NT: łatwy sposób...

Marcin Nowak

Masz ciekawe i oryginalne hobby? Chciałby podzieli si swoimi pogl dami z "całym"

wiatem? Nie ka dy mo e zaistnie na łamach prasy czy wyst pi w telewizji. Za to wielu

z nas mo e mie swoj stron WWW.

Projektowanie witryn WWW przestało by umiej tno ci zastrze on dla profesjonalistów. Korzystaj c z

darmowych czy shareware'owych narz dzi tworzenia stron WWW, coraz wi ksza rzesza "zwykłych"

u ytkowników próbuje swych sił w tej dziedzinie. Jak jednak sprawdzi , czy zaprojektowana przez nas z

trudem witryna b dzie prawidłowo obsługiwana przez serwer? Oczywi cie mo emy umie ci j na

docelowym serwerze i zobaczy , jak si b dzie sprawowała. Niestety, je li korzystamy z modemowego

poł czenia z naszym kontem u dostawcy usług internetowych (providera), wielokrotne przeprowadzenie

takiej operacji mo e by do kosztowne. Czy jest to jednak rzeczywi cie konieczne? Praktycznie ka dy

dost pny w tej chwili system operacyjny przeznaczony dla pecetów oferuje mniej lub bardziej

zaawansowany serwer WWW.

Informacje w Internecie i na CHIP-CD

Apache:

http://www.apache.org/

Dodatkowe moduły:

http://www.apache.org/dist/contrib/modules/

Moduł j zyka PHP:

http://php.apache.org/

Moduł j zyka PERL:

http://perl.apache.org/

Sieciowy tygodnik po wi cony Apache'owi:

http://www.apacheweek.com/

Na doł czonym do CHIP-a CD-ROM-ie w dziale

CHIP-offline | Zastosowania | Serwery WWW

znajduj si m.in. Option Pack 4 PL i Apache w wersji 1.3.6 dla Linuksa i Windows 9x/NT, Sambar 4.1

Dla Windows 98 i NT Workstation s to dwie odmiany

Personal Web Servera

, Wszystkim za licz cym

si dystrybucjom Linuksa towarzyszy najpopularniejszy na wiecie serwer WWW -

Apache

. O ile dwa

pierwsze przeznaczone s raczej tylko do celów testowych b d uruchomienia małego serwera

intranetowego (cho by ze wzgl du na ograniczenie liczby jednoczesnych poł cze ), to Apache jest

serwerem "pełn g b ". Z kolei rozpowszechniany wraz z serwerem NT

Internet Information Server

trudno

poleca do celów testowych, przede wszystkim ze wzgl du na koszty takiego rozwi zania.

background image

B d czujny...

...i przezorny. Implementacja protokołu TCP/IP i usług sieciowych w Windows NT (a tak e w Linuksie, cho

jego ta "przypadło " dotyczy w du o mniejszym stopniu) jest daleka od doskonało ci. Wytrwali hakerzy (ale

nie tylko, równie firmy zajmuj ce si bezpiecze stwem rozwi za sieciowych) regularnie znajduj kolejne

"dziury" b d w mechanizmach obsługi protokołów sieciowych, b d w samych serwisach internetowych.

Wi kszo tych usterek nie jest zbyt gro na, gdy umo liwia "jedynie" przeprowadzenie ataku typu DoS

(Denial of Service), zawieszaj cego prac danego serwisu WWW.

Zdarzaj si jednak usterki gro niejsze, umo liwiaj ce zawieszenie pracy serwera czy te , jak odkryty

ostatnio przez specjalistów z firmy eEye, bł d pozwalaj cy nie tylko na zawieszenie pracy Internet

Information Severa, ale i zdalne przej cie kontroli nad lini komend Windows NT. Co prawda, prowizoryczne

"załatanie" tej dziury było wyj tkowo proste i wymagało niewielkiej zmiany w konfiguracji serwera, lecz przez

kilka dni wiele serwerów pracuj cych na IIS nara onych było na uporczywe ataki domorosłych "hakerów"

korzystaj cych z gotowych, dost pnych w Sieci programów. Na szcz cie wi kszo dziur jest "łatana"

przez producenta w ci gu kilku dni - zwłaszcza je li ich istnienie zostaje szeroko nagło nione. W systemach

uniksowych luki w zabezpieczeniach znajdowane s rzadziej, ale cz sto s du o gro niejsze, gdy

pozwalaj na przej cie pełnej kontroli nad serwerem - konsekwencji takiej sytuacji nie trzeba chyba

tłumaczy .

Có wi c powinni my zrobi - odci si od Sieci? Mimo i takie rozwi zanie jest z pewno ci

najpewniejsze, nie musimy tego robi , pod warunkiem e stosowa si b dziemy do kilku reguł. Przede

wszystkim nale y wył czy wszystkie zb dne usługi internetowe, poniewa mog one sta si przedmiotem

ataków. Je li system operacyjny na to pozwala (co, niestety, nie dotyczy Windows 9x), odetnijmy dost p z

zewn trz do wszystkich, poza niezb dnymi, portów protokołu TCP/IP. Trzeba równie na bie co ledzi

grupy dyskusyjne i serwisy po wi cone bezpiecze stwu systemu operacyjnego, na którym pracujemy - tylko

w ten sposób dowiemy si bowiem o istnieniu konkretnej usterki, zanim kto j przetestuje na naszym

serwerze.

Linux: du a wydajno za darmo

Zarówno instalacja, jak i konfiguracja serwera linuksowego jest trudniejsza ni w

przypadku serwerów Microsoftu. Jednak przy odrobinie wysiłku mo na osi gn niezłe

efekty, nie wydaj c ani grosza. Apache rozpowszechniany wraz ze ródłami wydaje si

tak e lepszym rozwi zaniem dla osób chc cych zmodyfikowa wybrane funkcje serwera

WWW i dostosowa go do indywidualnych potrzeb.

Apache, podobnie jak wi kszo programów przeznaczonych do pracy w rodowisku Linuksa, mo e by

zainstalowany w wersji binarnej lub te mo emy go skompilowa samodzielnie. Ten drugi sposób jest

oczywi cie trudniejszy, ale daje nam mo liwo dowolnego skonfigurowania Apache'a. Program ten ma

modularn budow - jego funkcje zostały zgrupowane w tzw. moduły, które, w zale no ci od naszych

potrzeb, mog by doł czane do wersji wykonywalnej. Kompiluj c serwer, okre lamy, które moduły znajd

si w ostatecznej wersji, dzi ki czemu mo e on mie mniejsze rozmiary lub by bardziej stabilny (je li na

przykład na naszej maszynie jaki nieistotny dla funkcjonowania serwera moduł działa nieprawidłowo,

mo emy z niego zrezygnowa ). Taka filozofia rozwijania Apache'a ma te t zalet , e daje wszystkim

u ytkownikom mo liwo tworzenia modułów. Istnieje wiele dodatków nie tworzonych przez The Apache

Group, a znakomicie zwi kszaj cych mo liwo ci serwera. Jednym z bardziej znanych jest moduł PHP,

wzbogacaj cy Apache'a j zykiem skryptowym, podobnym do ASP (patrz CHIP 1/99).

Pliki ródłowe Apache'a s dost pne w postaci pliku z rozszerzeniem.tar.gz, który rozpakowujemy

poleceniem tar -xzf apache_1.3.6.tar.gz. W rezultacie powstanie katalog

apache_1.3.6

, zawieraj cy

wszystkie zbiory potrzebne do kompilacji. W niniejszym artykule zakładamy, e mamy do dyspozycji Linuksa

w dystrybucji Red Hat 6.0. U ytkownicy innych wersji tego systemu operacyjnego b d musieli samodzielnie

okre li cie ki do katalogów, w których zostały rozmieszczone pliki Apache'a.

Je li instaluj c Red Hata, pomin li my serwer WWW, mo emy to nadrobi , odnajduj c na płycie

instalacyjnej odpowiedni plik (/REDHAT/RPMS/Apache-1.3.6.rpm) i wykonuj c polecenie rpm -i Apache-

1.3.6.rpm. Dzi ki temu na dysku zostan umieszczone wszystkie niezb dne pliki i utworzone potrzebne

katalogi, a my, po dokonaniu kompilacji, ograniczymy si tylko do przekopiowania pliku wykonywalnego i

zbiorów konfiguracyjnych.

background image

Kompilacja

Zanim zabierzemy si do kompilacji, musimy Apache'a skonfigurowa . Sama kompilacja jest bardzo prosta -

najwa niejsze jest odpowiednie okre lenie naszych potrzeb i wybranie modułów, które b d nam potrzebne.

Na tym etapie definiujemy równie cie ki dost pu do wa nych katalogów, zawieraj cych m.in. pliki

konfiguracyjne, logi i inne.

Konfiguracji dokonujemy, uruchamiaj c skrypt ./configure z odpowiednimi parametrami. Poniewa

zwykle jest ich sporo, warto całe polecenie umie ci w pliku, by w razie pomyłki móc łatwo je poprawi . Za

pomoc ulubionego edytora tworzymy plik konf i wpisujemy w nim polecenie ./configure --

prefix=/home/httpd. W ten sposób okre limy katalog domowy. Nie musi by on taki jak powy ej, ale, jak

wspomnieli my, w tym opisie u yjemy schematu rozmieszczenia plików serwera u ywanego w dystrybucji

Red Hat 6.0. Do polecenia tworzonego w zbiorze konf dodajemy te inne przeł czniki okre laj ce

niezb dne cie ki; cało znajduje si w ramce "Przykładowe polecenie przygotowuj ce Apache'a do

kompilacji".

Drug wa n czynno ci jest okre lenie, które moduły maj by doł czone do serwera. Opis wybranych

komponentów znajduje si w ramce na s. 171 (pełn ich list mo na znale w dokumentacji Apache'a lub w

pliku INSTALL, w sekcji LIST OF AVAILABLE MODULES). Niektóre moduły s doł czane do serwera

domy lnie. Je li chcemy doda wybrany moduł, robimy to poleceniem --enable-module=nazwa. Chc c

usun moduł, do wywołania skryptu configure dodajemy polecenie -disable-module=nazwa. Komenda

enable-module nie dotyczy ł czenia z Apachem dodatków innych producentów - w tym przypadku nale y

u y polecenia --add-module. Nie b dziemy tu jednak podawa szczegółowych informacji, bo te w ka dym

przypadku s inne, a ich opis znajduje si w plikach doł czonych do poszczególnych pakietów. Spis

dost pnych modułów innych producentów znajduje si na serwerze Apache'a (patrz ramka "Info").

Po utworzeniu pliku konf poleceniem chmod u+x konf ustawiamy prawa dost pu, tak by zbiór mógł

zosta uruchomiony. Nast pnie wywołujemy go (./konf) i obserwujemy pojawiaj ce si na ekranie

komunikaty. Bł dy jakie mog wyst pi , to zwykle pomyłki w nazwach dodawanych modułów - je li si one

pojawi , poprawiamy plik konf i ponownie go uruchamiamy. Gdy konfiguracja przebiegnie bez problemów,

przechodzimy do nast pnego kroku - kompilacji.

Ta czynno sprowadza si do wydania polecenia make i odczekania kilku minut. Wynikiem działania tej

komendy b dzie plik httpd, który pojawi si w podkatalogu

src

. Je li na naszym komputerze działa ju

serwer WWW, zatrzymujemy go (w Red Hacie wywołujemy polecenie kill -TERM /cat/var/run/httpd.pid') i

nowo utworzony zbiór kopiujemy do katalogu

/usr/sbin

. Nast pnie do kartoteki

/etc/httpd/conf

kopiujemy

jeszcze pliki httpd.conf, mime.types oraz magic, znajduj ce si w folderze

/src/conf

. Do uruchomienia

Apache'a (dopiero po skonfigurowaniu) słu y polecenie httpd.

background image

Konfiguracja serwera

Apache'a konfigurujemy edytuj c odpowiednie pliki. Głównym zbiorem jest httpd.conf i on zawiera prawie

wszystkie polecenia słu ce do okre lenia sposobu pracy serwera. Oprócz tego pliku istnieje te

mime.types przypisuj cy rozszerzeniom serwowanych dokumentów odpowiednie typy, tzw. mime types. W

starszych wersjach serwera (poni ej 1.2) istniały te pliki srm.conf i access.conf, ale obecnie ich zawarto

jest umieszczona w zbiorze httpd.conf.

Wi kszo domy lnych ustawie zapewnia poprawn prac serwera. Niemniej warto przejrze główny

plik konfiguracyjny i poprawi kilka polece . Nie jest to trudne, poniewa zbiór ten zawiera bardzo

szczegółowe komentarze. UWAGA: zanim zdecydujemy si na dopisanie jakiej komendy, sprawd my, czy

ju jej nie ma - je li tak, to wystarczy j tylko zmodyfikowa .

Jednym z polece , które wymagaj naszej interwencji, jest ServerAdmin. Okre la ono adres

administratora, który umieszczany jest na przykład na stronach zawieraj cych komunikaty o bł dach. Przed

pierwszym uruchomieniem serwera musimy tak e okre li jego katalog "domowy", wpisuj c wła ciw

cie k (bez uko nika na ko cu) jako parametr polecenia ServerRoot. W naszym przypadku b dzie to

katalog /

home/httpd

. Ponadto musimy odnale wszystkie wyst pienia ci gu @@ServerRoot@@ i zast pi

je wy ej wymienion cie k .

Modyfikacji wymagaj te cie ki do katalogów okre laj cych poło enie logów oraz plików

konfiguracyjnych. Jednak zamiast odnajdywa w zbiorze httpd.conf wszystkie takie wpisy, utworzymy dwa

linki symboliczne, by Apache mógł znale wszystkie potrzebne pliki. W tym celu trzeba wyda polecenia ln

-s /etc/httpd/

conf/home/httpd/conf oraz ln -s /var/log/httpd/home/httpd/logs. Nale y tak e znale lini z wpisem

group #-1 i w miejsce parametru #-1 wpisa nobody. Ostatni czynno ci jest zast pienie w dwóch

miejscach pliku httpd.conf ci gu htdocs (okre la poło enie serwowanych dokumentów) wpisem html.

Indywidualnie

Konfiguracji serwera mo na dokonywa tak e za pomoc wpisów w plikach.htaccess. Polecenia zawarte w

tych zbiorach odnosz si tylko do dokumentów odczytywanych z kartotek, w których znajduje si dany plik

.htaccess.

Zbiory te s odczytywane tylko wówczas, gdy w pliku konfiguracyjnym znajduje si polecenie

AllowOverride All. Je li ko czy si ono słowem None, pliki .htaccess b d ignorowane. Istnieje wiele

komend opisanych w dokumentacji serwera, które pozwalaj na u ywanie w zbiorze.htaccess ró nych grup

polece .

Ciekawostki

Interesuj ce i przydatne s mo liwo ci modułu

spelling

. Jest on odpowiedzialny za naprawianie drobnych

bł dów popełnionych podczas wpisywania adresów internetowych w przegl darce. Dzi ki niemu na pewno

zostanie skorygowana wielko liter w nazwach plików i katalogów czy opuszczone lub zamienione

pojedyncze znaki. Aby uruchomi ten moduł, trzeba w pliku httpd.conf umie ci polecenie CheckSpelling

on. Gdy kiedy zechcemy go wył czy , parametr on zamienimy na off.

Je li chcemy przetestowa serwer i nie yczymy sobie, by kto go w tym czasie u ywał, mo emy zmieni

port, na którym Apache pracuje. Domy lnie serwer WWW korzysta z portu o numerze 80, ale je li zmienimy

to na dowoln warto (wi ksz od 1024), prawdopodobie stwo, e kto j odgadnie, znacznie zmaleje.

Wystarczy zamieni w pliku httpd.conf polecenie Port 80 na przykład na Port 4827.

Apache umo liwia łatwe dodanie własnych nagłówków HTTP. W odpowiednim miejscu zbioru httpd.conf

(sekcja Directory, Files, Location) umieszczamy polecenie Header z wła ciw opcj (mo e to by set,

append, add, unset), nazw nagłówka i jego warto ci . Zmienna Set powoduje ustawienie nagłówka na

dan warto ; je li za ju taki istniał, zostanie usuni ty. Poleceniem append dodamy nasz warto do

istniej cego ju nagłówka, add doda nowy nagłówek, nie usuwaj c starego, a unset wykasuje nagłówek o

zadanej nazwie.

Jeden z bardziej nielubianych dokumentów WWW zaczyna si od "404 Not found" - jest to komunikat

wysyłany przez serwer, gdy ten nie znajdzie danej strony. Nic nie stoi na przeszkodzie, aby nasz Apache

w takim przypadku wysyłał bardziej przyjazn informacj . Istnieje komenda ErrorDocument, dzi ki której

mo na zamieni komunikat Not found na inny, sprawi , by serwer wysyłał w takiej sytuacji inny dokument

lub przekierowywał danie do innego serwera. Oto przykłady odpowiednich komend:

ErrorDocument 404 "Brak takiego dokumentu"

ErrorDocument 401 /blad_401.html

ErrorDocument 500 http://inny.serwer.pl/to.html

Jak wida , w ten sposób mo na obsłu y nie tylko bł d 404, ale równie inne.

background image

Wersje j zykowe

Apache zawiera moduł negocjacji zawarto ci (

mod_negotiation

). Jego działanie opiera si na specjalnym

protokole ustalania pomi dzy przegl dark a serwerem tego, co ten ostatni ma wysła . Negocjacjom mog

podlega wersje j zykowe dokumentów z ró nym kodowaniem znaków czy format plików graficznych.

Poni ej poka emy, jak "zmusi " Apache'a do automatycznego wysyłania zbiorów w odpowiedniej wersji

j zykowej.

W ka dej przegl darce mo na ustawi domy lny j zyk dokumentów. Dla angielskich programów

najwła ciwsze s pliki napisane po angielsku, a spolszczone aplikacje (IE pl oraz Sylaba Komunikator) na

pierwszym miejscu stawiaj nasz rodzimy j zyk. Wysyłaj c danie do serwera, w jednym z nagłówków

HTTP umieszczaj one informacje o akceptowanych j zykach. Mo e by ich kilka, ale wtedy maj one

ustalon kolejno i czasami procentowo okre lony priorytet. Ka dy j zyk ma swój dwuliterowy kod - zwykle

pochodzi on od nazwy kraju (

en

,

de

,

pl

). Dodatkowo s wyró nione niektóre odmiany j zyków, jak na

przykład

ru-md

to rosyjski u ywany w Mołdawii,

en-tr

odpowiada odmianie angielskiego z Trynidadu, a

es-pr

to j zyk hiszpa ski, którym posługuj si mieszka cy Portoryko.

Istnieje komenda, która ł czy kody j zyków z rozszerzeniami plików. Jest to konieczne, bo czasami nie

mog by one identyczne. Tak jest w przypadku naszego j zyka - jego kod

pl

jest zwyczajowo u ywany na

oznaczenie skryptów tworzonych w PERL-u i dlatego polskim zbiorom nadajemy rozszerzenie

po

. Do

kojarzenia rozszerze z poszczególnymi j zykami słu y polecenie AddLanguage - jego u ycie dla polskich

dokumentów b dzie wygl dało nast puj co: AddLanguage pl.po. Po utworzeniu odpowiednich wersji

naszych dokumentów nazywamy je, dodaj c rozszerzenie charakterystyczne dla j zyka, w którym powstały.

Polski plik b dzie np. nosił nazw index.html.po, a angielski - index.html.en.

Mo e si jednak zdarzy , e przegl darka nie korzysta z mechanizmu negocjacji lub da dokumentu w

wersji, która nie istnieje na serwerze. Jak wtedy zachowa si serwer? Istnieje polecenie, które okre la

priorytet j zyków. Je li umie cimy w httpd.conf polecenie LanguagePrioryty pl an de fr, to w takim

wypadku serwer najpierw b dzie szukał dokumentu w wersji polskiej, nast pnie angielskiej, pó niej

niemieckiej i dopiero na ko cu - francuskiej.

background image

Ograniczanie dost pu

Jedn z metod ograniczania dost pu jest system haseł. Jest on znany wi kszo ci internautów - przy próbie

odczytania chronionych zasobów (dokumentów, katalogów) pojawia si małe okno z pro b o podanie

nazwy u ytkownika i hasła.

Proces ustawiania zabezpiecze składa si z dwóch etapów. Pierwszy to utworzenie bazy z nazwami

u ytkowników oraz ich hasłami, a drugi - okre lenie praw dost pu do poszczególnych zasobów. System

zabezpiecze nie ma nic wspólnego z "normalnymi" hasłami i kontami systemu, cho mo na sprawi , by

było inaczej. Nie jest to jednak wskazane. Apache nie ma bowiem adnych ogranicze dotycz cych liczby

prób logowania. Mogłoby si zdarzy , e włamywacz u yłby serwera WWW do odgadni cia hasła.

Hasła s przechowywane w formie zaszyfrowanej, w pliku, który ma budow podobn do zbioru

/etc/passwd. Do jego tworzenia słu y specjalny program o nazwie

htpasswd

. Je li go nie mamy, nale y go

skompilowa , gdy nie jest to robione podczas kompilacji samego Apache'a. Pliki ródłowe znajduj si w

katalogu

src/support

. Aby utworzy wersj wykonywaln , nale y wyda polecenie make htpasswd. W

rezultacie otrzymamy wykonywalny zbiór htpasswd, który mo emy skopiowa do katalogu

/usr/local/bin

.

Teraz, chc c utworzy konto dla nowego u ytkownika, wydajemy polecenie htpasswd -c

/home/httpd/users marcin. Nast pnie podajemy hasło, a w rezultacie w folderze

/home/httpd

pojawi si

zbiór users, a w nim na przykład linia marcin:d83h83g93. Je li zechcemy zmieni hasło jakiego

u ytkownika, wydajemy to samo polecenie, jednak bez parametru -c.

Drugi etap polega na okre leniu, które zasoby s dost pne dla u ytkowników. Robi si to, dokonuj c

odpowiednich wpisów w plikach .htaccess lub httpd.conf, w sekcji dotycz cej odpowiednich katalogów ( <

Directories > ). Je li chcemy u y pierwszej metody, musimy zezwoli na u ywanie pliku .htaccess (

patrz

podstrona

). Polecenia zabezpieczaj ce wybrane katalogi wygl daj nast puj co:

AuthName 'Wazne pliki'

AuthType Basic

AuthUserFile /home/httpd/users

require valid-user

Pierwsza komenda nadaje nazw zasobowi (b dzie ona wy wietlana w oknie z pytaniem o hasło). Drugie

polecenie okre la, jak b dzie przesyłane hasło. Ten sposób autoryzacji nosi nazw

Basic

(patrz CHIP 2/99)

.

W tym przypadku nie b dzie ono podlegało szyfrowaniu, co zmniejsza nieco skuteczno naszych

zabezpiecze . Jednak drugi sposób autoryzacji -

Digest

(tu hasło jest kodowane), obsługuje wył cznie

Internet Explorer. Trzecia linia okre la plik, z którego maj by pobierane informacje o u ytkownikach i ich

hasłach. Ostatnie polecenie jest tu najwa niejsze, bo mówi o tym, kto jest uprawniony do korzystania z

zasobu. W powy szym przykładzie s to wszyscy istniej cy u ytkownicy. Gdyby ta linia miała posta :

require user marek darek asia, to z tego zasobu korzystałyby tylko wymienione osoby.

W celu łatwiejszego korzystania z opisywanego mechanizmu została wprowadzona mo liwo

zakładania grup, do których mog nale e wybrani u ytkownicy. Mo emy na przykład utworzy grup

irc

i

przypisa do niej Marka i Asi . Do wybranego katalogu dost p b d mieli członkowie grupy irc oraz

administrator. Odpowiednia sekwencja polece b dzie wygl dała nast puj co:

AuthName 'Wazne pliki'

AuthType Basic

AuthUserFile /home/httpd/users

AuthGroupFile/home/httpd/groups

require user administrator

require group irc

Aby sprawdzi nasz przykład, musimy równie utworzy plik z definicj grup. B dzie on miał nast puj c

tre :

irc: marek asia

quake: monster borys player

Oprócz grupy

irc

została zało ona równie grupa

quake

z trzema członkami.

background image

Ograniczanie dost pu na podstawie adresu

Drugi sposób ograniczania dost pu opiera si na adresie. Za te funkcje serwera odpowiada moduł

access_mod

, obsługiwany przez trzy dyrektywy: allow, deny i order. Za pomoc pierwszej okre lamy, które

komputery mog korzysta z wybranych zasobów, druga definiuje maszyny lub grupy maszyn, nie mog ce

odczytywa wybranych dokumentów. Obu komend mo emy u ywa jednocze nie i wtedy polecenie order

okre la sposób interpretacji informacji zapisanych w komendach allow i deny. Najlepiej przedstawi

działanie dyrektywy order na przykładzie. Je li w pliku konfiguracyjnym znajd si polecenia

order deny,allow

deny from all

allow from.chip.pl

- to wybrane strony b d mogły by przegl dane tylko z komputerów nale cych do domeny chip.pl. Po

pierwszej linii wszystkie komputery maj zezwolenie na czytanie zasobów. Drugie polecenie zabrania

dost pu wszystkim, a trzecie "wpuszcza" komputery z domeny chip.pl. Gdyby my w pliku konfiguracyjnym

umie cili komendy

order allow,deny

allow from all

deny from .chip.pl

- to pierwsza linia zabroni dost pu wszystkim, druga za da go wszystkim, a trzecia spowoduje, e jedynie

komputery z domeny chip.pl nie b d mogły niczego czyta .

Zmiana komunikatów o bł dach jest bardzo prosta

- wystarczy jedna komenda

Jak wida , polecenia allow i deny mog zaw a swoje działanie do wybranej domeny (dowolnego

poziomu, zarówno pl, jak i ds.pwr.wroc.pl). Jednak w takim przypadku serwer zawsze musi przetłumaczy

adres komputera chc cego odczyta dane na numer IP. Taka operacja zwalnia nieco proces serwowania

dokumentów, wi c czasami konieczne jest okre lanie komputerów na podstawie numerów IP. Mo na to

robi , podaj c pełne adresy IP (np. 134.34.26.231), jak i tylko niektóre pocz tkowe bajty (134. albo

134.134.26). Je li chcemy precyzyjnie zaw zi grup komputerów mog cych lub nie mog cych odczytywa

dokumentów z naszego serwera, mo emy poda adres sieci i mask podsieci (np.

134.134.26.0/255.255.255.128).

background image

Czy tylko Apache i Personal Web Server?

Liczba dost pnych serwerów jest du a. W ród shareware'owych programów mo na znale kilkana cie

pozycji tego typu. Jednak naprawd licz si tylko dwa produkty: Apache oraz IIS, które razem maj prawie

80% rynku. Nast pny w kolejno ci serwer Netscape'a to troch ponad 7%, a pozostałe produkty

sporadycznie przekraczaj 2%. Taka sytuacja wynika z dwóch powodów: Apache jest dost pny za darmo w

wersjach na wszystkie systemy uniksowe, a IIS doł czony do ka dego systemu Windows NT. Pod adresem

http://www.netcraft.com/survey/

mo na znale wykres przedstawiaj cy udział poszczególnych serwerów w

rynku.

Server Side Include

Zarówno Apache, jak i PWS obsługuj dyrektywy Server Side Include (SSI) umo liwiaj ce wykonywanie

prostych czynno ci, bez potrzeby instalowania modułów j zyków skryptowych. Komendy SSI maj

nast puj c składni : < !--#element atrybut=warto atrybut=warto ... -- > . Nale y pami ta , e

sekwencja -- > musi by poprzedzona spacj . Elementami mog by :

config - definiuje parametry SSI, którymi s :

errmsg

- okre la komunikat, jaki ma si pojawi w przypadku

wyst pienia bł du,

sizefmt=bytes

- sprawia, e wielko ci plików b d podawane w bajtach,

sizefmt=abbrev

-

powoduje wy wietlanie rozmiaru zbiorów w kilobajtach lub megabajtach,

echo - wypisuje warto wybranej zmiennej rodowiskowej serwera WWW. Je li danej zmiennej nie ma,

echo zwraca warto

none

. Atrybutem elementu echo jest

var

,

exec - uruchamia komend systemow (atrybut

cmd

) lub skrypt CGI (

cgi

),

fsize - wypisuje rozmiar zadanego pliku. Mo liwe atrybuty to

file

( cie ka do pliku na dysku) lub virtual

(

URL

),

flastmod - wy wietla dat ostatniej modyfikacji pliku. Atrybuty takie jak elementu fsize,

include - "wstawia" w miejscu wywołania zawarto innego pliku. Atrybuty jak w przypadku fsize,

printenv - wypisuje wszystkie zmienne rodowiskowe. Nie ma atrybutów,

set - ustawia warto wybranej zmiennej. Atrybuty:

var

- nazwa zmiennej i

value

- warto

Do zestawu polece Server Side Include nale równie komendy warunkowe: if, elif, else oraz endif.

Mog one korzysta z operatorów logicznych, a tak e wyra e regularnych.

Zmienne rodowiskowe Apache'a

W SSI s dost pne zmienne zdefiniowane w standardzie CGI oraz, dodatkowo, kilka innych. W ród nich s :

DATE_GMT - aktualny czas GMT

DATE_LOCAL - czas lokalny

DOCUMENT_NAME - nazwa dokumentu (bez cie ki dost pu)

DOCUMENT_URL - URL odczytywanej strony

LAST_MODIFIED - czas ostatniej modyfikacji wysyłanego pliku

Pliki zawieraj ce polecenia SSI zwykle maj rozszerzenie shtml. Jednak mo e by ono inne, co definiujemy

za pomoc nast puj cych komend:

AddType text/html.shtml

AddHandler server-parsed.shtml

Mo emy równie w inny sposób sprawi , by wybrane pliki były przetwarzane w poszukiwaniu komend

SSI. Je li w zbiorze konfiguracyjnym umie cimy polecenie XBitHack on, to ka dy zbiór maj cy ustawiony

atrybut wykonywalno ci dla wła ciciela b dzie traktowany tak, jakby miał rozszerzenie shtml. Je eli ta

komenda b dzie miała posta XbitHack all, te same wła ciwo ci otrzymaj pliki z ustawionym atrybutem x

dla grupy.

background image

Uwaga, bł d!

Z powodu zmiany poło enia jednego pliku, u ytkownicy Red Hata 6.0 napotkaj problemy z kompilacj

modułu

rewrite

. Aby stała si ona mo liwa, nale y w katalogu src/modules/standard odnale plik

rewrite.h w nim lini #include <ndbm.h> , kt ór nale y zamieni na #include <db1/ndbm.h> .

Najwa niejsze moduły Apache'a

najwa niejsze moduły Apache'a

Core

Podstawowe funkcje

+

mod_access

Kontrola dost pu na podstawie adresu

+

mod_actions

Skrypty CGI jako obsługa wewn trznych "uchwytów"

+

mod_alias

Mapowanie katalogów i przekierowania

+

mod_asis

Obsługa plików zawieraj cych w sobie nagłówki protokołu HTTP

+

mod_auth

Kontrola dost pu do wybranych zasobów oparta na systemie kont i haseł

-

mod_auth_anon

Anonimowy dost p do wybranych zasobów (wymaga podania adresu e-mail jako

hasła)

+

mod_autoindex

Wy wietlanie zawarto ci katalogów

+

mod_cgi

Uruchamianie skryptów CGI

-

mod_digest

Spełnia tak sam funkcj , jak modauth, ale hasła s szyfrowane podczas transmisji

+

mod_dir

Serwowanie domy lnego dokumentu katalogu (zwykle index.html)

+

mod_env

Przekazywanie zmiennych rodowiskowych do skryptów CGI i SSI

-

mod_expires

Kontroluje okre lanie wa no ci serwowanych dokumentów

-

mod_headers

Ustawianie dodatkowych lub modyfikacja standardowych nagłówków protokołu HTTP

+

mod_imap

Obsługa map obrazkowych po stronie serwera

+

mod_include

Obsługa Server Side Include (patrz Słowniczek)

-

mod_log_agent

Zapami tywanie w osobnym pliku danych o przegl darkach odczytuj cych informacje

z serwera

+

mod_log_config

Zapami tywanie w specjalnym pliku informacji o przegl darkach odczytuj cych

dokumenty z naszego serwera

-

mod_log_referer

Zapami tywanie informacji o poprzednio przegl danym dokumencie

+

mod_mime

Okre lanie typów dokumentów na podstawie ich rozszerze

-

mod_mime_magic

Okre lanie typów plików na podstawie ich zawarto ci

+

mod_negotiation

Negocjacja zawarto ci (patrz akapit Wersje j zykowe)

-

mod_rewrite

Bardzo zaawansowany system tworzenia przekierowa oparty na wyra eniach

regularnych

+

mod_setenvif

Ustawianie zmiennych rodowiskowych na podstawie informacji o przegl darce

-

mod_speling

Automatyczne poprawianie bł dów w URL-ach

+

mod_status

Wy wietlanie statusu serwera

+

mod_userdir

Obsługa katalogów domowych u ytkowników, dost pnych przez /~uzytkownik/

-

mod_unique_id

Tworzenie unikatowych identyfikatorów dla poszczególnych da odczytu

-

mod_usertrack

ledzenie u ytkowników dzi ki wykorzystaniu mechanizmu "ciastek" (cookie)

background image

Wa ne komendy

Jedn z istotniejszych dyrektyw jest komenda Directory. Ma ona nast puj c składni :

<Directory /katalog>

Opcja1...

Opcja2...

...

</Directory>

a słu y do grupowania polece odnosz cych si do wybranych katalogów. Dzi ki niej mo emy ró nym

kartotekom nadawa wybrane wła ciwo ci zgodnie z własnymi potrzebami. Ta sama zasada dotyczy te

komend <Files> oraz <Location> . Ró nica jest tylko taka, e pierwsza pozwala okre la wła ciwo ci

plików, a druga katalogów serwera WWW. Polecenie Files mo e by u yte wewn trz Directory i wtedy

odnosi si do plików znajduj cych si w danym katalogu.

Przykładowe polecenie przygotowuj ce Apache'a do kompilacji

Komenda musi by wpisana albo w jednej linii, albo wszystkie wiersze, z wyj tkiem ostatniego, musz si

ko czy spacj i znakiem \.

./configure --prefix=/home/httpd \

--exec-prefix=/home/httpd \

--sysconfdir=/etc/httpd/conf \

--logfiledir=/var/log/httpd \

--runtimedir=/var/run \

--enable-module=spelling \

--disable-module=imap


Wyszukiwarka

Podobne podstrony:
02 Linux Konfiguracja serwera WWW APACHE
serwer www apache
Apache Zabezpieczenia aplikacji i serwerów www
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW 2
Apache Zabezpieczenia aplikacji i serwerow WWW
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
04 Zadanie serwer WWW
Definiowanie katalogów wirtualnych serwera WWW
05 WAI serwery www 2013
Własny serwer WWW i FTP w Windows XP, Windows XP, Vista - pomoce
Adaptatywne serwery WWW GF23YAX Nieznany (2)
Definiowanie wirtualnego serwera WWW dla potrzeb gazetki szkolnej
Informatyka dla gimnazjum Zeszyt Ćwiczeń Serwer WWW wraz z bazą

więcej podobnych podstron