Apache. Receptury. Wydanie II

1,125 views

Published on

Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci? Właśnie 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, które zadecydowały o sukcesie tego rozwiązania, to bezpieczeństwo, skalowalność, wielowątkowość i obsługa różnorodnych języków skryptowych.
Dzięki książce "Apache. Receptury" zapoznasz się z gotowymi przepisami na rozwiązanie ciekawych, specyficznych oraz intrygujących problemów. Nauczysz się instalować serwer z różnych źródeł oraz na różnych platformach. Dowiesz się, w jaki sposób zwiększyć jego bezpieczeństwo, jak uruchomić serwery wirtualne oraz poprawić wydajność Apache. Autorzy książki pokażą Ci, jak uruchomić obsługę języków skryptowych, tak aby serwowane strony stały się dynamiczne. Cała wiedza zostanie przedstawiona w sprawdzony w tej serii sposób: problem - rozwiązanie - analiza.


* Sposoby instalacji serwera Apache
* Dodawanie funkcjonalności dzięki modułom
* Możliwości rejestracji zdarzeń
* Konfiguracja serwerów wirtualnych
* Wykorzystanie aliasów, przekierowań oraz przepisań (mod_rewrite)
* Zarządzanie dostępem do serwowanych zasobów
* Bezpieczeństwo serwera Apache
* Wykorzystanie szyfrowanej transmisji - protokół SSL
* Zapewnienie wydajności
* Wykorzystanie języków skryptowych


Oto książka z najlepszymi przepisami na Apache!

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,125
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apache. Receptury. Wydanie II

  1. 1. 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³aœnie 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, które zadecydowa³y o sukcesie tego rozwi¹zania, to bezpieczeñstwo, skalowalnoœæ, wielow¹tkowoœæ i obs³uga ró¿norodnych jêzyków skryptowych. Dziêki ksi¹¿ce „Apache. Receptury” zapoznasz siê z gotowymi przepisami na rozwi¹zanie ciekawych, specyficznych oraz intryguj¹cych problemów. Nauczysz siê instalowaæ serwer z ró¿nych Ÿróde³ oraz na ró¿nych platformach. Dowiesz siê, w jaki sposób zwiêkszyæ jego bezpieczeñstwo, jak uruchomiæ serwery wirtualne oraz poprawiæ wydajnoœæ Apache. Autorzy ksi¹¿ki poka¿¹ Ci, jak uruchomiæ obs³ugê jêzyków skryptowych, tak aby serwowane strony sta³y siê dynamiczne. Ca³a wiedza zostanie przedstawiona w sprawdzony w tej serii sposób: problem – rozwi¹zanie – analiza. • Sposoby instalacji serwera Apache • Dodawanie funkcjonalnoœci dziêki modu³om • Mo¿liwoœci rejestracji zdarzeñ • Konfiguracja serwerów wirtualnych • Wykorzystanie aliasów, przekierowañ oraz przepisañ (mod_rewrite) • Zarz¹dzanie dostêpem do serwowanych zasobów • Bezpieczeñstwo serwera Apache • Wykorzystanie szyfrowanej transmisji - protokó³ SSL • Zapewnienie wydajnoœci • Wykorzystanie jêzyków skryptowychOto ksi¹¿ka z najlepszymi przepisami na Apache!Wydawnictwo Helionul. Koœciuszki 1c44-100 Gliwicetel. 032 230 98 63e-mail: helion@helion.pl
  2. 2. Spis treļciPrzedmowa ..............................................................................................................................11 1. Instalacja serwera ....................................................................................................... 19 1.1. Instalacja serwera z pakietów dystrybucji Red Hat Linux 20 1.2. Instalacja serwera z pakietów dystrybucji Debian 21 1.3. Instalacja serwera Apache w systemie Windows 22 1.4. Pobieranie plików Ēródäowych serwera Apache 27 1.5. Budowa serwera Apache z kodu Ēródäowego 29 1.6. Instalacja serwera Apache za pomocñ programu ApacheToolbox 30 1.7. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache 32 1.8. Usuniöcie serwera Apache 34 1.9. Której wersji serwera Apache uĔyè 35 1.10. Uaktualnienie serwera przy uĔyciu config.nice 37 1.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego 38 1.12. Przydatne opcje konfiguracyjne 39 1.13. Odnajdywanie plików serwera Apache 41 2. Instalacja moduĥów .....................................................................................................43 2.1. Instalacja typowego moduäu 44 2.2. Instalacja moduäu mod_dav w systemie uniksowym 45 2.3. Instalacja moduäu mod_dav w systemie Windows 47 2.4. Instalacja moduäu mod_perl w systemie uniksowym 49 2.5. Instalacja moduäu mod_php w systemie uniksowym 51 2.6. Instalacja moduäu mod_php w systemie Windows 52 2.7. Instalacja moduäu mod_ssl 53 2.8. Wyszukiwanie moduäów na witrynie modules.apache.org 54 2.9. Instalacja moduäu mod_security 55 2.10. Dlaczego ten moduä nie dziaäa? 57 3
  3. 3. 3. Rejestracja zdarzeħ .....................................................................................................59 3.1. Zwiökszenie szczegóäowoĈci zapisów dziennika zdarzeþ 62 3.2. Zwiökszenie liczby komunikatów o bäödach 63 3.3. Rejestracja zawartoĈci POST 65 3.4. Rejestracja adresu IP klienta äñczñcego siö poprzez serwer proxy 66 3.5. Rejestracja adresu MAC klienta 67 3.6. Rejestracja Cookies 67 3.7. Zaniechanie rejestracji Ĕñdaþ pobierania obrazów pochodzñcych ze stron lokalnych 69 3.8. Zmiana pliku dziennika zdarzeþ o okreĈlonej porze 70 3.9. Zmiana pliku dziennika zdarzeþ pierwszego dnia miesiñca 71 3.10. Rejestracja nazw komputerów zamiast ich adresów IP 72 3.11. Oddzielne pliki dzienników zdarzeþ serwerów wirtualnych 73 3.12. Rejestracja Ĕñdaþ proxy 75 3.13. Rejestracja komunikatów o bäödach róĔnych serwerów wirtualnych w róĔnych plikach 76 3.14. Rejestracja adresu IP serwera 77 3.15. Rejestracja stron, z których nadchodzñ Ĕñdania 78 3.16. Rejestracja nazw uĔywanych przeglñdarek 79 3.17. Rejestracja dowolnych pól nagäówka Ĕñdania 79 3.18. Rejestracja dowolnych pól nagäówka odpowiedzi 80 3.19. Rejestracja aktywnoĈci serwera w bazie danych MySQL 81 3.20. Rejestracja zdarzeþ w dzienniku systemowym 82 3.21. Rejestracja katalogów uĔytkowników 84 4. Serwery wirtualne ....................................................................................................... 87 4.1. Konfiguracja serwerów wirtualnych opartych na nazwach 88 4.2. Konfiguracja jednego z serwerów wirtualnych opartych na nazwach jako serwera domyĈlnego 90 4.3. Konfiguracja serwerów wirtualnych opartych na adresach 91 4.4. Konfiguracja jednego z serwerów wirtualnych opartych na adresach jako serwera domyĈlnego 92 4.5. Jednoczesne uĔycie serwerów wirtualnych opartych na adresach oraz na nazwach 93 4.6. Liczne serwery wirtualne obsäugiwane za pomocñ moduäu mod_vhost_alias 94 4.7. Liczne serwery wirtualne obsäugiwane za pomocñ reguä przepisania 96 4.8. Rejestracja zdarzeþ wszystkich serwerów wirtualnych 97 4.9. Podziaä pliku dziennika zdarzeþ 98 4.10. Serwery wirtualne oparte na portach 98 4.11. Ta sama zawartoĈè dostöpna pod kilkoma adresami IP 99 4.12. Definiowanie serwerów wirtualnych w bazie danych 1004 _ Spis treļci
  4. 4. 5. Aliasy, przekierowania oraz przepisania ................................................................. 103 5.1. Przyporzñdkowanie adresu URL do katalogu 103 5.2. Tworzenie dodatkowego adresu URL dla istniejñcej zawartoĈci 105 5.3. Przydzielenie uĔytkownikom ich wäasnych adresów URL 106 5.4. UtoĔsamienie kilku adresów URL za pomocñ pojedynczej dyrektywy 109 5.5. Przyporzñdkowanie kilku adresów URL do tego samego katalogu CGI 110 5.6. Tworzenie katalogów CGI dla kaĔdego uĔytkownika 110 5.7. Przekierowanie do innego miejsca 111 5.8. Przekierowanie kilku adresów URL w to samo miejsce 113 5.9. NierozróĔnianie wielkoĈci liter w adresach URL 114 5.10. WyróĔnianie skäadni kodu Ēródäowego PHP bez uĔycia dowiñzaþ symbolicznych 115 5.11. Wymiana ciñgów znaków w Ĕñdanych adresach URL 117 5.12. Zamiana informacji o ĈcieĔce na argumenty CGI 117 5.13. Odmowa dostöpu Ĕñdaniom pochodzñcym z obcych stron 118 5.14. Przekierowanie Ĕñdaþ pochodzñcych z obcych stron do strony z informacjami 119 5.15. Przepisanie na podstawie äaþcucha zapytania 120 5.16. Przekierowanie caäego lub czöĈci serwera do SSL 121 5.17. Zamiana nazw katalogów na nazwy serwerów 122 5.18. Przekierowanie wszystkich Ĕñdaþ do jednego serwera 123 5.19. Zamiana nazw dokumentów na argumenty programu 123 5.20. Przepisywanie elementów ĈcieĔki do ciñgu zapytania i odwrotnie 124 5.21. Przepisywanie nazwy serwera na nazwö katalogu 125 5.22. Przeksztaäcanie segmentów adresu URL w argumenty zapytania 126 5.23. UĔywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch 1266. Bezpieczeħstwo ......................................................................................................... 129 6.1. Wykorzystanie kont uĔytkowników do uwierzytelnienia dostöpu do zasobów WWW 130 6.2. Konfiguracja haseä jednorazowych 132 6.3. Wygasajñce hasäa 133 6.4. Ograniczanie wielkoĈci umieszczanych na serwerze plików 135 6.5. Ograniczenie pobierania obrazków ze stron znajdujñcych siö na innych serwerach 137 6.6. ēñdanie zarówno säabego, jak i silnego uwierzytelnienia 138 6.7. Zarzñdzanie plikami .htpasswd 139 6.8. Przygotowanie plików haseä uwierzytelniania typu Digest 141 6.9. RozluĒnienie ochrony w podkatalogu 142 6.10. Wybiórcze zniesienie ochrony 144 6.11. Autoryzacja za pomocñ informacji o wäaĈcicielu pliku 146 6.12. Przechowywanie poĈwiadczeþ uĔytkownika w bazie danych MySQL 147 Spis treļci _ 5
  5. 5. 6.13. Dostöp do nazwy uĔytkownika uwierzytelnionego 148 6.14. Uzyskanie hasäa uĔytego do uwierzytelnienia 149 6.15. Ochrona przed atakami na hasäa typu brute-force 150 6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic 151 6.17. Dostöp do poĈwiadczeþ osadzonych w adresach URL 153 6.18. Zabezpieczenie usäugi WebDAV 153 6.19. Uruchomienie usäugi WebDAV bez udzielenia zezwolenia na zapisywanie do plików uĔytkownikowi, z uprawnieniami którego dziaäa serwer 154 6.20. Ograniczanie dostöpu poprzez proxy do okreĈlonych adresów URL 156 6.21. Ochrona plików za pomocñ osäony 157 6.22. Ochrona plików serwera przed zäoĈliwymi skryptami 159 6.23. Nadanie prawidäowych uprawnieþ do plików 160 6.24. Uruchomienie serwera z minimalnñ liczbñ moduäów 163 6.25. Ograniczenie dostöpu do plików znajdujñcych siö poza katalogiem gäównym WWW 165 6.26. Ograniczenie metod dostöpnych dla uĔytkowników 166 6.27. Ograniczanie Ĕñdaþ zakresów 167 6.28. Obrona przed atakami DoS przy uĔyciu moduäu mod_evasive 168 6.29. Zmiana katalogu gäównego serwera Apache przy uĔyciu moduäu mod_security 170 6.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2 171 6.31. Blokowanie dziaäania robaków przy uĔyciu moduäu mod_security 172 6.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion 173 6.33. UĔywanie staäych przekierowaþ do ukrywania zablokowanych adresów URL 174 7. SSL ...............................................................................................................................177 7.1. Instalacja SSL 177 7.2. Instalacja SSL w systemie Windows 179 7.3. Tworzenie samodzielnie podpisanych certyfikatów SSL 179 7.4. Tworzenie zaufanego oĈrodka certyfikacyjnego 183 7.5. Udostöpnianie czöĈci witryny WWW poprzez SSL 185 7.6. Uwierzytelnianie za pomocñ certyfikatów klientów 187 7.7. Wirtualne serwery SSL 188 7.8. Certyfikaty wieloznaczne 189 8. Treļë dynamiczna .......................................................................................................191 8.1. Uaktywnienie katalogu CGI 191 8.2. Uaktywnienie skryptów CGI w katalogach niewyznaczonych za pomocñ dyrektywy ScriptAlias 193 8.3. Wskazywanie dokumentu domyĈlnego w katalogu CGI 194 8.4. Wykorzystanie rozszerzeþ plików systemu Windows do uruchamiana skryptów CGI 1956 _ Spis treļci
  6. 6. 8.5. Identyfikacja skryptów CGI na podstawie ich rozszerzeþ 197 8.6. Sprawdzenie, czy obsäuga programów CGI jest skonfigurowana poprawnie 198 8.7. Odczyt wartoĈci z formularza 200 8.8. Uruchamianie programu CGI dla pewnych rodzajów treĈci 203 8.9. UĔycie SSI 204 8.10. Przedstawienie daty ostatniej modyfikacji 206 8.11. Doäñczenie standardowego nagäówka 207 8.12. Doäñczanie wyniku dziaäania programu CGI 208 8.13. Uruchamianie za pomocñ programu suexec skryptów CGI z uprawnieniami innego uĔytkownika 208 8.14. Instalacja programu obsäugi moduäu mod_perl z serwisu CPAN 210 8.15. Pisanie programów obsäugi moduäu mod_perl 212 8.16. Uruchomienie obsäugi skryptów PHP 213 8.17. Weryfikacja instalacji PHP 214 8.18. Parsowanie danych wynikowych CGI z uwzglödnieniem dyrektyw Server Side Includes 215 8.19. Parsowanie danych wynikowych skryptów ScriptAlias z uwzglödnieniem dyrektyw Server Side Includes 216 8.20. Wyznaczenie mod_perl do obsäugi wszystkich skryptów w jözyku Perl 216 8.21. Wäñczenie obsäugi skryptów jözyka Python 217 9. Obsĥuga bĥýdów ........................................................................................................ 219 9.1. Obsäuga przypadku brakujñcego pola Host 219 9.2. Zmiana kodu stanu odpowiedzi za pomocñ skryptu CGI 220 9.3. Wäasne komunikaty o bäödach 221 9.4. Komunikaty o bäödach w róĔnych jözykach 222 9.5. Przekierowanie odwoäaþ do niepoprawnych adresów URL do innych stron 223 9.6. Prawidäowa strona komunikatu o bäödzie w programie Internet Explorer 224 9.7. Powiadamianie o bäödach 22510. Proxy .......................................................................................................................... 227 10.1. Zabezpieczenie serwera proxy 227 10.2. Zabezpieczenie serwera proxy przed uĔyciem go jako otwartego przekaĒnika poczty 229 10.3. Przekazywanie Ĕñdaþ do innego serwera 230 10.4. Blokowanie Ĕñdaþ proxy do okreĈlonych miejsc 231 10.5. Przeniesienie Ĕñdaþ obsäugiwanych przez mod_perl na inny serwer 232 10.6. Konfiguracja buforujñcego serwera proxy 233 10.7. Filtrowanie treĈci przekazywanych przez serwer proxy 234 10.8. Wymaganie uwierzytelnienia siö na serwerze dostöpnym poprzez proxy 235 Spis treļci _ 7
  7. 7. 10.9. RównowaĔenie obciñĔenia przy uĔyciu mod_proxy_balancer 235 10.10. Przekazywanie wywoäaþ z serwera wirtualnego 237 10.11. Blokowanie przekazywania wywoäaþ FTP 237 11. Wydajnoļë ..................................................................................................................239 11.1. OkreĈlenie iloĈci potrzebnej pamiöci RAM 239 11.2. Testowanie wydajnoĈci serwera Apache za pomocñ programu ab 240 11.3. Dobór ustawieþ dostöpu keepalive 242 11.4. OkreĈlenie stanu aktywnoĈci witryny WWW 243 11.5. Unikanie wyszukiwania w DNS 244 11.6. Optymalizacja dowiñzaþ symbolicznych 246 11.7. Ograniczanie wpäywu uĔycia plików .htaccess na wydajnoĈè serwera 247 11.8. Wyäñczenie negocjacji treĈci 249 11.9. Optymalizacja tworzenia procesów 250 11.10. Dobór parametrów tworzenia wñtków 251 11.11. Buforowanie najczöĈciej przeglñdanych plików 253 11.12. Równomierne rozäoĔenie obciñĔenia miödzy kilka serwerów 254 11.13. Buforowanie list zawartoĈci katalogu 256 11.14. PrzyĈpieszenie pracy programów Perl CGI za pomocñ moduäu mod_perl 257 11.15. Buforowanie treĈci dynamicznych 258 12. Zawartoļë katalogów ................................................................................................ 261 12.1. Generowanie listy zawartoĈci katalogu lub folderu 261 12.2. WyĈwietlanie standardowego nagäówka i stopki dla listy zawartoĈci katalogu 263 12.3. Wykorzystanie arkusza stylów 263 12.4. Ukrywanie wybranych elementów na liĈcie zawartoĈci 264 12.5. Wyszukiwanie konkretnych plików na liĈcie zawartoĈci katalogu 265 12.6. Sortowanie listy zawartoĈci 265 12.7. Sortowanie listy zawartoĈci w sposób wskazany przez klienta 266 12.8. Definiowanie sposobu formatowania listy zawartoĈci 268 12.9. Definiowanie sposobu formatowania przez klienta 268 12.10. Dodawanie opisów plików 269 12.11. Automatyczne generowanie tytuäów dokumentów 270 12.12. Zmiana ikon listy zawartoĈci 270 12.13. WyĈwietlanie katalogów na poczñtku listy 271 12.14. Porzñdkowanie wzglödem numeru wersji 272 12.15. Wäñczanie sortowania wzglödem numeru wersji przez uĔytkownika 273 12.16. Przydzielenie uĔytkownikowi peänej kontroli nad formatem listy zawartoĈci 273 12.17. Wyäñczenie moĔliwoĈci modyfikowania listy zawartoĈci przez uĔytkownika 274 12.18. Pomijanie wybranych kolumn na liĈcie zawartoĈci 275 12.19. WyĈwietlanie plików chronionych hasäem 276 12.20. WyĈwietlanie aliasów na liĈcie zawartoĈci 2778 _ Spis treļci
  8. 8. 13. Pozostaĥe zagadnienia .............................................................................................. 279 13.1. Poprawne umieszczanie dyrektyw 279 13.2. Zmiana nazw plików .htaccess 281 13.3. Tworzenie listy zawartoĈci katalogu 282 13.4. Rozwiñzanie „problemu koþcowego ukoĈnika” 283 13.5. Ustalenie zawartoĈci pola Content-Type w zaleĔnoĈci od moĔliwoĈci przeglñdarki 285 13.6. Obsäuga brakujñcego pola Host nagäówka 285 13.7. Inny domyĈlny dokument 286 13.8. Konfiguracja domyĈlnej „ulubionej ikony” 287 13.9. WyĈwietlanie listy zawartoĈci katalogów ScriptAlias 287 13.10. Wäñczanie obsäugi plików .htaccess 289 13.11. Przeksztaäcanie dyrektyw Server Side Includes z serwerów IBM lub Lotus do serwera Apache 290 A UŜycie wyraŜeħ regularnych ..................................................................................... 291 B Rozwiézywanie problemów ..................................................................................... 297Skorowidz ............................................................................................................................ 307 Spis treļci _ 9
  9. 9. ROZDZIAĤ 2. Instalacja moduĥówW pakiecie podstawowej dystrybucji serwera WWW Apache nie ma bardzo wielu popular-nych moduäów. WiökszoĈè z nich nie trafiäa do dystrybucji podstawowej z powodów licen-cyjnych lub z powodów zwiñzanych z obsäugñ technicznñ, inne nie sñ dystrybuowane przezApache Software Foundation, gdyĔ takñ decyzjö podjöli twórcy serwera, a jeszcze inne sñ in-tegralnñ czöĈciñ innych projektów. Na przykäad moduä mod_ssl dla serwera Apache 1.3 jesttworzony i rozwijany oddzielnie, nie tylko z powodu amerykaþskich ograniczeþ eksportowych(które byäy znacznie bardziej rygorystyczne w czasie, gdy pakiet powstawaä), ale gäówniedlatego, Ĕe wymaga on wprowadzenia zmian do jñdra serwera, na które nie zdecydowali siöjego twórcy.W niniejszym rozdziale przedstawiono receptury omawiajñce instalacjö niektórych najbar-dziej popularnych moduäów pochodzñcych spoza oficjalnej dystrybucji. JeĔeli zachodzi takapotrzeba, przedstawione sñ osobne receptury omawiajñce instalacjö moduäów w systemachuniksowych i instalacjö w systemie Windows.Najbardziej kompletna lista moduäów innych producentów znajduje siö na stronie Apache Mo-dule Registry pod adresem http://modules.apache.org/. Niektóre moduäy sñ tak popularne lubsñ tak zäoĔone, Ĕe poĈwiöcono im caäe strony internetowe. Tak jest na przykäad w przypadkumoduäów omówionych w tym rozdziale.Wielu twórców moduäów zajmuje siö tworzeniem tylko jednego moduäu. Oznacza to, Ĕe poten-cjalnie moĔe istnieè tyle sposobów instalacji moduäów, ile jest samych moduäów. Pierwsza re-ceptura tego rozdziaäu opisuje proces instalacji, który powinien byè odpowiedni dla wielumoduäów wersji 1.3 serwera Apache. Jednak w przypadku kaĔdego moduäu, naleĔy sprawdzièw jego dokumentacji, czy jego instalacja nie przebiega w inny sposób.Wiele z tych moduäów moĔna otrzymaè od firm, które tworzñ pakiety i dystrybuujñ opro-gramowanie Apache — na przykäad w postaci moduäów RPM firm Mandrake czy Red Hat.Jednak takie pakiety budowane sñ przy pewnych zaäoĔeniach poczynionych przez tworzñcñje firmö. Mówiñc inaczej — jeĔeli serwer zostaä zbudowany z plików Ēródäowych, a jego plikiznajdujñ siö w miejscach innych niĔ standardowe, nie naleĔy siö dziwiè, gdy instalacja jakie-goĈ moduäu siö nie powiedzie. 43
  10. 10. Wszystkie moduäy opisane w tym rozdziale sñ obsäugiwane przez wersjö 1.3 serwera Apachedziaäajñcñ w systemach uniksowych. Informacje na temat moduäów dla wersji 2.0 serweraoraz w przypadku systemu Windows zebrano w tabeli 2.1.Tabela 2.1. Obsäuga moduäów w systemie Windows oraz przez wersjö 2.0 serwera Apache Nazwa moduĥu Obsĥuga w systemie Windows Obsĥuga przez serwer Apache 2.0 mod_dav Tak Moduĥ doĥéczony do serwera — nie ma potrzeby instalowania. mod_perl Tak Tak mod_php Tak Tak mod_ssl Nie Moduĥ doĥéczony do serwera — nie ma potrzeby instalowania.2.1. Instalacja typowego moduĥuProblemNaleĔy zainstalowaè posiadany moduä, którego instalacja nie zostaäa omówiona osobno w tymrozdziale.RozwiézanieW katalogu, w którym znajduje siö plik Ēródäowy moduäu, naleĔy wydaè polecenie: % /Łcieška/do/serwera/apache/bin/apxs -cia moduĪ.cAnalizaGdy moduä skäada siö z pojedynczego pliku o rozszerzeniu .c, istnieje duĔe prawdopodobieþ-stwo, Ĕe moduä uda siö zbudowaè i zainstalowaè za pomocñ powyĔszego rozwiñzania. Mo-duäom skäadajñcym siö z kilku plików Ēródäowych powinny towarzyszyè instrukcje instalacji.Opcje -cia powodujñ kolejno kompilacjö, instalacjö, a nastöpnie aktywacjö moduäu. PierwszaczynnoĈè jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w którym bödziego poszukiwaä serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisuw pliku httpd.conf.Zobacz równieŜ x Strony podröcznika man dotyczñce programu apxs, przewaĔnie ServerRoot/man/man8/apxs.8.44 _ Rozdziaĥ 2. Instalacja moduĥów
  11. 11. 2.2. Instalacja moduĥu mod_dav w systemie uniksowymProblemNa serwerze WWW naleĔy uruchomiè usäugö WebDAV. Dziöki usäudze WebDAV zdalni uĔyt-kownicy mogñ dodawaè, usuwaè i uaktualniaè pliki znajdujñce siö na serwerze w sposóbniezawodny i bezpieczny, bez potrzeby korzystania z usäugi FTP.RozwiézanieModuä mod_dav jest doäñczony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywniè zapomocñ opcji kompilacji --enable-dav.W przypadku serwera Apache 1.3 pakiet Ēródäowy moduäu mod_dav naleĔy pobraè ze stronyhttp://webdav.org/mod_dav/, rozpakowaè, a nastöpnie wydaè polecenia: % cd mod_dav-1.0.3-1.3.6 % ./configure --with-apxs=/usr/local/apache/bin/apxs % make # make installNastöpnie naleĔy zatrzymaè i uruchomiè serwer ponownie oraz zapoznaè siö z recepturñ 6.18.AnalizaModuä mod_dav zachowuje siö poprawnie i äatwo daje siö zbudowaè i wäñczyè do dziaäajñce-go serwera. Aby sprawdziè, czy moduä zostaä zainstalowany poprawnie, trzeba na potrzebyusäugi WebDAV przeznaczyè na serwerze jakiĈ katalog i sprawdziè dostöp do niego za po-mocñ narzödzia wspomagajñcego WebDAV. Polecamy uĔycie do tego celu programu cadaver— korzystajñcego z wiersza poleceþ narzödzia typu open source. (Adres strony, z której moĔ-na pobraè program cadaver, znajduje siö na koþcu receptury).Aby uaktywniè na serwerze WWW usäugö WebDAV, naleĔy do pliku httpd.conf dodaè conajmniej dwie dyrektywy. Pierwsza wskazuje poäoĔenie bazy blokad plików, wykorzysty-wanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie ze sobñ niekolidowaäy. Baza musi znajdowaè siö katalogu, do którego serwer ma prawo zapisu. Naprzykäad: # cd /usr/local/apache # mkdir var # chgrp nobody var # chmod g+w varNastöpnie w pliku httpd.conf, poza wszystkimi kontenerami, naleĔy umieĈciè wiersze: <IfModule mod_dav.c> DAVLockDB /usr/local/apache/var/DAVlock </IfModule> 2.2. Instalacja moduĥu mod_dav w systemie uniksowym _ 45
  12. 12. Baza DAVLockDB nie moĔe znajdowaè siö w systemie plików typu NFS, gdyĔ NFS nie obsäuguje wymaganego przez moduä mod_dav sposobu blokowania plików. Umieszczenie bazy blokad plików w systemie plików typu NFS moĔe doprowadziè do nieprzewidywalnych skutków.Nastöpnie naleĔy utworzyè tymczasowy katalog säuĔñcy do przetestowania dziaäania usäugiWebDAV: # cd /usr/local/apache # mkdir htdocs/dav-test # chgrp nobody htdocs/dav-test # chmod g+w htdocs/dav-testTeraz do pliku httpd.conf naleĔy dodaè sekcjö przeznaczajñcñ utworzony katalog na potrzebyusäugi WebDAV: <Directory "/usr/local/apache/htdocs/dav-test"> DAV On </Directory>Nastöpnie naleĔy zatrzymaè i ponownie uruchomiè serwer, który po uruchomieniu powinienrozpoczñè obsäugö operacji WebDAV kierowanych pod lokalny identyfikator URI /dav-test.Aby przetestowaè dziaäanie WebDAV za pomocñ programu cadaver, naleĔy wydaè przedsta-wione polecenia, w wyniku czego powinno siö otrzymaè wyniki podobne do poniĔszych: % cd /tmp % echo "ZwykĨy tekst" > dav-test.txt % cadaver dav:!> open http://localhost/dav-test Looking up hostname... Connecting to server... connected. dav:/dav-test/> put dav-test.txt Uploading 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 1023 Setting property on dav-test.txt: (reconnecting...done) succeeded. dav:/dav-test/> propget dav-test.txt MyProp Fetching properties for dav-test.txt: Value of MyProp is: 1023 dav:/dav-test/> propdel dav-test.txt MyProp Deleting property on dav-test.txt: succeeded. dav:/dav-test/> close Connection to localhost closed. dav:!> exit % rm dav-test.txtW tym przypadku wäaĈciwoĈci (ang. properties) sñ atrybutami zasobów WebDAV. Niektóry-mi z nich (na przykäad rozmiarem zasobu) zarzñdza system, a inne mogñ byè dowolnie do-dawane, zmieniane i usuwane przez uĔytkownika.Po sprawdzeniu poprawnoĈci dziaäania moduäu mod_dav katalog htdocs/dav-test naleĔy usunñè,podobnie jak zwiñzanñ z nim sekcjö <Directory> pliku httpd.conf, a nastöpnie naleĔy zapo-znaè siö z recepturñ 6.18.Zobacz równieŜ x Receptura 6.18. x http://webdav.org/mod_dav/. x http://webdav.org/cadaver/.46 _ Rozdziaĥ 2. Instalacja moduĥów
  13. 13. 2.3. Instalacja moduĥu mod_dav w systemie WindowsProblemNa serwerze WWW Apache 1.3 dziaäajñcym w systemie Windows naleĔy za pomocñ moduäumod_dav uruchomiè usäugö WebDAV.RozwiézanieModuä mod_dav w wersji 2.0 serwera Apache znajduje siö standardowo, nie ma wiöc w takimprzypadku koniecznoĈci pobierania go i instalowania.Ze strony http://webdav.org/mod_dav/win32/ naleĔy pobraè i rozpakowaè pakiet moduäu mod_davprzeznaczony dla systemu Windows. Nastöpnie naleĔy sprawdziè, czy w katalogu ServerRoot(w katalogu gäównym serwera Apache) znajdujñ siö pliki xmlparse.dll oraz xmltok.dll. JeĔeli ichtam nie ma, naleĔy odnaleĒè je w innych katalogach serwera Apache, a nastöpnie skopiowaèje do katalogu ServerRoot. Do pracy moduä mod_dav potrzebuje pakietu Expat, który jestdoäñczany do serwera Apache poczñwszy od wersji 1.3.9. Poszukiwane pliki pochodzñ z pa-kietu Expat.Plik DLL moduäu mod_dav naleĔy przekopiowaè do katalogu, w którym znajdujñ siö moduäyserwera Apache: C:>cd mod_dav-1.0.3-dev C:mod_dav-1.0.3-dev>copy mod_dav.dll C:Apachemodules C:mod_dav-1.0.3-dev>cd ApacheW pliku httpd.conf naleĔy umieĈciè nastöpujñcy wiersz: LoadModule dav_module modules/mod_dav.dllJeĔeli plik httpd.conf zawiera dyrektywö ClearModuleList i dodaje wszystkie moduäy, naleĔyrównieĔ dodaè wiersz AddModule. MoĔna teĔ wiersz LoadModule dotyczñcy moduäu mod_davumieĈciè po dyrektywie ClearModuleList.AnalizaModuä mod_dav zachowuje siö poprawnie i äatwo daje siö zbudowaè i wäñczyè do dziaäajñce-go serwera. Aby sprawdziè, czy moduä zostaä zainstalowany poprawnie, trzeba na potrzebyusäugi WebDAV przeznaczyè na serwerze jakiĈ katalog i sprawdziè dostöp do niego za po-mocñ narzödzia wspomagajñcego WebDAV lub otworzyè go programem Eksplorator Windows(poczñwszy od systemu Windows 2000). MoĔna teĔ uzyskaè do niego dostöp z innego kom-putera za pomocñ programu cadaver lub innego narzödzia wspomagajñcego WebDAV.Aby uaktywniè na serwerze WWW usäugö WebDAV, naleĔy do pliku ServerRoot/conf/httpd.confdodaè co najmniej dwie dyrektywy. Pierwsza wskazuje poäoĔenie bazy blokad plików wyko-rzystywanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie niekolidowaäy ze sobñ. Baza musi znajdowaè siö w katalogu, do którego serwer ma prawo do za-pisu. Na przykäad: C:Apache-1.3>mkdir var 2.3. Instalacja moduĥu mod_dav w systemie Windows _ 47
  14. 14. ēeby uruchomiè usäugö WebDAV, do pliku httpd.conf naleĔy dodaè nastöpujñce wiersze: <IfModule mod_dav.c> DAVLockDB "C:/Apache-1.3/var/dav-lock" </IfModule>ēeby przetestowaè pracö moduäu mod_dav, naleĔy utworzyè tymczasowy katalog: C:Apache-1.3>mkdir htdocsdav-testNastöpnie, po to, by usäuga WebDAV rozpoczöäa udostöpnianie katalogu testowego, naleĔyzmieniè zawartoĈè kontenera <IfModule>: <IfModule mod_dav.c> DAVLockDB "C:/Apache-1.3/var/dav-lock" <Directory "C:/Apache-1.3/htdocs/dav-test"> DAV On </Directory> </IfModule>Teraz naleĔy zatrzymaè serwer i uruchomiè go ponownie, a nastöpnie spróbowaè otworzyèkatalog /dav-test za pomocñ klienta WebDAV. W przypadku zastosowania jako klienta Web-DAV dziaäajñcego w innym komputerze programu cadaver, przykäad jego uĔycia moĔna znaleĒèw recepturze 2.2. PoniĔej przedstawiono sposób testowania pracy moduäu mod_dav za pomocñprogramu Eksplorator Windows.Testowania pracy moduĥu mod_dav za pomocé programu Eksplorator WindowsPo przeznaczeniu katalogu htdocsdav-test na potrzeby usäugi WebDAV i ponownym urucho-mieniu serwera WWW Apache naleĔy uruchomiè program Eksplorator Windows. Aby uzyskaèdostöp do katalogu usäugi WebDAV, naleĔy wykonaè niĔej opisane czynnoĈci. MoĔna to zrobièna komputerze, na którym uruchomiono usäugö WebDAV lub na innym komputerze z systememWindows, który ma dostöp do tego komputera. 1. W programie Eksplorator Windows naleĔy kliknñè pozycjö Moje miejsca sieciowe1. 2. Nastöpnie w prawym oknie programu Eksplorator Windows naleĔy kliknñè dwukrotnie ikonö Dodaj miejsce sieciowe. 3. Jako lokalizacjö nowego miejsca sieciowego naleĔy wpisaè: http://127.0.0.1/dav-test/ Gdy czynnoĈci te wykonywane sñ w innym komputerze niĔ ten, w którym uruchomiono usäugö WebDAV, zamiast adresu 127.0.0.1 naleĔy wpisaè nazwö serwera, w którym uruchomiono moduä mod_dav. 4. Po naciĈniöciu przycisku Dalej naleĔy 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 gäównym oknie programu Eksplorator Windows naleĔy przejĈè do dowolnego katalogu zawierajñcego pliki.1 PoniĔsza procedura dotyczy systemów Windows 2000 lub Windows Me. W systemie Windows XP naleĔy kliknñè dwukrotnie znajdujñcñ siö na pulpicie ikonö Moje miejsca sieciowe, a nastöpnie ze znajdujñcego siö po lewej stronie panela Zadania sieciowe wybraè Dodaj miejsce sieciowe — przyp. täum.48 _ Rozdziaĥ 2. Instalacja moduĥów
  15. 15. 7. Przytrzymujñc wciĈniöty przycisk Ctrl, naleĔy przeciñgnñè do okna otwartego w punkcie 5. dowolny plik lub pliki. 8. System Windows powinien na krótko pokazaè okno informujñce o postöpie procesu ko- piowania, po czym kopiowany plik powinien znaleĒè siö w oknie docelowym.Gratulacje! Plik zostaä skopiowany do serwera za pomocñ usäugi WebDAV.Po zakoþczeniu testowania naleĔy usunñè katalog htdocsdav-test, a takĔe usunñè z pliku konfigu-racyjnego wiersz <Directory "C:/Apache-1.3/htdocs/dav-test">. W przeciwnym razie swojepliki bödzie mógä umieszczaè tam kaĔdy.Zobacz równieŜ x Receptura 6.18. x http://webdav.org/mod_dav/.2.4. Instalacja moduĥu mod_perl w systemie uniksowymProblemAby skrypty Perla byäy wykonywane szybciej i byäy lepiej obsäugiwane przez serwer WWW,naleĔy zainstalowaè moduä mod_perl.RozwiézanieW przypadku serwera Apache 1.3 ze strony http://perl.apache.org/ naleĔy pobraè pakiet Ēró-däowy moduäu mod_perl 1.0, rozpakowaè go, a nastöpnie wydaè nastöpujñce polecenia: % perl Makefile.PL > USE_APXS=1 > WITH_APXS=/usr/local/apache/bin/apxs > EVERYTHING=1 > PERL_USELARGEFILES=0 % make % make installNastöpnie naleĔy uruchomiè serwer ponownie.Dla serwera Apache 2.0 i wersji póĒniejszych proces przebiega analogicznie. NaleĔy pobraèi rozpakowaè pakiet Ēródäowy mod_perl 2.0, a nastöpnie wykonaè nastöpujñce polecenie: % perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxsAnalizaModuä mod_perl jest moduäem doĈè zäoĔonym. Na serwerze Apache moĔna zainstalowaè go nakilka sposobów. W recepturze przedstawiono sposób najszybszy i najprostszy. JeĔeli z jakichĈpowodów sposób ten jest nieodpowiedni, naleĔy zapoznaè siö z róĔnymi plikami README.* 2.4. Instalacja moduĥu mod_perl w systemie uniksowym _ 49
  16. 16. znajdujñcymi siö w katalogu pakietu. PoniewaĔ podstawowym jözykiem moduäu jest Perl,a nie C, instrukcja instalacji róĔni siö zdecydowanie od stosowanych w przypadku wiökszoĈciinnych moduäów.Gdy po instalacji moduäu serwer uruchomi siö poprawnie, moduä mod_perl rozpoczyna dziaäa-nie i jest skonfigurowany. Dziaäanie moduäu moĔna przetestowaè, dokonujñc zmian w plikuhttpd.conf, dodajñc kilka skryptów i obserwujñc, czy serwer obsäuguje je poprawnie. Otoprzykäad testowania dziaäania moduäu mod_perl. 1. Na potrzeby skryptów moduäu mod_perl naleĔy utworzyè nowy folder: # cd ServerRoot # mkdir lib lib/perl lib/perl/Apache 2. W katalogu conf/ serwera naleĔy utworzyè plik startup.pl zawierajñcy instrukcje urucho- mieniowe dla moduäu mod_perl: #!/usr/bin/perl BEGIN { 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. Nastöpnie naleĔy utworzyè wykorzystywany w teĈcie 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 moduĪu mod_perl.n"); return OK; } 1; 4. Teraz trzeba otworzyè do edycji plik konfiguracyjny serwera i umieĈciè w nim dyrekty- wy umoĔliwiajñce moduäowi mod_perl odnalezienie potrzebnych mu skäadników oraz in- formujñce go, kiedy ma uruchomiè skrypt testowy. Do pliku httpd.conf naleĔy dodaè na- stöpujñce wiersze: <IfModule mod_perl.c> PerlRequire conf/startup.pl <Location /mod_perl/howdy> SetHandler perl-script PerlHandler Apache::HelloWorld </Location> </IfModule> 5. Teraz naleĔy uruchomiè serwer ponownie, a nastöpnie uruchomiè skrypt, wpisujñc: http://localhost/mod_perl/howdy.JeĔeli konfiguracja jest poprawna, pojawi siö strona zawierajñce zdanie: „Witaj Ĉwiecie! Po-zdrowienia od moduäu mod_perl.”.50 _ Rozdziaĥ 2. Instalacja moduĥów
  17. 17. Zobacz równieŜ x http://perl.apache.org/. x KsiñĔka Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz Lincoln Stein, wydawnictwo OReilly. x KsiñĔka mod_perl Developers Cookbook, autorzy Geoffrey Young, Paul Lindner oraz Randy Kobes wydawnictwo Sams2.2.5. Instalacja moduĥu mod_php w systemie uniksowymProblemDo dziaäajñcego serwera WWW Apache naleĔy dodaè moduä obsäugi skryptów mod_php.RozwiézaniePakiet Ēródäowy moduäu mod_php naleĔy pobraè ze strony http://php.net/, rozpakowaè go, a na-stöpnie wydaè nastöpujñce polecenia: % cd php-5.2.3 % ./configure > --with-apxs=/usr/local/apache/bin/apxs % make # make installNastöpnie naleĔy uruchomiè serwer ponownie.AnalizaAby przekonaè siö, Ĕe instalacja zakoþczyäa siö powodzeniem, w katalogu DocumentRoot ser-wera WWW naleĔy utworzyè skäadajñcy siö z jednego wiersza plik info.php: <?php phpinfo( ); ?>Do pliku konfiguracyjnego httpd.conf naleĔy dodaè poniĔsze wiersze: <IfModule mod_php4.c> AddHandler application/x-httpd-php .php </IfModule>Po ponownym uruchomieniu serwera WWW naleĔy za pomocñ przeglñdarki spróbowaèotworzyè dokument info.php. W wyniku tego powinien pojawiè siö szczegóäowy opis aktyw-nych opcji PHP. JeĔeli opis rzeczywiĈcie siö pojawi, bödzie to wskazywaè, Ĕe instalacja zakoþ-czyäa siö pomyĈlnie i plik info.php moĔna usunñè.Podczas instalacji PHP moĔna zastosowaè wiele opcji i rozszerzeþ, w tej recepturze omówio-no tylko najprostszy sposób instalacji moduäu.2 Polskie wydanie: mod_perl. Podröcznik programisty, Helion 2003 — przyp. red. 2.5. Instalacja moduĥu mod_php w systemie uniksowym _ 51
  18. 18. Zobacz równieŜ x Receptura 8.16. x Receptura 8.17. x http://php.net/.2.6. Instalacja moduĥu mod_php w systemie WindowsProblemDo dziaäajñcego w systemie Windows serwera WWW Apache naleĔy dodaè moduä obsäugiskryptów mod_php.RozwiézanieW tej recepturze zamiast podawania szczegóäowych poleceþ czynnoĈci, które naleĔy wyko-naè, przedstawione zostanñ w sposób opisowy. 1. Ze strony http://php.net/ naleĔy pobraè plik binarny .zip (a nie plik .exe) PHP dla systemu Windows zawierajñcego rozszerzenia API. 2. Plik .zip naleĔy rozpakowaè do katalogu, w którym zawartoĈè pliku moĔe pozostaè na zawsze (na przykäad do katalogu C:PHP4). W przypadku uĔycia programu WinZip na- leĔy zaznaczyè pole wyboru Use folder names, aby utworzona zostaäa taka struktura pli- ków jak umieszczona w pliku .zip. 3. Do katalogu modules znajdujñcego siö w katalogu ServerRoot serwera Apache naleĔy przekopiowaè plik PHP4SAPIphp4apache.dll. 4. W oknie wiersza polecenia naleĔy przejĈè do katalogu PHP4, do którego zostaä rozpako- wany plik .zip, a nastöpnie wydaè polecenia: ...PHP4>copy php.ini-dist %SYSTEMROOT%php.ini ...PHP4>copy php4ts.dll %SYSTEMROOT% (W przypadku systemów Windows 95 oraz Windows 98 zamiast %SYSTEMROOT% naleĔy uĔyè %WINDOWS%). 5. Nastöpnie naleĔy otworzyè do edycji plik %SYSTEMROOT%php.ini, odnaleĒè w nim wiersz zaczynajñcy siö od extension_dir i zmieniè jego wartoĈè tak, by wskazywaäa na katalog PHP4extensions. Gdy, na przykäad, plik .zip zostaä rozpakowany do katalogu C:PHP4, wiersz ten powinien wyglñdaè nastöpujñco: extension_dir = C:PHP4extensions 6. Nastöpnie trzeba otworzyè do edycji plik confhttpd.conf znajdujñcy siö w katalogu ServerRoot i w pobliĔu innych wierszy LoadModule naleĔy dodaè wiersz: LoadModule php4_module modules/php4apache.dll W pobliĔu naleĔy umieĈciè równieĔ wiersze dotyczñce plików .php: <IfModule mod_php4.c> AddType application/x-httpd-php .php </IfModule>52 _ Rozdziaĥ 2. Instalacja moduĥów
  19. 19. 7. Na koniec naleĔy zrestartowaè serwer Apache, w wyniku czego moduä PHP powinien siö uaktywniè.AnalizaAby zainstalowaè moduä PHP w systemie Windows, naleĔy wykonaè wiele drobiazgowychczynnoĈci. ēeby przekonaè siö, Ĕe proces instalacji zakoþczyä siö powodzeniem, w kataloguDocumentRoot serwera naleĔy utworzyè skäadajñcy siö z jednego wiersza plik info.php: <?php phpinfo( ); ?>Po ponownym uruchomieniu siö serwera WWW naleĔy za pomocñ przeglñdarki spróbowaèotworzyè dokument info.php. W wyniku tego powinien pojawiè siö szczegóäowy opis aktyw-nych opcji PHP.W czasie instalacji PHP moĔna zastosowaè wiele opcji i rozszerzeþ, w tej recepturze omó-wiono tylko najprostszy sposób instalacji moduäu. Wiöcej szczegóäów na ten temat moĔnaznaleĒè w pliku install.txt znajdujñcym siö w katalogu PHP4 oraz w dokumentacji znajdujñcejsiö na stronach WWW.Zobacz równieŜ x http://php.net/.2.7. Instalacja moduĥu mod_sslProblemDo dziaäajñcego serwera WWW Apache naleĔy dodaè obsäugö SSL, instalujñc w nim mod_ssl— moduä bezpiecznego HTTP.RozwiézanieWindows Sposób instalacji protokoäu SSL w systemie Windows jest tematem receptury 7.2. Mówiñc w najwiökszym skrócie, najlepiej jest pobraè XAMPP z witryny ApacheFriends.org, chyba Ĕe posiada siö odpowiednie doĈwiadczenie w budowaniu kodu Ēródäowego w systemie Microsoft Windows.Apache 2.0 Moduä mod_ssl zostaä wäñczony do wersji 2.0 serwera Apache, ale w przypadku budowy serwera z kodu Ēródäowego, moduä nie jest automatycznie kompilowany ani instalowany. Aby w takim przypadku zainstalowaè moduä mod_ssl, naleĔy w poleceniu ./configure zastosowaè opcjö --enable-ssl oraz uaktywniè moduä dyrektywami LoadModule oraz AddModule.Apache 1.3 Aby zainstalowaè moduä mod_ssl w systemie uniksowym, ze strony http://www.modssl. org/ naleĔy pobraè i rozpakowaè archiwum tar moduäu, a nastöpnie wydaè polecenia: 2.7. Instalacja moduĥu mod_ssl _ 53
  20. 20. % 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 certificateAnalizaēeby moduä mod_ssl mógä dziaäaè, kod Ēródäowy serwera Apache musi zostaè zmodyfikowany.Dziöki temu moĔna zainstalowaè tylko takñ wersjö pakietu mod_ssl, która odpowiada wersji po-siadanej dystrybucji serwera Apache. JeĔeli instalacja serwera Apache nie zawiera plików Ēró-däowych (co ma miejsce na przykäad w przypadku instalacji serwera z pakietu RPM czy z innejtego typu dystrybucji) — instalacja moduäu mod_ssl nie powiedzie siö.Poza kodami Ēródäowymi serwera Apache do zainstalowania moduäu mod_ssl potrzebne sñjeszcze Perl oraz biblioteki OpenSSL. Ich poäoĔenie okreĈla siö za pomocñ opcji --with-ssl.JeĔeli biblioteki znajdujñ siö w katalogu utworzonym przez ich dostawcö, säowo kluczoweSYSTEM poinformuje, Ĕe naleĔy ich szukaè wäaĈnie tam, dziöki czemu nie trzeba bödzie ichszukaè samemu.W przeciwieþstwie do wiökszoĈci innych moduäów serwera Apache, aby zainstalowaè moduämod_ssl, naleĔy uruchomiè skrypt ./configure znajdujñcy siö w katalogu moduäu mod_ssl, a niew katalogu plików Ēródäowych serwera Apache. Skrypt moduäu wprowadza odpowiedniezmiany do skryptu serwera, a nastöpnie uruchamia go.W tej recepturze omówiono jedynie podstawowy sposób instalacji moduäu mod_ssl. W czasiekonfiguracji moduäu mod_ssl moĔna zleciè moduäowi wykorzystanie wielu dodatkowychskäadników oraz funkcji. Wiöcej informacji na ten temat moĔna znaleĒè w plikach READMEoraz INSTALL znajdujñcych w katalogu plików Ēródäowych moduäu mod_ssl lub na stronieWWW http://www.modssl.org/.Zobacz równieŜ x Receptura 7.3. x http://www.modssl.org/.2.8. Wyszukiwanie moduĥów na witrynie modules.apache.orgProblemTrzeba znaleĒè moduäy serwera Apache udostöpniajñce okreĈlone funkcje lub noszñce okre-Ĉlone nazwy. Wiadomo jednoczeĈnie, Ĕe istnieje rejestr moduäów serwera Apache.3 Nazwa katalogu zaleĔna jest od instalowanej wersji mod_ssl. — przyp. red.54 _ Rozdziaĥ 2. Instalacja moduĥów
  21. 21. RozwiézanieNa witrynie http://modules.apache.org naleĔy podaè säowa kluczowe odnoszñce siö do poszu-kiwanych funkcji lub fragment nazwy moduäu i przeprowadziè wyszukiwanie.AnalizaRejestr moduäów serwera Apache to nieoficjalna witryna internetowa, na której autorzy mo-duäów z wäasnej inicjatywy mogñ zarejestrowaè efekty swoich prac, aby udostöpniè je innymuĔytkownikom. Wspomniana witryna w Ĕadnym wypadku nie zawiera wszystkich moduäów serwe- ra Apache; wiele z nich jest dostöpnych na witrynie SourceForge albo na domowych witrynach ich autorów. JeĔeli poszukiwany moduä nie zostanie znaleziony na http://modules.apache.org, moĔna spróbowaè go poszukaè na witrynie SourceForge (pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostu przeszukaè internet przy uĔyciu Google lub innej wyszukiwarki internetowej.Zobacz równieŜ x http://sourceforge.net. x http://freshmeat.net.2.9. Instalacja moduĥu mod_securityProblemTrzeba zainstalowaè moduä mod_security, aby skorzystaè z udostöpnianych przez niego pro-stych, a jednoczeĈnie rozbudowanych mechanizmów filtrujñcych.RozwiézanieNaleĔy wykonaè nastöpujñce czynnoĈci: 1. Pobraè moduä mod_security oraz gäówne reguäy moduäu z witryny http://modules.apache.org. Aby znaleĒè moduä do pobrania na podanej stronie WWW, naleĔy skorzystaè z pozycji menu Browse lub Search. Po pobraniu moduäu warto sprawdziè jego sygnaturö PGP, aby upewniè siö, Ĕe plik nie ulegä zmianie. Wiöcej informacji na ten temat znajduje siö na witrynie internetowej moduäu mod_security. 2. Rozpakowaè zestaw (bez reguä) do katalogu roboczego: % cd /usr/local/build % tar xzf /usr/local/kits/modsecurity-apache_2.1.1 2.9. Instalacja moduĥu mod_security _ 55
  22. 22. 3. PrzejĈè do rozpakowanego katalogu i zbudowaè pakiet, wykorzystujñc dostarczony wraz z 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 odróĔnieniu od innych moduäów dostawców zewnötrznych mod_security trzeba budowaè przy uĔyciu jego wäasnych mechanizmów, a nie przez zwykäe wywoäanie narzödzia apxs serwera Apache. 4. Rozpakowaè gäówne reguäy 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è nastöpujñce wiersze: LoadModule security_module modules/mod_security2.so Include conf/mod_security/*.conf 6. Zrestartowaè serwer.AnalizaSkrypt Makefile doäñczony do pakietu mod_security zbuduje moduä i umieĈci go w odpowied-niej lokalizacji, lecz ponowne wäñczenie serwera jest juĔ powinnoĈciñ samego uĔytkownika.Najnowsze wersje pakietu zawierajñ zestaw gäównych reguä obsäugujñcych przypadki takiejak spamowanie blogów czy najczöĈciej spotykane ataki. Reguäy sñ równieĔ dostöpne w od-dzielnym archiwum tar, które moĔe byè uaktualniane niezaleĔnie od reguä doäñczanych dosamego moduäu.Aktualna wersja moduäu mod_security obsäuguje wyäñcznie serwer Apache w wersji 2. Dostöpnajest równieĔ starsza wersja obsäugujñca wersjö 1.3 serwera, lecz jest maäo prawdopodobne, bybyäa utrzymywana przez däuĔszy czas.Zobacz równieŜ x Witryna internetowa moduäu mod_security pod adresem http://modsecurity.org.56 _ Rozdziaĥ 2. Instalacja moduĥów
  23. 23. 2.10. Dlaczego ten moduĥ nie dziaĥa?ProblemPomimo próby zainstalowania moduäu pochodzñcego od dostawcy zewnötrznego serwer WWWApache nie rozpoznaje go.RozwiézanieNaleĔy sprawdziè kod Ēródäowy moduäu, jego dokumentacjö albo zwróciè siö bezpoĈredniodo autora moduäu, aby ustaliè wersjö serwera Apache obsäugiwanñ przez moduä.AnalizaW miarö wprowadzania do serwera Apache kolejnych znaczñcych zmian moĔe siö zdarzyè,Ĕe zmiana w API serwera doprowadzi do powstania niezgodnoĈci jego moduäów. Wpraw-dzie twórcy rozwijajñcy serwer dñĔñ do tego, by podobne niezgodnoĈci zdarzaäy siö jak naj-rzadziej, lecz czasami jest to po prostu nieuniknione.Aby zapobiec äadowaniu niezgodnego moduäu i uniknñè w ten sposób zaäamania serweraWWW, zarówno w module, jak i w samym serwerze umieszczono wbudowany, „magiczny”numer zapisywany w momencie ich budowania, wskazujñcy wersjö API. Gdy serwer spróbujezaäadowaè moduä DSO, najpierw porówna numer wersji w module z wäasnym numerem wersjizapisanym na serwerze. JeĔeli okaĔe siö, Ĕe numery wersji sñ niezgodne, serwer nie zaäadujemoduäu.Zespóä rozwijajñcy serwer dñĔy do utrzymania zgodnoĈci miödzy numerami wersji gäównych,lecz nie miödzy róĔnymi numerami wersji gäównych. Inaczej mówiñc, moduä zbudowany dlaserwera Apache 1.3 powinien dziaäaè z praktycznie wszystkimi wersjami 1.3 serwera zbudo-wanymi po dacie budowy moduäu, natomiast na pewno nie bödzie obsäugiwaè serwera w wer-sji 2.0. I odwrotnie: moduä dla wersji 2.0 w Ĕadnym wypadku nie bödzie wspóäpracowaä z ser-werem w wersji 1.3.Zobacz równieŜ x Rejestr moduäów serwera Apache pod adresem http://modules.apache.org. 2.10. Dlaczego ten moduĥ nie dziaĥa? _ 57

×