23
Wydawnictwo Helion ul. Kociuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: [email protected] Apache. Receptury. Wydanie II Autor: Rich Bowen, Ken Coar ISBN: 978-83-246-1549-0 Tytu‡ orygina‡u: Apache Cookbook: Solutions and Examples for Apache Administration (Cookbook) Format: 168x237, stron: 328 Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci? W‡anie tak, jest to Apache! W lipcu 2008 roku jego udzia‡ w rynku wynosi‡ blisko 50% (wed‡ug Netcraft). Historia tego serwera siŒga roku 1995, kiedy ukaza‡a siŒ jego pierwsza oficjalna wersja, oznaczona numerem 0.6.2. Cechy, ktre zadecydowa‡y o sukcesie tego rozwi„zania, to bezpieczeæstwo, skalowalno, wielow„tkowo i obs‡uga r¿norodnych jŒzykw skryptowych. DziŒki ksi„¿ce Apache. Receptury zapoznasz siŒ z gotowymi przepisami na rozwi„zanie ciekawych, specyficznych oraz intryguj„cych problemw. Nauczysz siŒ instalowa serwer z r¿nych rde‡ oraz na r¿nych platformach. Dowiesz siŒ, w jaki sposb zwiŒkszy jego bezpieczeæstwo, jak uruchomi serwery wirtualne oraz poprawi wydajno Apache. Autorzy ksi„¿ki poka¿„ Ci, jak uruchomi obs‡ugŒ jŒzykw skryptowych, tak aby serwowane strony sta‡y siŒ dynamiczne. Ca‡a wiedza zostanie przedstawiona w sprawdzony w tej serii sposb: problem rozwi„zanie analiza. Sposoby instalacji serwera Apache Dodawanie funkcjonalnoci dziŒki modu‡om Mo¿liwoci rejestracji zdarzeæ Konfiguracja serwerw wirtualnych Wykorzystanie aliasw, przekierowaæ oraz przepisaæ (mod_rewrite) Zarz„dzanie dostŒpem do serwowanych zasobw Bezpieczeæstwo serwera Apache Wykorzystanie szyfrowanej transmisji - protok‡ SSL Zapewnienie wydajnoci Wykorzystanie jŒzykw skryptowychOto ksi„¿ka z najlepszymi przepisami na Apache!

Apache. Receptury. Wydanie II · Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: [email protected] Apache. Receptury. Wydanie II Autor: Rich Bowen,

Embed Size (px)

Citation preview

Wydawnictwo Helionul. Kociuszki 1c44-100 Gliwicetel. 032 230 98 63e-mail: [email protected]

Apache. Receptury.Wydanie II Autor: Rich Bowen, Ken Coar ISBN: 978-83-246-1549-0Tytu oryginau: Apache Cookbook:Solutions and Examples for ApacheAdministration (Cookbook) Format: 168x237, stron: 328

Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci?

Wanie tak, jest to Apache! W lipcu 2008 roku jego udzia w rynku wynosi blisko 50% (wedug Netcraft). Historia tego serwera siga roku 1995, kiedy ukazaa si jego pierwsza oficjalna wersja, oznaczona numerem 0.6.2. Cechy, ktre zadecydowayo sukcesie tego rozwizania, to bezpieczestwo, skalowalno, wielowtkowoi obsuga rnorodnych jzykw skryptowych.

Dziki ksice Apache. Receptury zapoznasz si z gotowymi przepisamina rozwizanie ciekawych, specyficznych oraz intrygujcych problemw. Nauczysz si instalowa serwer z rnych rde oraz na rnych platformach. Dowiesz si, w jaki sposb zwikszy jego bezpieczestwo, jak uruchomi serwery wirtualne oraz poprawi wydajno Apache. Autorzy ksiki poka Ci, jak uruchomi obsug jzykw skryptowych, tak aby serwowane strony stay si dynamiczne. Caa wiedza zostanie przedstawiona w sprawdzony w tej serii sposb: problem rozwizanie analiza.

Sposoby instalacji serwera Apache Dodawanie funkcjonalnoci dziki moduom Moliwoci rejestracji zdarze Konfiguracja serwerw wirtualnych Wykorzystanie aliasw, przekierowa oraz przepisa (mod_rewrite) Zarzdzanie dostpem do serwowanych zasobw Bezpieczestwo serwera Apache Wykorzystanie szyfrowanej transmisji - protok SSL Zapewnienie wydajnoci Wykorzystanie jzykw skryptowychOto ksika z najlepszymi przepisami na Apache!

http://helion.plhttp://helion.pl/zamow_katalog.htmhttp://helion.pl/katalog.htmhttp://helion.pl/zakupy/add.cgi?id=apare2http://helion.pl/emaile.cgihttp://helion.pl/cennik.htmhttp://helion.pl/online.htmmailto:[email protected]://helion.pl/ksiazki/apare2.htmhttp://www.helion.pl/ksiazki/apare2.htm

3

Spis treci

Przedmowa ..............................................................................................................................11

1. Instalacja serwera ....................................................................................................... 191.1. Instalacja serwera z pakietw dystrybucji Red Hat Linux 201.2. Instalacja serwera z pakietw dystrybucji Debian 211.3. Instalacja serwera Apache w systemie Windows 221.4. Pobieranie plikw rdowych serwera Apache 271.5. Budowa serwera Apache z kodu rdowego 291.6. Instalacja serwera Apache za pomoc programu ApacheToolbox 301.7. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache 321.8. Usunicie serwera Apache 341.9. Ktrej wersji serwera Apache uy 351.10. Uaktualnienie serwera przy uyciu config.nice 371.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego 381.12. Przydatne opcje konfiguracyjne 391.13. Odnajdywanie plikw serwera Apache 41

2. Instalacja moduw .....................................................................................................432.1. Instalacja typowego moduu 442.2. Instalacja moduu mod_dav w systemie uniksowym 452.3. Instalacja moduu mod_dav w systemie Windows 472.4. Instalacja moduu mod_perl w systemie uniksowym 492.5. Instalacja moduu mod_php w systemie uniksowym 512.6. Instalacja moduu mod_php w systemie Windows 522.7. Instalacja moduu mod_ssl 532.8. Wyszukiwanie moduw na witrynie modules.apache.org 542.9. Instalacja moduu mod_security 552.10. Dlaczego ten modu nie dziaa? 57

4 Spis treci

3. Rejestracja zdarze .....................................................................................................593.1. Zwikszenie szczegowoci zapisw dziennika zdarze 623.2. Zwikszenie liczby komunikatw o bdach 633.3. Rejestracja zawartoci POST 653.4. Rejestracja adresu IP klienta czcego si poprzez serwer proxy 663.5. Rejestracja adresu MAC klienta 673.6. Rejestracja Cookies 673.7. Zaniechanie rejestracji da pobierania obrazw pochodzcych

ze stron lokalnych 693.8. Zmiana pliku dziennika zdarze o okrelonej porze 703.9. Zmiana pliku dziennika zdarze pierwszego dnia miesica 713.10. Rejestracja nazw komputerw zamiast ich adresw IP 723.11. Oddzielne pliki dziennikw zdarze serwerw wirtualnych 733.12. Rejestracja da proxy 753.13. Rejestracja komunikatw o bdach

rnych serwerw wirtualnych w rnych plikach 763.14. Rejestracja adresu IP serwera 773.15. Rejestracja stron, z ktrych nadchodz dania 783.16. Rejestracja nazw uywanych przegldarek 793.17. Rejestracja dowolnych pl nagwka dania 793.18. Rejestracja dowolnych pl nagwka odpowiedzi 803.19. Rejestracja aktywnoci serwera w bazie danych MySQL 813.20. Rejestracja zdarze w dzienniku systemowym 823.21. Rejestracja katalogw uytkownikw 84

4. Serwery wirtualne ....................................................................................................... 874.1. Konfiguracja serwerw wirtualnych opartych na nazwach 884.2. Konfiguracja jednego z serwerw wirtualnych

opartych na nazwach jako serwera domylnego 904.3. Konfiguracja serwerw wirtualnych opartych na adresach 914.4. Konfiguracja jednego z serwerw wirtualnych

opartych na adresach jako serwera domylnego 924.5. Jednoczesne uycie serwerw wirtualnych

opartych na adresach oraz na nazwach 934.6. Liczne serwery wirtualne obsugiwane

za pomoc moduu mod_vhost_alias 944.7. Liczne serwery wirtualne obsugiwane za pomoc regu przepisania 964.8. Rejestracja zdarze wszystkich serwerw wirtualnych 974.9. Podzia pliku dziennika zdarze 984.10. Serwery wirtualne oparte na portach 984.11. Ta sama zawarto dostpna pod kilkoma adresami IP 994.12. Definiowanie serwerw wirtualnych w bazie danych 100

Spis treci 5

5. Aliasy, przekierowania oraz przepisania ................................................................. 1035.1. Przyporzdkowanie adresu URL do katalogu 1035.2. Tworzenie dodatkowego adresu URL dla istniejcej zawartoci 1055.3. Przydzielenie uytkownikom ich wasnych adresw URL 1065.4. Utosamienie kilku adresw URL za pomoc pojedynczej dyrektywy 1095.5. Przyporzdkowanie kilku adresw URL do tego samego katalogu CGI 1105.6. Tworzenie katalogw CGI dla kadego uytkownika 1105.7. Przekierowanie do innego miejsca 1115.8. Przekierowanie kilku adresw URL w to samo miejsce 1135.9. Nierozrnianie wielkoci liter w adresach URL 1145.10. Wyrnianie skadni kodu rdowego PHP

bez uycia dowiza symbolicznych 1155.11. Wymiana cigw znakw w danych adresach URL 1175.12. Zamiana informacji o ciece na argumenty CGI 1175.13. Odmowa dostpu daniom pochodzcym z obcych stron 1185.14. Przekierowanie da pochodzcych z obcych stron do strony z informacjami 1195.15. Przepisanie na podstawie acucha zapytania 1205.16. Przekierowanie caego lub czci serwera do SSL 1215.17. Zamiana nazw katalogw na nazwy serwerw 1225.18. Przekierowanie wszystkich da do jednego serwera 1235.19. Zamiana nazw dokumentw na argumenty programu 1235.20. Przepisywanie elementw cieki do cigu zapytania i odwrotnie 1245.21. Przepisywanie nazwy serwera na nazw katalogu 1255.22. Przeksztacanie segmentw adresu URL w argumenty zapytania 1265.23. Uywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch 126

6. Bezpieczestwo ......................................................................................................... 1296.1. Wykorzystanie kont uytkownikw

do uwierzytelnienia dostpu do zasobw WWW 1306.2. Konfiguracja hase jednorazowych 1326.3. Wygasajce hasa 1336.4. Ograniczanie wielkoci umieszczanych na serwerze plikw 1356.5. Ograniczenie pobierania obrazkw ze stron znajdujcych si

na innych serwerach 1376.6. danie zarwno sabego, jak i silnego uwierzytelnienia 1386.7. Zarzdzanie plikami .htpasswd 1396.8. Przygotowanie plikw hase uwierzytelniania typu Digest 1416.9. Rozlunienie ochrony w podkatalogu 1426.10. Wybircze zniesienie ochrony 1446.11. Autoryzacja za pomoc informacji o wacicielu pliku 1466.12. Przechowywanie powiadcze uytkownika w bazie danych MySQL 147

6 Spis treci

6.13. Dostp do nazwy uytkownika uwierzytelnionego 1486.14. Uzyskanie hasa uytego do uwierzytelnienia 1496.15. Ochrona przed atakami na hasa typu brute-force 1506.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic 1516.17. Dostp do powiadcze osadzonych w adresach URL 1536.18. Zabezpieczenie usugi WebDAV 1536.19. Uruchomienie usugi WebDAV bez udzielenia zezwolenia na zapisywanie

do plikw uytkownikowi, z uprawnieniami ktrego dziaa serwer 1546.20. Ograniczanie dostpu poprzez proxy do okrelonych adresw URL 1566.21. Ochrona plikw za pomoc osony 1576.22. Ochrona plikw serwera przed zoliwymi skryptami 1596.23. Nadanie prawidowych uprawnie do plikw 1606.24. Uruchomienie serwera z minimaln liczb moduw 1636.25. Ograniczenie dostpu do plikw znajdujcych si

poza katalogiem gwnym WWW 1656.26. Ograniczenie metod dostpnych dla uytkownikw 1666.27. Ograniczanie da zakresw 1676.28. Obrona przed atakami DoS przy uyciu moduu mod_evasive 1686.29. Zmiana katalogu gwnego serwera Apache

przy uyciu moduu mod_security 1706.30. Migracja do mechanizmw uwierzytelniania w wersji 2.2 1716.31. Blokowanie dziaania robakw przy uyciu moduu mod_security 1726.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion 1736.33. Uywanie staych przekierowa do ukrywania zablokowanych adresw URL 174

7. SSL ...............................................................................................................................1777.1. Instalacja SSL 1777.2. Instalacja SSL w systemie Windows 1797.3. Tworzenie samodzielnie podpisanych certyfikatw SSL 1797.4. Tworzenie zaufanego orodka certyfikacyjnego 1837.5. Udostpnianie czci witryny WWW poprzez SSL 1857.6. Uwierzytelnianie za pomoc certyfikatw klientw 1877.7. Wirtualne serwery SSL 1887.8. Certyfikaty wieloznaczne 189

8. Tre dynamiczna .......................................................................................................1918.1. Uaktywnienie katalogu CGI 1918.2. Uaktywnienie skryptw CGI w katalogach niewyznaczonych

za pomoc dyrektywy ScriptAlias 1938.3. Wskazywanie dokumentu domylnego w katalogu CGI 1948.4. Wykorzystanie rozszerze plikw systemu Windows

do uruchamiana skryptw CGI 195

Spis treci 7

8.5. Identyfikacja skryptw CGI na podstawie ich rozszerze 1978.6. Sprawdzenie, czy obsuga programw CGI

jest skonfigurowana poprawnie 1988.7. Odczyt wartoci z formularza 2008.8. Uruchamianie programu CGI dla pewnych rodzajw treci 2038.9. Uycie SSI 2048.10. Przedstawienie daty ostatniej modyfikacji 2068.11. Doczenie standardowego nagwka 2078.12. Doczanie wyniku dziaania programu CGI 2088.13. Uruchamianie za pomoc programu suexec skryptw CGI

z uprawnieniami innego uytkownika 2088.14. Instalacja programu obsugi moduu mod_perl z serwisu CPAN 2108.15. Pisanie programw obsugi moduu mod_perl 2128.16. Uruchomienie obsugi skryptw PHP 2138.17. Weryfikacja instalacji PHP 2148.18. Parsowanie danych wynikowych CGI

z uwzgldnieniem dyrektyw Server Side Includes 2158.19. Parsowanie danych wynikowych skryptw ScriptAlias

z uwzgldnieniem dyrektyw Server Side Includes 2168.20. Wyznaczenie mod_perl do obsugi wszystkich skryptw w jzyku Perl 2168.21. Wczenie obsugi skryptw jzyka Python 217

9. Obsuga bdw ........................................................................................................ 2199.1. Obsuga przypadku brakujcego pola Host 2199.2. Zmiana kodu stanu odpowiedzi za pomoc skryptu CGI 2209.3. Wasne komunikaty o bdach 2219.4. Komunikaty o bdach w rnych jzykach 2229.5. Przekierowanie odwoa

do niepoprawnych adresw URL do innych stron 2239.6. Prawidowa strona komunikatu o bdzie w programie Internet Explorer 2249.7. Powiadamianie o bdach 225

10. Proxy .......................................................................................................................... 22710.1. Zabezpieczenie serwera proxy 22710.2. Zabezpieczenie serwera proxy przed uyciem

go jako otwartego przekanika poczty 22910.3. Przekazywanie da do innego serwera 23010.4. Blokowanie da proxy do okrelonych miejsc 23110.5. Przeniesienie da obsugiwanych przez mod_perl na inny serwer 23210.6. Konfiguracja buforujcego serwera proxy 23310.7. Filtrowanie treci przekazywanych przez serwer proxy 23410.8. Wymaganie uwierzytelnienia si na serwerze dostpnym poprzez proxy 235

8 Spis treci

10.9. Rwnowaenie obcienia przy uyciu mod_proxy_balancer 23510.10. Przekazywanie wywoa z serwera wirtualnego 23710.11. Blokowanie przekazywania wywoa FTP 237

11. Wydajno ..................................................................................................................23911.1. Okrelenie iloci potrzebnej pamici RAM 23911.2. Testowanie wydajnoci serwera Apache za pomoc programu ab 24011.3. Dobr ustawie dostpu keepalive 24211.4. Okrelenie stanu aktywnoci witryny WWW 24311.5. Unikanie wyszukiwania w DNS 24411.6. Optymalizacja dowiza symbolicznych 24611.7. Ograniczanie wpywu uycia plikw .htaccess na wydajno serwera 24711.8. Wyczenie negocjacji treci 24911.9. Optymalizacja tworzenia procesw 25011.10. Dobr parametrw tworzenia wtkw 25111.11. Buforowanie najczciej przegldanych plikw 25311.12. Rwnomierne rozoenie obcienia midzy kilka serwerw 25411.13. Buforowanie list zawartoci katalogu 25611.14. Przypieszenie pracy programw Perl CGI za pomoc moduu mod_perl 25711.15. Buforowanie treci dynamicznych 258

12. Zawarto katalogw ................................................................................................ 26112.1. Generowanie listy zawartoci katalogu lub folderu 26112.2. Wywietlanie standardowego nagwka i stopki dla listy zawartoci katalogu 26312.3. Wykorzystanie arkusza stylw 26312.4. Ukrywanie wybranych elementw na licie zawartoci 26412.5. Wyszukiwanie konkretnych plikw na licie zawartoci katalogu 26512.6. Sortowanie listy zawartoci 26512.7. Sortowanie listy zawartoci w sposb wskazany przez klienta 26612.8. Definiowanie sposobu formatowania listy zawartoci 26812.9. Definiowanie sposobu formatowania przez klienta 26812.10. Dodawanie opisw plikw 26912.11. Automatyczne generowanie tytuw dokumentw 27012.12. Zmiana ikon listy zawartoci 27012.13. Wywietlanie katalogw na pocztku listy 27112.14. Porzdkowanie wzgldem numeru wersji 27212.15. Wczanie sortowania wzgldem numeru wersji przez uytkownika 27312.16. Przydzielenie uytkownikowi penej kontroli nad formatem listy zawartoci 27312.17. Wyczenie moliwoci modyfikowania listy zawartoci przez uytkownika 27412.18. Pomijanie wybranych kolumn na licie zawartoci 27512.19. Wywietlanie plikw chronionych hasem 27612.20. Wywietlanie aliasw na licie zawartoci 277

Spis treci 9

13. Pozostae zagadnienia .............................................................................................. 27913.1. Poprawne umieszczanie dyrektyw 27913.2. Zmiana nazw plikw .htaccess 28113.3. Tworzenie listy zawartoci katalogu 28213.4. Rozwizanie problemu kocowego ukonika 28313.5. Ustalenie zawartoci pola Content-Type

w zalenoci od moliwoci przegldarki 28513.6. Obsuga brakujcego pola Host nagwka 28513.7. Inny domylny dokument 28613.8. Konfiguracja domylnej ulubionej ikony 28713.9. Wywietlanie listy zawartoci katalogw ScriptAlias 28713.10. Wczanie obsugi plikw .htaccess 28913.11. Przeksztacanie dyrektyw Server Side Includes

z serwerw IBM lub Lotus do serwera Apache 290

A Uycie wyrae regularnych ..................................................................................... 291

B Rozwizywanie problemw ..................................................................................... 297

Skorowidz ............................................................................................................................ 307

43

ROZDZIA 2.

Instalacja moduw

W pakiecie podstawowej dystrybucji serwera WWW Apache nie ma bardzo wielu popular-nych moduw. Wikszo z nich nie trafia do dystrybucji podstawowej z powodw licen-cyjnych lub z powodw zwizanych z obsug techniczn, inne nie s dystrybuowane przezApache Software Foundation, gdy tak decyzj podjli twrcy serwera, a jeszcze inne s in-tegraln czci innych projektw. Na przykad modu mod_ssl dla serwera Apache 1.3 jesttworzony i rozwijany oddzielnie, nie tylko z powodu amerykaskich ogranicze eksportowych(ktre byy znacznie bardziej rygorystyczne w czasie, gdy pakiet powstawa), ale gwniedlatego, e wymaga on wprowadzenia zmian do jdra serwera, na ktre nie zdecydowali sijego twrcy.

W niniejszym rozdziale przedstawiono receptury omawiajce instalacj niektrych najbar-dziej popularnych moduw pochodzcych spoza oficjalnej dystrybucji. Jeeli zachodzi takapotrzeba, przedstawione s osobne receptury omawiajce instalacj moduw w systemachuniksowych i instalacj w systemie Windows.

Najbardziej kompletna lista moduw innych producentw znajduje si na stronie Apache Mo-dule Registry pod adresem http://modules.apache.org/. Niektre moduy s tak popularne lubs tak zoone, e powicono im cae strony internetowe. Tak jest na przykad w przypadkumoduw omwionych w tym rozdziale.

Wielu twrcw moduw zajmuje si tworzeniem tylko jednego moduu. Oznacza to, e poten-cjalnie moe istnie tyle sposobw instalacji moduw, ile jest samych moduw. Pierwsza re-ceptura tego rozdziau opisuje proces instalacji, ktry powinien by odpowiedni dla wielumoduw wersji 1.3 serwera Apache. Jednak w przypadku kadego moduu, naley sprawdziw jego dokumentacji, czy jego instalacja nie przebiega w inny sposb.

Wiele z tych moduw mona otrzyma od firm, ktre tworz pakiety i dystrybuuj opro-gramowanie Apache na przykad w postaci moduw RPM firm Mandrake czy Red Hat.Jednak takie pakiety budowane s przy pewnych zaoeniach poczynionych przez tworzcje firm. Mwic inaczej jeeli serwer zosta zbudowany z plikw rdowych, a jego plikiznajduj si w miejscach innych ni standardowe, nie naley si dziwi, gdy instalacja jakie-go moduu si nie powiedzie.

44 Rozdzia 2. Instalacja moduw

Wszystkie moduy opisane w tym rozdziale s obsugiwane przez wersj 1.3 serwera Apachedziaajc w systemach uniksowych. Informacje na temat moduw dla wersji 2.0 serweraoraz w przypadku systemu Windows zebrano w tabeli 2.1.

Tabela 2.1. Obsuga moduw w systemie Windows oraz przez wersj 2.0 serwera Apache

Nazwa moduu Obsuga w systemie Windows Obsuga przez serwer Apache 2.0

mod_dav Tak Modu doczony do serwera nie ma potrzeby instalowania.

mod_perl Tak Tak

mod_php Tak Tak

mod_ssl Nie Modu doczony do serwera nie ma potrzeby instalowania.

2.1. Instalacja typowego moduu

ProblemNaley zainstalowa posiadany modu, ktrego instalacja nie zostaa omwiona osobno w tymrozdziale.

RozwizanieW katalogu, w ktrym znajduje si plik rdowy moduu, naley wyda polecenie:

% /cieka/do/serwera/apache/bin/apxs -cia modu.c

AnalizaGdy modu skada si z pojedynczego pliku o rozszerzeniu .c, istnieje due prawdopodobie-stwo, e modu uda si zbudowa i zainstalowa za pomoc powyszego rozwizania. Mo-duom skadajcym si z kilku plikw rdowych powinny towarzyszy instrukcje instalacji.

Opcje -cia powoduj kolejno kompilacj, instalacj, a nastpnie aktywacj moduu. Pierwszaczynno jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w ktrym bdziego poszukiwa serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisuw pliku httpd.conf.

Zobacz rwnie Strony podrcznika man dotyczce programu apxs, przewanie ServerRoot/man/man8/apxs.8.

2.2. Instalacja moduu mod_dav w systemie uniksowym 45

2.2. Instalacja moduu mod_davw systemie uniksowym

ProblemNa serwerze WWW naley uruchomi usug WebDAV. Dziki usudze WebDAV zdalni uyt-kownicy mog dodawa, usuwa i uaktualnia pliki znajdujce si na serwerze w sposbniezawodny i bezpieczny, bez potrzeby korzystania z usugi FTP.

RozwizanieModu mod_dav jest doczony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywni zapomoc opcji kompilacji --enable-dav.

W przypadku serwera Apache 1.3 pakiet rdowy moduu mod_dav naley pobra ze stronyhttp://webdav.org/mod_dav/, rozpakowa, a nastpnie wyda polecenia:

% cd mod_dav-1.0.3-1.3.6% ./configure --with-apxs=/usr/local/apache/bin/apxs% make# make install

Nastpnie naley zatrzyma i uruchomi serwer ponownie oraz zapozna si z receptur 6.18.

AnalizaModu mod_dav zachowuje si poprawnie i atwo daje si zbudowa i wczy do dziaajce-go serwera. Aby sprawdzi, czy modu zosta zainstalowany poprawnie, trzeba na potrzebyusugi WebDAV przeznaczy na serwerze jaki katalog i sprawdzi dostp do niego za po-moc narzdzia wspomagajcego WebDAV. Polecamy uycie do tego celu programu cadaver korzystajcego z wiersza polece narzdzia typu open source. (Adres strony, z ktrej mo-na pobra program cadaver, znajduje si na kocu receptury).

Aby uaktywni na serwerze WWW usug WebDAV, naley do pliku httpd.conf doda conajmniej dwie dyrektywy. Pierwsza wskazuje pooenie bazy blokad plikw, wykorzysty-wanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie ze sob niekolidoway. Baza musi znajdowa si katalogu, do ktrego serwer ma prawo zapisu. Naprzykad:

# cd /usr/local/apache# mkdir var# chgrp nobody var# chmod g+w var

Nastpnie w pliku httpd.conf, poza wszystkimi kontenerami, naley umieci wiersze:

DAVLockDB /usr/local/apache/var/DAVlock

46 Rozdzia 2. Instalacja moduw

Baza DAVLockDB nie moe znajdowa si w systemie plikw typu NFS, gdy NFSnie obsuguje wymaganego przez modu mod_dav sposobu blokowania plikw.Umieszczenie bazy blokad plikw w systemie plikw typu NFS moe doprowadzido nieprzewidywalnych skutkw.

Nastpnie naley utworzy tymczasowy katalog sucy do przetestowania dziaania usugiWebDAV:

# cd /usr/local/apache# mkdir htdocs/dav-test# chgrp nobody htdocs/dav-test# chmod g+w htdocs/dav-test

Teraz do pliku httpd.conf naley doda sekcj przeznaczajc utworzony katalog na potrzebyusugi WebDAV:

DAV On

Nastpnie naley zatrzyma i ponownie uruchomi serwer, ktry po uruchomieniu powinienrozpocz obsug operacji WebDAV kierowanych pod lokalny identyfikator URI /dav-test.Aby przetestowa dziaanie WebDAV za pomoc programu cadaver, naley wyda przedsta-wione polecenia, w wyniku czego powinno si otrzyma wyniki podobne do poniszych:

% cd /tmp% echo "Zwyky tekst" > dav-test.txt% cadaverdav:!> open http://localhost/dav-testLooking up hostname... Connecting to server... connected.dav:/dav-test/> put dav-test.txtUploading dav-test.txt to '/dav-test/dav-test.txt': (reconnecting...done)Progress: [= == == == == == == == == == == == == == ==>] 100.0% of 11 bytes succeeded.dav:/dav-test/> propset dav-test.txt MyProp 1023Setting property on 'dav-test.txt': (reconnecting...done) succeeded.dav:/dav-test/> propget dav-test.txt MyPropFetching properties for 'dav-test.txt':Value of MyProp is: 1023dav:/dav-test/> propdel dav-test.txt MyPropDeleting property on 'dav-test.txt': succeeded.dav:/dav-test/> closeConnection to 'localhost' closed.dav:!> exit% rm dav-test.txt

W tym przypadku waciwoci (ang. properties) s atrybutami zasobw WebDAV. Niektry-mi z nich (na przykad rozmiarem zasobu) zarzdza system, a inne mog by dowolnie do-dawane, zmieniane i usuwane przez uytkownika.

Po sprawdzeniu poprawnoci dziaania moduu mod_dav katalog htdocs/dav-test naley usun,podobnie jak zwizan z nim sekcj pliku httpd.conf, a nastpnie naley zapo-zna si z receptur 6.18.

Zobacz rwnie Receptura 6.18.

http://webdav.org/mod_dav/.

http://webdav.org/cadaver/.

2.3. Instalacja moduu mod_dav w systemie Windows 47

2.3. Instalacja moduu mod_dav w systemie Windows

ProblemNa serwerze WWW Apache 1.3 dziaajcym w systemie Windows naley za pomoc moduumod_dav uruchomi usug WebDAV.

RozwizanieModu mod_dav w wersji 2.0 serwera Apache znajduje si standardowo, nie ma wic w takimprzypadku koniecznoci pobierania go i instalowania.

Ze strony http://webdav.org/mod_dav/win32/ naley pobra i rozpakowa pakiet moduu mod_davprzeznaczony dla systemu Windows. Nastpnie naley sprawdzi, czy w katalogu ServerRoot(w katalogu gwnym serwera Apache) znajduj si pliki xmlparse.dll oraz xmltok.dll. Jeeli ichtam nie ma, naley odnale je w innych katalogach serwera Apache, a nastpnie skopiowaje do katalogu ServerRoot. Do pracy modu mod_dav potrzebuje pakietu Expat, ktry jestdoczany do serwera Apache poczwszy od wersji 1.3.9. Poszukiwane pliki pochodz z pa-kietu Expat.

Plik DLL moduu mod_dav naley przekopiowa do katalogu, w ktrym znajduj si moduyserwera Apache:

C:\>cd mod_dav-1.0.3-devC:\mod_dav-1.0.3-dev>copy mod_dav.dll C:\Apache\modulesC:\mod_dav-1.0.3-dev>cd \Apache

W pliku httpd.conf naley umieci nastpujcy wiersz:LoadModule dav_module modules/mod_dav.dll

Jeeli plik httpd.conf zawiera dyrektyw ClearModuleList i dodaje wszystkie moduy, naleyrwnie doda wiersz AddModule. Mona te wiersz LoadModule dotyczcy moduu mod_davumieci po dyrektywie ClearModuleList.

AnalizaModu mod_dav zachowuje si poprawnie i atwo daje si zbudowa i wczy do dziaajce-go serwera. Aby sprawdzi, czy modu zosta zainstalowany poprawnie, trzeba na potrzebyusugi WebDAV przeznaczy na serwerze jaki katalog i sprawdzi dostp do niego za po-moc narzdzia wspomagajcego WebDAV lub otworzy go programem Eksplorator Windows(poczwszy od systemu Windows 2000). Mona te uzyska do niego dostp z innego kom-putera za pomoc programu cadaver lub innego narzdzia wspomagajcego WebDAV.

Aby uaktywni na serwerze WWW usug WebDAV, naley do pliku ServerRoot/conf/httpd.confdoda co najmniej dwie dyrektywy. Pierwsza wskazuje pooenie bazy blokad plikw wyko-rzystywanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie niekolidoway ze sob. Baza musi znajdowa si w katalogu, do ktrego serwer ma prawo do za-pisu. Na przykad:

C:\Apache-1.3>mkdir var

48 Rozdzia 2. Instalacja moduw

eby uruchomi usug WebDAV, do pliku httpd.conf naley doda nastpujce wiersze:

DAVLockDB "C:/Apache-1.3/var/dav-lock"

eby przetestowa prac moduu mod_dav, naley utworzy tymczasowy katalog:C:\Apache-1.3>mkdir htdocs\dav-test

Nastpnie, po to, by usuga WebDAV rozpocza udostpnianie katalogu testowego, naleyzmieni zawarto kontenera :

DAVLockDB "C:/Apache-1.3/var/dav-lock" DAV On

Teraz naley zatrzyma serwer i uruchomi go ponownie, a nastpnie sprbowa otworzykatalog /dav-test za pomoc klienta WebDAV. W przypadku zastosowania jako klienta Web-DAV dziaajcego w innym komputerze programu cadaver, przykad jego uycia mona znalew recepturze 2.2. Poniej przedstawiono sposb testowania pracy moduu mod_dav za pomocprogramu Eksplorator Windows.

Testowania pracy moduu mod_dav za pomoc programu Eksplorator WindowsPo przeznaczeniu katalogu htdocs\dav-test na potrzeby usugi WebDAV i ponownym urucho-mieniu serwera WWW Apache naley uruchomi program Eksplorator Windows. Aby uzyskadostp do katalogu usugi WebDAV, naley wykona niej opisane czynnoci. Mona to zrobina komputerze, na ktrym uruchomiono usug WebDAV lub na innym komputerze z systememWindows, ktry ma dostp do tego komputera.

1. W programie Eksplorator Windows naley klikn pozycj Moje miejsca sieciowe1. 2. Nastpnie w prawym oknie programu Eksplorator Windows naley klikn dwukrotnieikon Dodaj miejsce sieciowe.

3. Jako lokalizacj nowego miejsca sieciowego naley wpisa:http://127.0.0.1/dav-test/

Gdy czynnoci te wykonywane s w innym komputerze ni ten, w ktrym uruchomionousug WebDAV, zamiast adresu 127.0.0.1 naley wpisa nazw serwera, w ktrymuruchomiono modu mod_dav.

4. Po naciniciu przycisku Dalej naley nada utworzonemu miejscu sieciowemu now na-zw lub pozosta przy proponowanej.

5. Program Eksplorator Windows powinien teraz otworzy okno o nazwie zdefiniowanej w po-przednim kroku. Zawarto okna powinna by pusta, gdy otwarty zosta pusty katalog.

6. W gwnym oknie programu Eksplorator Windows naley przej do dowolnego kataloguzawierajcego pliki.

1 Ponisza procedura dotyczy systemw Windows 2000 lub Windows Me. W systemie Windows XP naley

klikn dwukrotnie znajdujc si na pulpicie ikon Moje miejsca sieciowe, a nastpnie ze znajdujcego sipo lewej stronie panela Zadania sieciowe wybra Dodaj miejsce sieciowe przyp. tum.

2.4. Instalacja moduu mod_perl w systemie uniksowym 49

7. Przytrzymujc wcinity przycisk Ctrl, naley przecign do okna otwartego w punkcie 5.dowolny plik lub pliki.

8. System Windows powinien na krtko pokaza okno informujce o postpie procesu ko-piowania, po czym kopiowany plik powinien znale si w oknie docelowym.

Gratulacje! Plik zosta skopiowany do serwera za pomoc usugi WebDAV.

Po zakoczeniu testowania naley usun katalog htdocs\dav-test, a take usun z pliku konfigu-racyjnego wiersz . W przeciwnym razie swojepliki bdzie mg umieszcza tam kady.

Zobacz rwnie Receptura 6.18.

http://webdav.org/mod_dav/.

2.4. Instalacja moduu mod_perlw systemie uniksowym

ProblemAby skrypty Perla byy wykonywane szybciej i byy lepiej obsugiwane przez serwer WWW,naley zainstalowa modu mod_perl.

RozwizanieW przypadku serwera Apache 1.3 ze strony http://perl.apache.org/ naley pobra pakiet r-dowy moduu mod_perl 1.0, rozpakowa go, a nastpnie wyda nastpujce polecenia:

% perl Makefile.PL \> USE_APXS=1 \> WITH_APXS=/usr/local/apache/bin/apxs \> EVERYTHING=1 \> PERL_USELARGEFILES=0% make% make install

Nastpnie naley uruchomi serwer ponownie.

Dla serwera Apache 2.0 i wersji pniejszych proces przebiega analogicznie. Naley pobrai rozpakowa pakiet rdowy mod_perl 2.0, a nastpnie wykona nastpujce polecenie:

% perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs

AnalizaModu mod_perl jest moduem do zoonym. Na serwerze Apache mona zainstalowa go nakilka sposobw. W recepturze przedstawiono sposb najszybszy i najprostszy. Jeeli z jakichpowodw sposb ten jest nieodpowiedni, naley zapozna si z rnymi plikami README.*

50 Rozdzia 2. Instalacja moduw

znajdujcymi si w katalogu pakietu. Poniewa podstawowym jzykiem moduu jest Perl,a nie C, instrukcja instalacji rni si zdecydowanie od stosowanych w przypadku wikszociinnych moduw.

Gdy po instalacji moduu serwer uruchomi si poprawnie, modu mod_perl rozpoczyna dziaa-nie i jest skonfigurowany. Dziaanie moduu mona przetestowa, dokonujc zmian w plikuhttpd.conf, dodajc kilka skryptw i obserwujc, czy serwer obsuguje je poprawnie. Otoprzykad testowania dziaania moduu mod_perl.

1. Na potrzeby skryptw moduu mod_perl naley utworzy nowy folder:# cd ServerRoot# mkdir lib lib/perl lib/perl/Apache

2. W katalogu conf/ serwera naley utworzy plik startup.pl zawierajcy instrukcje urucho-mieniowe dla moduu mod_perl:

#!/usr/bin/perlBEGIN { use Apache ( ); use lib Apache->server_root_relative('lib/perl');}use Apache::Registry ( );use Apache::Constants ( );use CGI qw(-compile :all);use CGI::Carp ( );1;

3. Nastpnie naley utworzy wykorzystywany w tecie plik lib/perl/Apache/HelloWorld.pm:package Apache::HelloWorld;use strict;use Apache::Constants qw(:common);sub handler { my $r = shift; $r->content_type('text/plain; charset=ISO-8859-2'); $r->send_http_header; $r->print("Witaj wiecie! Pozdrowienia od moduu mod_perl.\n"); return OK;}1;

4. Teraz trzeba otworzy do edycji plik konfiguracyjny serwera i umieci w nim dyrekty-wy umoliwiajce moduowi mod_perl odnalezienie potrzebnych mu skadnikw oraz in-formujce go, kiedy ma uruchomi skrypt testowy. Do pliku httpd.conf naley doda na-stpujce wiersze:

PerlRequire conf/startup.pl SetHandler perl-script PerlHandler Apache::HelloWorld

5. Teraz naley uruchomi serwer ponownie, a nastpnie uruchomi skrypt, wpisujc:http://localhost/mod_perl/howdy.

Jeeli konfiguracja jest poprawna, pojawi si strona zawierajce zdanie: Witaj wiecie! Po-zdrowienia od moduu mod_perl..

2.5. Instalacja moduu mod_php w systemie uniksowym 51

Zobacz rwnie http://perl.apache.org/.

Ksika Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz LincolnStein, wydawnictwo O'Reilly.

Ksika mod_perl Developer's Cookbook, autorzy Geoffrey Young, Paul Lindner oraz RandyKobes wydawnictwo Sams2.

2.5. Instalacja moduu mod_phpw systemie uniksowym

ProblemDo dziaajcego serwera WWW Apache naley doda modu obsugi skryptw mod_php.

RozwizaniePakiet rdowy moduu mod_php naley pobra ze strony http://php.net/, rozpakowa go, a na-stpnie wyda nastpujce polecenia:

% cd php-5.2.3% ./configure \> --with-apxs=/usr/local/apache/bin/apxs% make# make install

Nastpnie naley uruchomi serwer ponownie.

AnalizaAby przekona si, e instalacja zakoczya si powodzeniem, w katalogu DocumentRoot ser-wera WWW naley utworzy skadajcy si z jednego wiersza plik info.php:

Do pliku konfiguracyjnego httpd.conf naley doda ponisze wiersze:

AddHandler application/x-httpd-php .php

Po ponownym uruchomieniu serwera WWW naley za pomoc przegldarki sprbowaotworzy dokument info.php. W wyniku tego powinien pojawi si szczegowy opis aktyw-nych opcji PHP. Jeeli opis rzeczywicie si pojawi, bdzie to wskazywa, e instalacja zako-czya si pomylnie i plik info.php mona usun.

Podczas instalacji PHP mona zastosowa wiele opcji i rozszerze, w tej recepturze omwio-no tylko najprostszy sposb instalacji moduu.

2 Polskie wydanie: mod_perl. Podrcznik programisty, Helion 2003 przyp. red.

52 Rozdzia 2. Instalacja moduw

Zobacz rwnie Receptura 8.16.

Receptura 8.17.

http://php.net/.

2.6. Instalacja moduu mod_php w systemie Windows

ProblemDo dziaajcego w systemie Windows serwera WWW Apache naley doda modu obsugiskryptw mod_php.

RozwizanieW tej recepturze zamiast podawania szczegowych polece czynnoci, ktre naley wyko-na, przedstawione zostan w sposb opisowy.

1. Ze strony http://php.net/ naley pobra plik binarny .zip (a nie plik .exe) PHP dla systemuWindows zawierajcego rozszerzenia API.

2. Plik .zip naley rozpakowa do katalogu, w ktrym zawarto pliku moe pozosta nazawsze (na przykad do katalogu C:\PHP4). W przypadku uycia programu WinZip na-ley zaznaczy pole wyboru Use folder names, aby utworzona zostaa taka struktura pli-kw jak umieszczona w pliku .zip.

3. Do katalogu \modules\ znajdujcego si w katalogu ServerRoot serwera Apache naleyprzekopiowa plik PHP4\SAPI\php4apache.dll.

4. W oknie wiersza polecenia naley przej do katalogu PHP4, do ktrego zosta rozpako-wany plik .zip, a nastpnie wyda polecenia:

...\PHP4>copy php.ini-dist %SYSTEMROOT%\php.ini

...\PHP4>copy php4ts.dll %SYSTEMROOT%

(W przypadku systemw Windows 95 oraz Windows 98 zamiast %SYSTEMROOT% naleyuy %WINDOWS%).

5. Nastpnie naley otworzy do edycji plik %SYSTEMROOT%\php.ini, odnale w nimwiersz zaczynajcy si od extension_dir i zmieni jego warto tak, by wskazywaa nakatalog PHP4\extensions. Gdy, na przykad, plik .zip zosta rozpakowany do kataloguC:\PHP4, wiersz ten powinien wyglda nastpujco:

extension_dir = C:\PHP4\extensions

6. Nastpnie trzeba otworzy do edycji plik conf\httpd.conf znajdujcy si w katalogu ServerRooti w pobliu innych wierszy LoadModule naley doda wiersz:

LoadModule php4_module modules/php4apache.dll

W pobliu naley umieci rwnie wiersze dotyczce plikw .php:

AddType application/x-httpd-php .php

2.7. Instalacja moduu mod_ssl 53

7. Na koniec naley zrestartowa serwer Apache, w wyniku czego modu PHP powinien siuaktywni.

AnalizaAby zainstalowa modu PHP w systemie Windows, naley wykona wiele drobiazgowychczynnoci. eby przekona si, e proces instalacji zakoczy si powodzeniem, w kataloguDocumentRoot serwera naley utworzy skadajcy si z jednego wiersza plik info.php:

Po ponownym uruchomieniu si serwera WWW naley za pomoc przegldarki sprbowaotworzy dokument info.php. W wyniku tego powinien pojawi si szczegowy opis aktyw-nych opcji PHP.

W czasie instalacji PHP mona zastosowa wiele opcji i rozszerze, w tej recepturze om-wiono tylko najprostszy sposb instalacji moduu. Wicej szczegw na ten temat monaznale w pliku install.txt znajdujcym si w katalogu PHP4 oraz w dokumentacji znajdujcejsi na stronach WWW.

Zobacz rwnie http://php.net/.

2.7. Instalacja moduu mod_ssl

ProblemDo dziaajcego serwera WWW Apache naley doda obsug SSL, instalujc w nim mod_ssl modu bezpiecznego HTTP.

RozwizanieWindows

Sposb instalacji protokou SSL w systemie Windows jest tematem receptury 7.2. Mwicw najwikszym skrcie, najlepiej jest pobra XAMPP z witryny ApacheFriends.org, chybae posiada si odpowiednie dowiadczenie w budowaniu kodu rdowego w systemieMicrosoft Windows.

Apache 2.0Modu mod_ssl zosta wczony do wersji 2.0 serwera Apache, ale w przypadku budowyserwera z kodu rdowego, modu nie jest automatycznie kompilowany ani instalowany.Aby w takim przypadku zainstalowa modu mod_ssl, naley w poleceniu ./configurezastosowa opcj --enable-ssl oraz uaktywni modu dyrektywami LoadModule orazAddModule.

Apache 1.3Aby zainstalowa modu mod_ssl w systemie uniksowym, ze strony http://www.modssl. org/naley pobra i rozpakowa archiwum tar moduu, a nastpnie wyda polecenia:

54 Rozdzia 2. Instalacja moduw

% cd mod_ssl-2.8.14-1.3.273

% ./configure \> --with-apache=../apache_1.3.27 \> --with-ssl=SYSTEM \> --prefix=/usr/local/apache% cd ../apache_1.3.27% make% make certificate

Analiza

eby modu mod_ssl mg dziaa, kod rdowy serwera Apache musi zosta zmodyfikowany.Dziki temu mona zainstalowa tylko tak wersj pakietu mod_ssl, ktra odpowiada wersji po-siadanej dystrybucji serwera Apache. Jeeli instalacja serwera Apache nie zawiera plikw r-dowych (co ma miejsce na przykad w przypadku instalacji serwera z pakietu RPM czy z innejtego typu dystrybucji) instalacja moduu mod_ssl nie powiedzie si.

Poza kodami rdowymi serwera Apache do zainstalowania moduu mod_ssl potrzebne sjeszcze Perl oraz biblioteki OpenSSL. Ich pooenie okrela si za pomoc opcji --with-ssl.Jeeli biblioteki znajduj si w katalogu utworzonym przez ich dostawc, sowo kluczoweSYSTEM poinformuje, e naley ich szuka wanie tam, dziki czemu nie trzeba bdzie ichszuka samemu.

W przeciwiestwie do wikszoci innych moduw serwera Apache, aby zainstalowa modumod_ssl, naley uruchomi skrypt ./configure znajdujcy si w katalogu moduu mod_ssl, a niew katalogu plikw rdowych serwera Apache. Skrypt moduu wprowadza odpowiedniezmiany do skryptu serwera, a nastpnie uruchamia go.

W tej recepturze omwiono jedynie podstawowy sposb instalacji moduu mod_ssl. W czasiekonfiguracji moduu mod_ssl mona zleci moduowi wykorzystanie wielu dodatkowychskadnikw oraz funkcji. Wicej informacji na ten temat mona znale w plikach READMEoraz INSTALL znajdujcych w katalogu plikw rdowych moduu mod_ssl lub na stronieWWW http://www.modssl.org/.

Zobacz rwnie Receptura 7.3.

http://www.modssl.org/.

2.8. Wyszukiwanie moduwna witrynie modules.apache.org

ProblemTrzeba znale moduy serwera Apache udostpniajce okrelone funkcje lub noszce okre-lone nazwy. Wiadomo jednoczenie, e istnieje rejestr moduw serwera Apache.

3 Nazwa katalogu zalena jest od instalowanej wersji mod_ssl. przyp. red.

2.9. Instalacja moduu mod_security 55

RozwizanieNa witrynie http://modules.apache.org naley poda sowa kluczowe odnoszce si do poszu-kiwanych funkcji lub fragment nazwy moduu i przeprowadzi wyszukiwanie.

AnalizaRejestr moduw serwera Apache to nieoficjalna witryna internetowa, na ktrej autorzy mo-duw z wasnej inicjatywy mog zarejestrowa efekty swoich prac, aby udostpni je innymuytkownikom.

Wspomniana witryna w adnym wypadku nie zawiera wszystkich moduw serwe-ra Apache; wiele z nich jest dostpnych na witrynie SourceForge albo na domowychwitrynach ich autorw. Jeeli poszukiwany modu nie zostanie znaleziony nahttp://modules.apache.org, mona sprbowa go poszuka na witrynie SourceForge(pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostuprzeszuka internet przy uyciu Google lub innej wyszukiwarki internetowej.

Zobacz rwnie http://sourceforge.net.

http://freshmeat.net.

2.9. Instalacja moduu mod_security

ProblemTrzeba zainstalowa modu mod_security, aby skorzysta z udostpnianych przez niego pro-stych, a jednoczenie rozbudowanych mechanizmw filtrujcych.

RozwizanieNaley wykona nastpujce czynnoci:

1. Pobra modu mod_security oraz gwne reguy moduu z witryny http://modules.apache.org.Aby znale modu do pobrania na podanej stronie WWW, naley skorzysta z pozycjimenu Browse lub Search.

Po pobraniu moduu warto sprawdzi jego sygnatur PGP, aby upewni si, e pliknie uleg zmianie. Wicej informacji na ten temat znajduje si na witrynie internetowejmoduu mod_security.

2. Rozpakowa zestaw (bez regu) do katalogu roboczego:% cd /usr/local/build% tar xzf /usr/local/kits/modsecurity-apache_2.1.1

56 Rozdzia 2. Instalacja moduw

3. Przej do rozpakowanego katalogu i zbudowa pakiet, wykorzystujc dostarczony wrazz nim skrypt Makefile. W poleceniu make trzeba wskaza odpowiedni warto ServerRoot:

% cd /usr/local/build/modsecurity-apache_2.1.1/apache2% make top_dir=/usr/local/apache2# make top_dir=/usr/local/apache2 install

W odrnieniu od innych moduw dostawcw zewntrznych mod_security trzebabudowa przy uyciu jego wasnych mechanizmw, a nie przez zwyke wywoanienarzdzia apxs serwera Apache.

4. Rozpakowa gwne reguy do podkatalogu katalogu wskazanego jako ServerRoot:# cd /usr/local/apache2/conf# mkdir mod_security# cd mod_security# tar xzf /tmp/modsecurity-core-rules_2.1-1.4.tar.gz

5. W odpowiednim miejscu w pliku httpd.conf doda nastpujce wiersze:LoadModule security_module modules/mod_security2.soInclude conf/mod_security/*.conf

6. Zrestartowa serwer.

AnalizaSkrypt Makefile doczony do pakietu mod_security zbuduje modu i umieci go w odpowied-niej lokalizacji, lecz ponowne wczenie serwera jest ju powinnoci samego uytkownika.Najnowsze wersje pakietu zawieraj zestaw gwnych regu obsugujcych przypadki takiejak spamowanie blogw czy najczciej spotykane ataki. Reguy s rwnie dostpne w od-dzielnym archiwum tar, ktre moe by uaktualniane niezalenie od regu doczanych dosamego moduu.

Aktualna wersja moduu mod_security obsuguje wycznie serwer Apache w wersji 2. Dostpnajest rwnie starsza wersja obsugujca wersj 1.3 serwera, lecz jest mao prawdopodobne, bybya utrzymywana przez duszy czas.

Zobacz rwnie Witryna internetowa moduu mod_security pod adresem http://modsecurity.org.

2.10. Dlaczego ten modu nie dziaa? 57

2.10. Dlaczego ten modu nie dziaa?

ProblemPomimo prby zainstalowania moduu pochodzcego od dostawcy zewntrznego serwer WWWApache nie rozpoznaje go.

RozwizanieNaley sprawdzi kod rdowy moduu, jego dokumentacj albo zwrci si bezporedniodo autora moduu, aby ustali wersj serwera Apache obsugiwan przez modu.

AnalizaW miar wprowadzania do serwera Apache kolejnych znaczcych zmian moe si zdarzy,e zmiana w API serwera doprowadzi do powstania niezgodnoci jego moduw. Wpraw-dzie twrcy rozwijajcy serwer d do tego, by podobne niezgodnoci zdarzay si jak naj-rzadziej, lecz czasami jest to po prostu nieuniknione.

Aby zapobiec adowaniu niezgodnego moduu i unikn w ten sposb zaamania serweraWWW, zarwno w module, jak i w samym serwerze umieszczono wbudowany, magicznynumer zapisywany w momencie ich budowania, wskazujcy wersj API. Gdy serwer sprbujezaadowa modu DSO, najpierw porwna numer wersji w module z wasnym numerem wersjizapisanym na serwerze. Jeeli okae si, e numery wersji s niezgodne, serwer nie zaadujemoduu.

Zesp rozwijajcy serwer dy do utrzymania zgodnoci midzy numerami wersji gwnych,lecz nie midzy rnymi numerami wersji gwnych. Inaczej mwic, modu zbudowany dlaserwera Apache 1.3 powinien dziaa z praktycznie wszystkimi wersjami 1.3 serwera zbudo-wanymi po dacie budowy moduu, natomiast na pewno nie bdzie obsugiwa serwera w wer-sji 2.0. I odwrotnie: modu dla wersji 2.0 w adnym wypadku nie bdzie wsppracowa z ser-werem w wersji 1.3.

Zobacz rwnie Rejestr moduw serwera Apache pod adresem http://modules.apache.org.