Apache_Receptury_aparec.pdf

(666 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
Apache. Receptury
Autorzy: Ken Coar, Rich Bowen
T³umaczenie: Witold Zio³o
ISBN: 83-7361-416-8
Tytu³ orygina³u:
Apache Cookbook
Format: B5, stron: 280
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Apache jest najpopularniejszym obecnie serwerem WWW na wiecie, co potwierdzaj¹
badania i statystyki. Wiêkszo æ witryn WWW dzia³a w³a nie na bazie tego serwera.
Apache jest kolejnym, po Linuksie, potwierdzeniem fenomenu ruchu open source.
Dokumentacja Apache dostêpna w sieci opisuje proces instalacji i konfiguracji serwera,
co nie zawsze jest wystarczaj¹ce, poniewa¿ administrowanie serwerem WWW
dzia³aj¹cym pod kontrol¹ Apache wymaga czêsto rozwi¹zywania problemów
pojawiaj¹cych siê w trakcie pracy. Dziêki ogromnej spo³eczno ci u¿ytkowników,
¿adne wo³anie o pomoc w sieci nie zostanie zignorowane, czêsto jednak odpowied
jest potrzebna natychmiast.
Ksi¹¿ka „Apache. Receptury” jest zbiorem gotowych rozwi¹zañ najczê ciej
pojawiaj¹cych siê problemów i w¹tpliwo ci, przeznaczonym dla administratorów,
programistów i innych u¿ytkowników Apache. Opisane w ksi¹¿ce problemy s¹
rzeczywiste -- przydarzy³y siê autorom lub osobom zwracaj¹cych siê do nich o pomoc.
Ka¿de zagadnienie omówione jest w ten sam sposób -- problem, analiza i rozwi¹zanie.
Zalet¹ takiego przedstawienia informacji jest to, ¿e Czytelnik dowiaduje siê nie tylko,
co powinien zrobiæ, ale równie¿ dlaczego powinien post¹piæ tak a nie inaczej.
Wyja nienia zamieszczonych w ksi¹¿ce kodów pomog¹ równie¿ dostosowaæ je
do innych przypadków.
Ksi¹¿ka zawiera rozwi¹zania problemów wystêpuj¹cych przy ró¿nych czynno ciach —
od instalacji serwera, a¿ do obs³ugi szyfrowania SSL. Znajduj¹ce siê w niej informacje
pomog¹ Czytelnikowi przy nastêpuj¹cych przedsiêwziêciach:
• Instalacja Apache w systemach Linux i Windows
• Instalowanie dodatkowych modu³ów
• Rejestracja zdarzeñ i analizowanie dziennika zdarzeñ serwera
• Konfigurowanie i obs³uga serwerów wirtualnych
• Tworzenie aliasów, przekierowañ i przypisañ
• Zwiêkszenie poziomu bezpieczeñstwa serwera
• Praca z szyfrowaniem SSL
• Konfigurowanie obs³ugi skryptów CGI i PHP
• Obs³uga b³êdów
• Praca z serwerem proxy
• Optymalizacja i poprawa wydajno ci dzia³ania serwera
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
5RKU VTG EK
Przedmowa .....................................................................................................................11
Rozdział 1. Instalacja serwera....................................................................................17
1.1. Instalacja serwera z pakietów dystrybucji Red Hat Linux ..................................................18
1.2. Instalacja serwera Apache w systemie Windows .................................................................19
1.3. Pobieranie plików źródłowych serwera Apache ..................................................................25
1.4. Budowa serwera Apache z kodu źródłowego.......................................................................27
1.5. Instalacja serwera Apache za pomocą programu ApacheToolbox ....................................29
1.6. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache..............31
1.7. Usunięcie serwera Apache........................................................................................................33
Rozdział 2. Instalacja modułów.................................................................................35
2.1. Instalacja typowego modułu ....................................................................................................36
2.2. Instalacja modułu mod_dav w systemie uniksowym ..........................................................37
2.3. Instalacja modułu mod_dav w systemie Windows ..............................................................39
2.4. Instalacja modułu mod_perl w systemie uniksowym..........................................................42
2.5. Instalacja modułu mod_php w systemie uniksowym..........................................................44
2.6. Instalacja modułu mod_php w systemie Windows..............................................................45
2.7. Instalacja modułu mod_snake Python....................................................................................46
2.8. Instalacja modułu mod_ssl .......................................................................................................47
Rozdział 3. Rejestracja zdarzeń..................................................................................49
3.1. Zwiększenie szczegółowości zapisów dziennika zdarzeń ..................................................53
3.2. Zwiększenie liczby komunikatów o błędach.........................................................................53
3.3. Rejestracja zawartości POST .....................................................................................................56
4
Spis treści
3.4. Rejestracja adresu IP klienta łączącego się poprzez serwer proxy.....................................57
3.5. Rejestracja adresu MAC klienta ...............................................................................................57
3.6. Rejestracja Cookies .....................................................................................................................58
3.7. Zaniechanie rejestracji żądań pobierania obrazów pochodzących ze stron lokalnych...60
3.8. Zmiana pliku dziennika zdarzeń o określonej porze dnia ..................................................61
3.9. Zmiana pliku dziennika zdarzeń pierwszego dnia miesiąca..............................................62
3.10. Rejestracja nazw komputerów zamiast ich adresów IP .......................................................63
3.11. Oddzielne pliki dzienników zdarzeń serwerów wirtualnych ............................................65
3.12. Rejestracja żądań proxy.............................................................................................................66
3.13. Rejestracja komunikatów o błędach różnych serwerów wirtualnych
w różnych plikach ...................................................................................................................67
3.14. Rejestracja adresu IP serwera ...................................................................................................68
3.15. Rejestracja stron, z których nadchodzą żądania....................................................................69
3.16. Rejestracja nazw używanych przeglądarek ...........................................................................70
3.17. Rejestracja dowolnych pól nagłówka żądania.......................................................................71
3.18. Rejestracja dowolnych pól nagłówka odpowiedzi ...............................................................72
3.19. Rejestracja aktywności serwera w bazie danych MySQL ....................................................73
3.20. Rejestracja zdarzeń w dzienniku systemowym.....................................................................74
3.21. Rejestracja katalogów użytkowników.....................................................................................76
Rozdział 4. Serwery wirtualne ....................................................................................79
4.1. Konfiguracja serwerów wirtualnych opartych na nazwach................................................80
4.2. Konfiguracja jednego z serwerów wirtualnych opartych na nazwach
jako serwera domyślnego .......................................................................................................82
4.3. Konfiguracja serwerów wirtualnych opartych na adresach................................................83
4.4. Konfiguracja jednego z serwerów wirtualnych opartych na adresach
jako serwera domyślnego .......................................................................................................84
4.5. Jednoczesne użycie serwerów wirtualnych opartych na adresach oraz na nazwach.....85
4.6. Liczne serwery wirtualne obsługiwane za pomocą modułu mod_vhost_alias ...............86
4.7. Liczne serwery wirtualne obsługiwane za pomocą reguł przepisania .............................88
4.8. SSL i serwery wirtualne oparte na nazwach..........................................................................89
4.9. Rejestracja zdarzeń wszystkich serwerów wirtualnych.......................................................90
4.10. Podział pliku dziennika zdarzeń .............................................................................................91
4.11. Serwery wirtualne oparte na portach .....................................................................................92
4.12. Ta sama zawartość dostępna pod kilkoma adresami IP......................................................93
Spis treści
5
Rozdział 5. Aliasy, przekierowania oraz przepisania............................................95
5.1. Wyróżnianie składni kodu źródłowego PHP bez użycia dowiązań symbolicznych......95
5.2. Przyporządkowanie adresu URL do katalogu ......................................................................97
5.3. Tworzenie dodatkowego adresu URL dla istniejącej zawartości .......................................98
5.4. Przydzielenie użytkownikom ich własnych adresów URL.................................................99
5.5. Utożsamienie kilku adresów URL za pomocą pojedynczej dyrektywy..........................102
5.6. Przyporządkowanie kilku adresów URL do tego samego katalogu CGI .......................103
5.7. Tworzenie katalogów CGI dla każdego użytkownika.......................................................104
5.8. Przekierowanie do innego miejsca ........................................................................................105
5.9. Przekierowanie kilku adresów URL w to samo miejsce....................................................107
5.10. Nierozróżnianie wielkości liter w adresach URL................................................................107
5.11. Wymiana ciągów znaków w żądanych adresach URL ......................................................108
5.12. Zamiana informacji o ścieżce na argumenty CGI ...............................................................109
5.13. Odmowa dostępu żądaniom pochodzącym z obcych stron .............................................110
5.14. Przepisanie na podstawie łańcucha zapytania ....................................................................111
5.15. Przekierowanie całego lub części serwera do SSL ..............................................................112
5.16. Zamiana nazw katalogów na nazwy serwerów..................................................................113
5.17. Przekierowanie wszystkich żądań do jednego serwera.....................................................114
5.18. Zamiana nazw dokumentów na argumenty programu ....................................................115
Rozdział 6. Bezpieczeństwo.......................................................................................117
6.1. Wykorzystanie kont użytkowników do uwierzytelnienia dostępu
do zasobów WWW ................................................................................................................118
6.2. Konfiguracja haseł jednorazowych........................................................................................121
6.3. Wygasające hasła ......................................................................................................................122
6.4. Ograniczanie wielkości umieszczanych na serwerze plików ...........................................124
6.5. Ograniczenie pobierania obrazków ze stron znajdujących się na innych serwerach ...126
6.6. Żądanie zarówno słabego, jak i silnego uwierzytelnienia.................................................127
6.7. Zarządzanie plikami .htpasswd.............................................................................................128
6.8. Przygotowanie plików haseł uwierzytelniania typu Digest .............................................130
6.9. Rozluźnienie ochrony w podkatalogu ..................................................................................131
6.10. Wybiórcze zniesienie ochrony................................................................................................134
6.11. Autoryzacja za pomocą informacji o właścicielu pliku......................................................135
6.12. Przechowywanie poświadczeń użytkownika w bazie danych MySQL..........................136
6.13. Dostęp do nazwy użytkownika uwierzytelnionego...........................................................138
6.14. Uzyskanie hasła użytego do uwierzytelnienia....................................................................139
6.15. Ochrona przed atakami na hasła, typu brute-force ............................................................140
6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic ...........................................141
6
Spis treści
6.17. Dostęp do poświadczeń osadzonych w adresach URL .....................................................142
6.18. Zabezpieczenie usługi WebDAV ...........................................................................................143
6.19. Uruchomienie usługi WebDAV bez udzielenia zezwolenia na zapisywanie
do plików użytkownikowi, z uprawnieniami którego działa serwer...............................144
6.20. Ograniczanie dostępu poprzez proxy do określonych adresów URL.............................145
6.21. Ochrona plików za pomocą osłony.......................................................................................147
6.22. Zniesienie ochrony pewnej grupy plików............................................................................149
6.23. Ochrona plików serwera przed złośliwymi skryptami .....................................................150
6.24. Nadanie prawidłowych uprawnień do plików...................................................................151
6.25. Uruchomienie serwera z minimalną liczbą modułów .......................................................154
6.26. Ograniczenie dostępu do plików znajdujących się
poza katalogiem głównym WWW......................................................................................156
6.27. Ograniczenie metod dostępnych dla użytkowników ........................................................157
6.28. Ograniczanie żądań zakresów ...............................................................................................158
Rozdział 7. SSL ............................................................................................................161
7.1. Instalacja SSL.............................................................................................................................161
7.2. Tworzenie certyfikatów SSL ...................................................................................................163
7.3. Tworzenie zaufanego ośrodka certyfikacyjnego .................................................................166
7.4. Udostępnianie części witryny WWW poprzez SSL............................................................168
7.5. Uwierzytelnianie za pomocą certyfikatów klientów..........................................................170
Rozdział 8. Treść dynamiczna...................................................................................171
8.1. Uaktywnienie katalogu CGI ...................................................................................................171
8.2. Uaktywnienie skryptów CGI w katalogach niewyznaczonych
za pomocą dyrektywy ScriptAlias ......................................................................................172
8.3. Wykorzystanie rozszerzeń plików systemu Windows
do uruchamiana skryptów CGI...........................................................................................173
8.4. Identyfikacja skryptów CGI na podstawie ich rozszerzeń................................................175
8.5. Sprawdzenie, czy obsługa programów CGI jest skonfigurowana poprawnie...............176
8.6. Odczyt wartości z formularza ................................................................................................179
8.7. Uruchamianie programu CGI dla pewnych rodzajów treści............................................181
8.8. Użycie SSI ..................................................................................................................................183
8.9. Przedstawienie daty ostatniej modyfikacji...........................................................................185
8.10. Dołączenie standardowego nagłówka ..................................................................................185
8.11. Dołączanie wyniku działania programu CGI......................................................................187
8.12. Uruchamianie za pomocą programu suexec skryptów CGI
z uprawnieniami innego użytkownika ..............................................................................187
Zgłoś jeśli naruszono regulamin