Internet to nie tylko niezmierzone źródło informacji. To także zagrożenie dla serwerów WWW, aplikacji internetowych i baz danych, które codziennie są atakowane przez komputerowych przestępców, korzystających z dziesiątek technik. Publikowane regularnie raporty o cyberprzestępczości są zatrważające. Liczba ataków na serwery internetowe wzrasta corocznie średnio o 30%. Wśród atakowanych serwerów przeważają te, na których utrzymywane są witryny WWW i aplikacje. Według raportu firmy Symantec, 'aplikacje WWW są popularnymi celami ataków z uwagi na ich rozpowszechnienie i fakt, że pozwalają włamywaczom na pominięcie tradycyjnych mechanizmów zabezpieczających, takich jak firewalle'. W tym samym raporcie można również przeczytać, że prawie 50% luk w zabezpieczeniach serwerów wiąże się właśnie z aplikacjami WWW.
W książce 'Apache. Zabezpieczenia aplikacji i serwerów WWW' znajdziesz informacje o tym, w jaki sposób uchronić przed atakami hakerów aplikacje i witryny WWW kontrolowane przez najpopularniejszy obecnie serwer WWW -- Apache. Przeczytasz o tym, jak poprawnie zainstalować i skonfigurować Apache´a i w jaki sposób uruchomić w nim moduły zabezpieczeń. Poznasz techniki ataków hakerskich i dowiesz się, jak im zapobiegać. Znajdziesz sposoby testowania zabezpieczeń swojego serwera za pomocą odpowiednich narzędzi. Nauczysz się także wykrywać próby ataków i reagować na nie odpowiednio wcześnie.
Czynniki wpływające na bezpieczeństwo sieci
Instalacja serwera Apache
Plik httpd.conf -- konfiguracja Apache´a
Instalowanie i konfigurowanie modułów zabezpieczeń
Klasyfikacja zagrożeń sieciowych WASC
Metody zabezpieczania aplikacji sieciowych
Ochrona przed atakami
Tworzenie serwerów-pułapek
Dzięki tej książce każdy administrator będzie mógł spokojnie spać.
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
SPIS TREœCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
O NOWOœCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Apache. Zabezpieczenia
aplikacji i serwerów WWW
Autor: Ryan C. Barnett
T³umaczenie: Marek Pa³czyñsk
ISBN: 83-246-0505-3
Tytu³ orygina³u: Preventing Web Attacks with Apache
Format: B5, stron: 544
Internet to nie tylko niezmierzone Ÿród³o informacji. To tak¿e zagro¿enie dla serwerów
WWW, aplikacji internetowych i baz danych, które codziennie s¹ atakowane przez
komputerowych przestêpców, korzystaj¹cych z dziesi¹tek technik. Publikowane
regularnie raporty o cyberprzestêpczoœci s¹ zatrwa¿aj¹ce. Liczba ataków na serwery
internetowe wzrasta corocznie œrednio o 30 . Wœród atakowanych serwerów
przewa¿aj¹ te, na których utrzymywane s¹ witryny WWW i aplikacje. Wed³ug raportu
firmy Symantec, „aplikacje WWW s¹ popularnymi celami ataków z uwagi na ich
rozpowszechnienie i fakt, ¿e pozwalaj¹ w³amywaczom na pominiêcie tradycyjnych
mechanizmów zabezpieczaj¹cych, takich jak firewalle”. W tym samym raporcie mo¿na
równie¿ przeczytaæ, ¿e prawie 50 luk w zabezpieczeniach serwerów wi¹¿e siê w³aœnie
z aplikacjami WWW.
W ksi¹¿ce „Apache. Zabezpieczenia aplikacji i serwerów WWW” znajdziesz informacje
o tym, w jaki sposób uchroniæ przed atakami hakerów aplikacje i witryny WWW
kontrolowane przez najpopularniejszy obecnie serwer WWW — Apache. Przeczytasz
o tym, jak poprawnie zainstalowaæ i skonfigurowaæ Apache’a i w jaki sposób uruchomiæ
w nim modu³y zabezpieczeñ. Poznasz techniki ataków hakerskich i dowiesz siê, jak im
zapobiegaæ. Znajdziesz sposoby testowania zabezpieczeñ swojego serwera za pomoc¹
odpowiednich narzêdzi. Nauczysz siê tak¿e wykrywaæ próby ataków i reagowaæ na nie
odpowiednio wczeœnie.
(cid:129) Czynniki wp³ywaj¹ce na bezpieczeñstwo sieci
(cid:129) Instalacja serwera Apache
(cid:129) Plik httpd.conf — konfiguracja Apache’a
(cid:129) Instalowanie i konfigurowanie modu³ów zabezpieczeñ
(cid:129) Klasyfikacja zagro¿eñ sieciowych WASC
(cid:129) Metody zabezpieczania aplikacji sieciowych
(cid:129) Ochrona przed atakami
(cid:129) Tworzenie serwerów-pu³apek
Dziêki tej ksi¹¿ce ka¿dy administrator bêdzie móg³ spokojnie spaæ
O autorze ...................................................................................... 13
Przedmowa ................................................................................... 15
Wprowadzenie ............................................................................... 17
Rozdział 1. Czynniki wpływające na obniżenie bezpieczeństwa sieci ................. 29
Typowy poranek ............................................................................................................. 29
Dlaczego bezpieczeństwo sieciowe jest istotne? ............................................................ 31
Czynniki wpływające na obniżenie bezpieczeństwa sieci .............................................. 32
Zarządzanie i procedury ................................................................................................. 32
Zarządzanie i nieprzekraczalne terminy ................................................................... 32
Sprzedaż załadowanego pistoletu ............................................................................. 33
Dwuminutowa zmiana .............................................................................................. 34
Środowisko projektowe a środowisko pracy ............................................................ 34
Zdarzeniowa koncepcja utrzymania bezpieczeństwa sieci ...................................... 35
Błędy techniczne w zabezpieczeniach sieciowych ......................................................... 36
Mamy serwer w strefie zdemilitaryzowanej ............................................................ 36
Mamy firewalla ........................................................................................................ 37
Mamy sieciowy system wykrywania włamań .......................................................... 38
Mamy jednostkowy system wykrywania włamań ................................................... 39
Wykorzystujemy protokół SSL ................................................................................ 39
Podsumowanie ................................................................................................................ 40
Rozdział 2. Raporty CIS dotyczące serwera Apache ......................................... 41
Raporty CIS dotyczące serwera Apache dla systemu Unix
— zagadnienia związane z systemem operacyjnym .................................................... 41
Zabezpieczenie usług innych niż HTTP ................................................................... 41
Przykład ataku na usługę — wykorzystanie serwera FTP (7350wu) ....................... 46
Wpływ błędów w usługach na bezpieczeństwo serwera Apache ............................ 49
Uaktualnienia dostawców systemów operacyjnych ................................................. 49
Dostosowanie stosu IP ............................................................................................. 50
Odmowa obsługi ...................................................................................................... 51
Grupy i konta użytkowników sieciowych ................................................................ 53
Zablokowanie konta serwera WWW ....................................................................... 56
Wprowadzenie limitów dyskowych ......................................................................... 57
Dostęp do poleceń systemowych ............................................................................. 59
Zmiana właściciela i praw dostępu do poleceń systemu .......................................... 64
6
Apache. Zabezpieczenia aplikacji i serwerów www
Tradycyjny mechanizm chroot ................................................................................. 65
Wady mechanizmu chroot ........................................................................................ 65
Moduł chroot mod_security ..................................................................................... 66
Konfiguracja mechanizmu chroot ............................................................................ 66
Podsumowanie ................................................................................................................ 73
Rozdział 3. Instalacja serwera Apache ............................................................. 75
Wybór wersji .................................................................................................................. 75
Pakiety binarne czy kod źródłowy? ................................................................................ 76
Pobranie kodu źródłowego ............................................................................................. 78
Czy potrzebna jest weryfikacja MD5 i PGP? ........................................................... 78
Rozpakowanie archiwum ............................................................................................... 84
Nakładki ................................................................................................................... 85
Śledzenie komunikatów o błędach i nakładkach ...................................................... 86
Które moduły uwzględnić? ...................................................................................... 89
Podsumowanie ................................................................................................................ 98
Rozdział 4. Konfiguracja — plik httpd.conf ...................................................... 99
Ustawienia uwzględnione w raporcie CIS .................................................................... 102
Plik httpd.conf .............................................................................................................. 102
Wyłączenie niepotrzebnych modułów .......................................................................... 103
Dyrektywy .................................................................................................................... 104
Dyrektywy związane z serwerem ................................................................................. 105
Moduły pracy wieloprocesorowej (MPM) ............................................................. 105
Dyrektywa Listen ................................................................................................... 105
Dyrektywa ServerName ......................................................................................... 106
Dyrektywa ServerRoot ........................................................................................... 106
Dyrektywa DocumentRoot ..................................................................................... 106
Dyrektywa HostnameLookups ............................................................................... 106
Dyrektywy związane z kontami użytkowników ........................................................... 108
Dyrektywa User ...................................................................................................... 108
Dyrektywa Group ................................................................................................... 109
Dyrektywa ServerAdmin ........................................................................................ 109
Dyrektywy związane z ochroną przed atakami DoS .................................................... 109
Test domyślnej konfiguracji ................................................................................... 110
Dyrektywa Timeout ................................................................................................ 111
Dyrektywa KeepAlive ............................................................................................ 112
Dyrektywa KeepAliveTimeout .............................................................................. 112
Dyrektywa MaxKeepAliveRequests ...................................................................... 112
Dyrektywa StartServers .......................................................................................... 113
Dyrektywy MinSpareServers i MaxSpareServers .................................................. 113
Dyrektywa ListenBacklog ...................................................................................... 113
Dyrektywy MaxClients i ServerLimit .................................................................... 114
Test serwera po zamianie konfiguracji ................................................................... 114
Zapowiedź .............................................................................................................. 115
Dyrektywy utajniające oprogramowanie ...................................................................... 116
Dyrektywa ServerTokens ....................................................................................... 116
Dyrektywa ServerSignature ................................................................................... 117
Dyrektywa ErrorDocument .................................................................................... 117
Dyrektywy katalogów ................................................................................................... 121
Parametr All ........................................................................................................... 121
Parametr ExecCGI .................................................................................................. 121
Parametry FollowSymLinks i SymLinksIfOwnerMatch ....................................... 121
Parametry Includes i IncludesNoExec ................................................................... 122
Spis treści
7
Parametr Indexes .................................................................................................... 122
Dyrektywa AllowOverride ..................................................................................... 123
Parametr Multiviews .............................................................................................. 123
Dyrektywy kontroli dostępu ......................................................................................... 123
Uwierzytelnianie ........................................................................................................... 124
Autoryzacja ................................................................................................................... 125
Dyrektywa Order .................................................................................................... 126
Kontrola dostępu — informacje o kliencie ................................................................... 127
Nazwa komputera lub domeny ............................................................................... 127
Adres IP lub zakres adresów IP .............................................................................. 128
Zmienne środowiskowe żądania ............................................................................ 128
Ochrona katalogu głównego ................................................................................... 128
Zmniejszenie liczby metod HTTP ................................................................................ 129
Ogólne dyrektywy rejestracji zdarzeń .......................................................................... 130
Dyrektywa LogLevel .............................................................................................. 130
Dyrektywa ErrorLog .............................................................................................. 130
Dyrektywa LogFormat ........................................................................................... 131
Dyrektywa CustomLog .......................................................................................... 131
Usunięcie domyślnych i przykładowych plików .......................................................... 132
Pliki kodu źródłowego Apache .............................................................................. 132
Domyślne pliki HTML ........................................................................................... 132
Przykładowe skrypty CGI ...................................................................................... 133
Pliki użytkownika webserv .................................................................................... 134
Zmiana praw dostępu .................................................................................................... 134
Pliki konfiguracyjne serwera .................................................................................. 134
Pliki katalogu dokumentów .................................................................................... 134
Katalog cgi-bin ....................................................................................................... 135
Katalog logs ............................................................................................................ 135
Katalog bin ............................................................................................................. 135
Modyfikacja skryptu apachectl ..................................................................................... 136
Test Nikto po zmianach konfiguracji ........................................................................... 137
Podsumowanie .............................................................................................................. 137
Rozdział 5. Najważniejsze moduły zabezpieczeń ............................................. 139
Protokół SSL ................................................................................................................. 139
Dlaczego należy korzystać z protokołu SSL? ........................................................ 140
Jak działa mechanizm SSL? ................................................................................... 142
Wymagane oprogramowanie .................................................................................. 144
Instalacja oprogramowania SSL ............................................................................. 145
Tworzenie certyfikatów SSL .................................................................................. 146
Sprawdzenie wstępnej konfiguracji ....................................................................... 147
Konfiguracja modułu mod_ssl ............................................................................... 149
Podsumowanie mechanizmu SSL .......................................................................... 155
Moduł mod_rewrite ...................................................................................................... 155
Włączenie modułu mod_rewrite ............................................................................ 156
Podsumowanie modułu mod_rewrite ..................................................................... 158
Moduł mod_log_forensic ............................................................................................. 158
Moduł mod_evasive ..................................................................................................... 159
Do czego służy moduł mod_evasive? .................................................................... 159
Instalacja modułu mod_evasive ............................................................................. 160
Jak działa moduł mod_evasive? ............................................................................. 160
Konfiguracja ........................................................................................................... 161
Podsumowanie modułu mod_evasive .................................................................... 165
8
Apache. Zabezpieczenia aplikacji i serwerów www
Moduł mod_security ..................................................................................................... 165
Instalacja modułu mod_security ............................................................................. 166
Ogólne informacje na temat modułu ...................................................................... 166
Opcje i możliwości modułu mod_security ............................................................. 167
Techniki przeciwdziałania maskowaniu ataków .................................................... 168
Specjalne wbudowane procedury sprawdzające .................................................... 169
Reguły filtrowania .................................................................................................. 172
Akcje ...................................................................................................................... 173
Pozostałe funkcje .................................................................................................... 176
Podsumowanie .............................................................................................................. 177
Rozdział 6. Test konfiguracji
— narzędzie CIS Apache Benchmark Scoring Tool .......................... 179
Pobranie, rozpakowanie i uruchomienie aplikacji ........................................................ 180
Rozpakowanie archiwum ....................................................................................... 181
Uruchomienie programu ........................................................................................ 182
Podsumowanie .............................................................................................................. 186
Rozdział 7. Klasyfikacja zagrożeń sieciowych WASC ...................................... 187
Współautorzy dokumentu ............................................................................................. 188
Charakterystyka dokumentu WASC ............................................................................ 188
Cele ......................................................................................................................... 189
Wykorzystanie dokumentacji ................................................................................. 189
Przegląd .................................................................................................................. 189
Tło .......................................................................................................................... 190
Klasy ataków ................................................................................................................ 190
Format podrozdziałów ............................................................................................ 191
Uwierzytelnianie ........................................................................................................... 192
Metoda siłowa ........................................................................................................ 192
Niedostateczne uwierzytelnienie ............................................................................ 196
Niedoskonały mechanizm odzyskiwania haseł ...................................................... 198
Autoryzacja ................................................................................................................... 200
Predykcja danych uwierzytelniających (danych sesji) ........................................... 200
Niedostateczna autoryzacja .................................................................................... 202
Niewłaściwe wygasanie sesji ................................................................................. 204
Ustawienie sesji ...................................................................................................... 205
Ataki na jednostki klienckie ......................................................................................... 209
Podmiana treści ...................................................................................................... 209
Wykonywanie kodu w ramach witryny ................................................................. 211
Wykonywanie poleceń ................................................................................................. 213
Przepełnienie bufora ............................................................................................... 213
Atak z wykorzystaniem ciągu formatującego ........................................................ 218
Wstrzyknięcie danych LDAP ................................................................................. 220
Wykonanie poleceń systemu operacyjnego ........................................................... 222
Wstrzyknięcie instrukcji SQL ................................................................................ 224
Wstrzyknięcie instrukcji SSI .................................................................................. 229
Wstrzyknięcie instrukcji XPath .............................................................................. 230
Ujawnienie informacji .................................................................................................. 231
Indeksowanie katalogu ........................................................................................... 232
Wyciek informacji .................................................................................................. 235
Manipulacja ścieżkami ........................................................................................... 237
Przewidywanie położenia zasobów ........................................................................ 240
Ataki logiczne ............................................................................................................... 241
Zakłócenie funkcjonowania ................................................................................... 241
Odmowa obsługi .................................................................................................... 244
Spis treści
9
Niedostateczne zabezpieczenie przed automatyzacją ............................................ 247
Niedostateczna walidacja procesu .......................................................................... 248
Podsumowanie .............................................................................................................. 250
Rozdział 8. Zabezpieczenie aplikacji sieciowej Buggy Bank ............................ 251
Instalacja serwisu Buggy Bank ..................................................................................... 252
Pliki witryny Buggy Bank ...................................................................................... 253
Wyłączenie zabezpieczeń ....................................................................................... 253
Testowanie instalacji .............................................................................................. 254
Funkcje ......................................................................................................................... 255
Konta użytkowników ............................................................................................. 256
Metodologia działań ..................................................................................................... 257
Ogólne zagadnienia ................................................................................................ 257
Wykorzystane narzędzia ........................................................................................ 257
Konfiguracja programu Burp Proxy ....................................................................... 258
Luki w zabezpieczeniach serwisu Buggy Bank ........................................................... 260
Komentarze w kodzie HTML ................................................................................ 260
Ustalenie numerów kont ......................................................................................... 261
Jaka jest wartość entropii? ...................................................................................... 262
Ustalenie numerów kont metodą siłową ................................................................ 263
Wyznaczenie identyfikatorów PIN ........................................................................ 266
Odblokowane konto ............................................................................................... 266
Zablokowane konto ................................................................................................ 266
Ustalenie identyfikatorów PIN metodą siłową ....................................................... 267
Wstrzykiwanie poleceń .......................................................................................... 269
Wykonanie polecenia netstat .................................................................................. 269
Wstrzyknięcie instrukcji SQL ...................................................................................... 273
Zapobieganie wstrzykiwaniu instrukcji SQL ......................................................... 275
Wykonywanie skryptów w ramach witryny (XSS) ...................................................... 277
Zapobieganie .......................................................................................................... 280
Zakłócenie działania funkcji przelewu ......................................................................... 280
Zapobieganie .......................................................................................................... 282
Podsumowanie .............................................................................................................. 283
Rozdział 9. Ochrona i przeciwdziałanie ........................................................... 285
Dlaczego firewalle nie chronią w dostateczny sposób serwerów i aplikacji? .............. 286
Dlaczego systemy wykrywania włamań są również nieskuteczne................................ 288
Szczegółowa analiza pakietów, wtrącone systemy IDS i firewalle aplikacji WWW .. 292
Firewalle z funkcją szczegółowej analizy pakietów .............................................. 293
Wtrącone systemy IDS ........................................................................................... 294
Firewalle aplikacji WWW ...................................................................................... 295
Rozwiązania systemów wykrywania włamań .............................................................. 297
Metoda sygnaturowa .............................................................................................. 298
Polityka zdarzeń pozytywnych (białe listy) ........................................................... 301
Analiza nagłówków ................................................................................................ 311
Analiza protokołów ................................................................................................ 314
Analiza identyfikatora zasobu URI ........................................................................ 320
Analiza heurystyczna ............................................................................................. 322
Wykrywanie anomalii ............................................................................................ 323
Techniki oszukiwania systemów IDS i ochrona przed maskowaniem ataków ............ 325
Możliwości oszukania systemu IDS ...................................................................... 325
Mechanizmy zapobiegania maskowaniu żądań ..................................................... 328
Oszukiwanie przez zakłócenie działania serwera Apache ..................................... 330
10
Apache. Zabezpieczenia aplikacji i serwerów www
Wykrywanie sondowania i blokowanie niebezpiecznych stacji ................................... 333
Sondowanie za pomocą programów robaków ....................................................... 333
Blokowanie znanych niebezpiecznych stacji ......................................................... 334
Aplikacja nmap — identyfikacja właściciela procesu ........................................... 337
Aplikacja nmap — sprawdzenie wersji oprogramowania ...................................... 338
W jakim celu zmienia się baner informacyjny serwera? ........................................ 340
Ukrywanie baneru informacyjnego serwera .......................................................... 341
Rozpoznanie serwera WWW ........................................................................................ 343
Różnice w implementacji protokołu HTTP ........................................................... 344
Zbieranie informacji z banerów ............................................................................. 348
Zaawansowane procedury rozpoznawania serwerów WWW ................................ 348
Aplikacja HTTPrint ................................................................................................ 349
Obrona przed procedurą rozpoznawania serwerów WWW ................................... 351
Niebezpieczne roboty, ciekawscy klienci i superskanery ............................................ 356
Niebezpieczne roboty i ciekawscy klienci ............................................................. 357
Superskanery .......................................................................................................... 359
Reagowanie na ataki DoS, wykorzystanie metod siłowych i modyfikacja stron ......... 365
Ataki DoS ............................................................................................................... 365
Wykorzystanie metod siłowych ............................................................................. 366
Modyfikacja stron .................................................................................................. 368
Zapobieganie modyfikowaniu stron ....................................................................... 373
Alarmy i śledzenie działań włamywaczy ..................................................................... 374
Powołanie zmiennych ............................................................................................ 377
Rejestrowanie danych do późniejszej analizy ........................................................ 377
Filtracja nieistotnych żądań i sprawdzenie liczby wysłanych powiadomień ......... 378
Rejestracja żądania i odsyłacze do aplikacji śledzenia włamywacza ..................... 378
Wysłanie powiadomienia na pager ........................................................................ 379
Wstrzymanie działania skryptu .............................................................................. 379
Przesłanie dokumentu HTML ................................................................................ 379
Przykładowe powiadomienia e-mail ...................................................................... 379
Monitorowanie dzienników pracy serwera i analiza ich zawartości ............................ 386
Ciągły monitoring za pomocą programu SWATCH .............................................. 387
Sgrep — analiza dziennika modułu mod_security ................................................. 391
Systemy-pułapki ........................................................................................................... 394
Wabiące systemy-pułapki ...................................................................................... 395
Fałszywy skrypt PHF ............................................................................................. 396
Identyfikacja i śledzenie przypadków wykonywania poleceń systemowych ........ 397
Moduł mod_rewrite 2.1 — ostatnia deska ratunku ................................................ 398
Podsumowanie .............................................................................................................. 399
Rozdział 10. Otwarty serwer proxy jako system-pułapka .................................. 401
Po co instalować otwarty serwer proxy w roli systemu-pułapki? ................................ 401
Brak informacji o wystąpieniu ataku ..................................................................... 402
Brak szczegółowych (dostatecznych) informacji o transakcjach HTTP ................ 402
Brak zainteresowania ujawnieniem informacji o ataku ......................................... 402
Czym są serwery proxy? ............................................................................................... 403
Podstawowe informacje na temat otwartych serwerów proxy ..................................... 404
Otwarty serwer proxy jako system-pułapka ................................................................. 405
Router-firewall firmy Linksys ................................................................................ 405
Wyłączenie niepotrzebnych usług sieciowych ....................................................... 406
Konfiguracja serwera Apache jako jednostki proxy .............................................. 406
Sterowanie danymi ....................................................................................................... 408
Moduł mod_evasive ............................................................................................... 409
Moduł mod_security .............................................................................................. 409
Spis treści
11
Wykorzystanie sygnatur systemu Snort ................................................................. 410
Ataki z wykorzystaniem metod siłowych .............................................................. 411
Przechwytywanie danych ............................................................................................. 412
Ciągłe monitorowanie za pomocą programu Web spy .......................................... 413
Skan miesiąca — wyzwanie nr 31 w projekcie Honeynet ........................................... 414
Wyzwanie ............................................................................................................... 414
Czynności przygotowawcze ................................................................................... 415
Pytanie:
W jaki sposób włamywacze odnaleźli proxy-pułapkę? ............................................. 416
Pytanie:
Jakiego rodzaju ataki można zidentyfikować? Dla każdej kategorii ataku
podaj przynajmniej jeden przykład wpisu i dołącz jak najwięcej informacji
na temat samego ataku (np. identyfikatory CERT, CVE i sygnatur wirusów).
Ile kategorii ataków można wyróżnić? ...................................................................... 417
Wyszukiwanie ciągu mod_security-message ......................................................... 418
Wykorzystanie funkcji przekazywania AllowCONNECT .................................... 419
Wyszukiwanie niestandardowych kodów statusowych HTTP .............................. 420
Niestandardowe metody żądań HTTP .................................................................... 422
Żądania niezgodne z protokołem HTTP ................................................................ 423
Kategoria ataku — spam ........................................................................................ 425
Kategoria ataku — uwierzytelnianie metodą siłową .............................................. 426
Kategoria ataku — skanowanie luk w zabezpieczeniach ....................................... 427
Kategoria ataku — robaki internetowe .................................................................. 432
Kategoria ataku — pozorne kliknięcie baneru reklamowego ................................ 435
Kategoria ataku — połączenia IRC ........................................................................ 436
Pytanie:
Czy włamywacze wybierali jako cele ataków serwery WWW obsługujące
protokół SSL? ............................................................................................................ 437
Czy celem była również usługa SSL proxy-pułapki? ............................................ 438
Dlaczego chcieli korzystać z protokołu SSL? ........................................................ 439
Dlaczego nie korzystali wyłącznie z usług SSL? ................................................... 439
Pytanie:
Czy są jakiekolwiek oznaki, że w ataku pośredniczyły inne serwery proxy?
Opisz, w jaki sposób można wykryć takie działanie. Wymień inne zidentyfikowane
serwery proxy. Czy można potwierdzić, że dane jednostki są rzeczywiście
serwerami proxy? ....................................................................................................... 439
Identyfikacja aktywności ........................................................................................ 440
Potwierdzenie informacji o serwerach proxy ......................................................... 442
Wykorzystanie określonych otwartych serwerów proxy ....................................... 445
Wykorzystanie określonych serwerów docelowych .............................................. 445
Pytanie:
Wyodrębnij przypadki zastosowania metod siłowych do uwierzytelnienia.
Czy można pozyskać dane uwierzytelniające (nazwę użytkownika i hasło)
w formie otwartego tekstu? Opisz metody analizy .................................................... 447
Żądania HTTP GET ............................................................................................... 447
Żądania HTTP POST ............................................................................................. 447
Uwierzytelnienie HTTP typu Basic ....................................................................... 448
Uzyskanie danych uwierzytelniających w formie otwartego tekstu ...................... 450
Rozproszone skanowanie metodą siłową kont serwisu Yahoo! ............................. 451
Skanowanie w przód i odwrotne ............................................................................ 452
Pytanie:
Co oznacza komunikat modułu mod_security o treści
Invalid Character Detected? Jaki był cel działania włamywacza? ............................. 457
Dyrektywa SecFilterCheckURLEncoding — sprawdzenie kodowania URL ........ 457
12
Apache. Zabezpieczenia aplikacji i serwerów www
Dyrektywa SecFilterCheckUnicodeEncoding
— sprawdzenie kodowania Unicode ................................................................... 457
Dyrektywa SecFilterForceByteRange
— sprawdzenie zakresu wartości bajtowych ....................................................... 458
Sprawdzenie dostępności usługi SOCKS ............................................................... 458
Ataki robaków internetowych Code Red i NIMDA ............................................... 459
Pytanie:
Zarejestrowano kilka prób przesłania spamu, o czym świadczą próby
wykorzystania adresu URL: http://mail.sina.com.cn/cgi-bin/sendmsg.cgi.
List zawierał załącznik HTML (pliki wymienione w katalogu /upload).
Jaka była treść strony WWW spamu? Kim byli odbiorcy spamu? .............................. 460
Odbiorcy spamu ..................................................................................................... 461
Pytanie:
Opracuj kilka statystyk ............................................................................................... 461
Dziesięciu najaktywniejszych włamywaczy .......................................................... 461
Dziesięć najczęściej atakowanych jednostek ......................................................... 462
Dziesięć najczęściej wykorzystywanych przeglądarek
(wraz z fałszowanymi nazwami) ......................................................................... 462
Powiązanie włamywaczy z danymi serwisu DShield
i innymi źródłami informacji ............................................................................... 464
Pytanie dodatkowe:
Dlaczego włamywacze wybierali witryny pornograficzne jako cel ataków
z wykorzystaniem metod siłowych (poza oczywistą fizyczną gratyfikacją)? ........... 464
Czy mimo że adres IP i nazwa proxy-pułapki zostały zamaskowane
we wpisach dziennika, można wskazać prawdopodobnego
właściciela segmentu sieci? ................................................................................. 466
Podsumowanie .............................................................................................................. 468
Rozdział 11. Podsumowanie prezentowanych rozwiązań ................................... 471
Przykładowe ostrzeżenie o błędzie systemu zabezpieczeń .......................................... 471
Sprawdzenie wersji oprogramowania ........................................................................... 472
Sprawdzenie dostępności nakładki ............................................................................... 472
Szczegółowe informacje o błędzie w zabezpieczeniach .............................................. 473
Utworzenie filtru mod_security ............................................................................. 476
Test filtru ................................................................................................................ 476
Pierwsza pomoc czy szpital .................................................................................... 477
Bezpieczeństwo sieci — zagadnienia niezwiązane z serwerem WWW ...................... 478
Przejęcie domeny ................................................................................................... 478
Zatrucie pamięci podręcznej DNS ......................................................................... 478
Zakłócenie pracy buforującego serwera proxy ...................................................... 479
Podmiana baneru reklamowego ............................................................................. 481
Zakłócenie działania serwisu informacyjnego ....................................................... 481
Podmiana czy nie? .................................................................................................. 482
Podsumowanie .............................................................................................................. 482
Dodatek A Słownik WASC ............................................................................ 485
Dodatek B Wykaz modułów Apache .............................................................. 495
Dodatek C Przykładowy plik httpd.conf ......................................................... 511
Skorowidz ................................................................................... 521
Rozdział 5.
W poprzednim rozdziale zostały przedstawione dyrektywy Apache, które mają wpływ
na bezpieczeństwo serwera. Ten rozdział jest poświęcony dodatkowym modułom, prze-
znaczonym do zabezpieczenia aplikacji. Mogą one odgrywać istotną rolę w ogólnym za-
bezpieczeniu serwera Apache, a ich złożoność i zakres działań są znacznie większe niż
opisywanych wcześniej dyrektyw. W treści niniejszego rozdziału zostały zamieszczone
opisy zarówno procedur instalacyjnych, jak i ogólnych funkcji każdego z modułów. Nie
zostały natomiast przedstawione wszystkie dyrektywy modułów, ponieważ będą one
omawiane w dalszej części książki, w rozdziałach dotyczących konkretnych sposobów
zapobiegania atakom sieciowym.
Protokół SSL
Omawianie najważniejszych modułów zabezpieczeń musi się rozpocząć od prezenta-
cji modułu mod_ssl z pewnego szczególnego względu. Istnieje bowiem wielka rozbież-
ność między jego rzeczywistymi funkcjami a oczekiwaniami wielu użytkowników. Gdy-
by trzeba było podać motto tego podrozdziału, mogłoby nim być zdanie „Szyfrowanie
nie jest równoznaczne z bezpieczeństwem”. Chociaż protokół SSL odgrywa bardzo
ważną rolę w zabezpieczaniu komunikacji sieciowej, nie jest panaceum na wszystkie
problemy związane z bezpieczeństwem. O prawdziwości tego twierdzenia przekonał się
autor książki podczas dokonywania zakupów internetowych. Szczegółowy opis zdarze-
nia został zamieszczony w części pt. „Jesteśmy bezpieczni, ponieważ stosujemy SSL —
błędne rozumowanie”.
140
Apache. Zabezpieczenia aplikacji i serwerów www
Dlaczego należy korzystać z protokołu SSL?
Stosowanie protokołu SSL pozwala na realizację trzech zadań.
t
Szyfrowanie danych przesyłanych między serwerem i klientem
(tj. przeglądarką). Cecha ta jest najczęściej wykorzystywaną funkcją protokołu
SSL. Po zainstalowaniu serwera WWW obsługującego mechanizm SSL
administratorzy nie mają większych problemów z wygenerowaniem certyfikatów
potrzebnych w komunikacji SSL. Rozwiązanie to natomiast zapewnia poufność
wymiany informacji.
t
Weryfikacja tożsamości serwera. Przeglądarki internetowe analizują certyfikaty
SSL przesyłane przez serwer WWW, sprawdzając, czy zostały one podpisane
przez zewnętrzne urzędy certyfikacji (ang. Certificate Authority — CA), takie
jak VeriSign lub Entrust. Jeżeli certyfikat nie jest podpisany, przeglądarka
wyświetla okno dialogowe z informacją o błędzie. Prowadzenie serwisu handlu
elektronicznego niemal zawsze wiąże się z koniecznością uzyskania podpisanego
certyfikatu. Certyfikat ten uwiarygodnia witrynę i eliminuje niedogodności
związane z wyświetlaniem komunikatów o błędach.
t
Weryfikacja tożsamości klienta. Wiadomo, że klient może przeglądać
certyfikat SSL serwera. Podobnie istnieje możliwość uwierzytelnienia klienta,
o ile w jego przeglądarce został zainstalowany prywatny certyfikat. Mimo
iż rozwiązanie to jest znane od wielu lat i ma więcej zalet w porównaniu
ze standardowymi mechanizmami uwierzytelniania (wymagającymi podania
nazwy użytkownika i hasła), nie jest stosowane na szerszą skalę ze względu
na koszty i trudności w zarządzaniu certyfikatami.
Jesteśmy bezpieczni, ponieważ stosujemy SSL — błędne rozumowanie
W lutym 2004 roku zdecydowałem się na zakup przez internet zestawu ziół, które podgrzane
w kuchence mikrofalowej pomagają zwalczyć ból mięśni. Gdy wyświetliłem stronę producenta,
od razu zostałem przywitany komunikatem „Ta witryna jest bezpieczna! Używamy 128-bitowego
szyfrowania SSL”. Miał on rozproszyć ewentualne wątpliwości użytkowników. Podczas finali-
zowania zamówienia postanowiłem sprawdzić parametry SSL połączenia. Kliknąłem dwukrotnie
ikonę „kłódki” w prawym dolnym rogu okna przeglądarki i upewniłem się, że nazwa dome-
nowa certyfikatu SSL odpowiada nazwie zawartej w adresie URL. Ponadto certyfikat został
podpisany przez zaufany urząd certyfikacji, jakim jest VeriSign, i nadal był ważny. Ponieważ nic
nie budziło moich podejrzeń, przeszedłem do strony płatności i wpisałem dane karty kredytowej.
Nacisnąłem przycisk przesłania formularza i zobaczyłem komunikat, który wywołał u mnie
skurcz żołądka. Był to komunikat przesłany listem elektronicznym. Jego treść znajduje się po-
niżej. Zmieniłem jedynie dane firmowe i informacje o karcie kredytowej.
Otrzymałem e-mail o następującej treści:
Od:nazwa_firmy@aol.com
Do: RCBarnett@email.com
Temat:ONLINE HERBPACK!!!
nazwisko: Ryan Barnett
adres: Nieznana 1234
miejscowość: Gdzieś
stan: Stan
Rozdział 5. ¨ Najważniejsze moduły zabezpieczeń
141
kod pocztowy: 12345
telefon#:
rodzaj karty : American Express
nazwisko na karcie: Ryan Barnett
numer karty: 123456789012345
data ważności: 11/d5
liczba zestawów podstawowych:
liczba poduszek na oczy:
liczba usztywniaczy karku: 1
liczba pasów: 1
liczba zestawów jumbo:
liczba ogrzewaczy stóp: 1
liczba opasek na kolano:
liczba opasek na nadgarstek:
liczba zestawów klawiaturowych:
liczba opasek barkowych:
liczba kapeluszy czarnych: liczba kapelusz szarych:
liczba kapeluszy niebieskich: liczba kapeluszy czerwonych:
liczba kapeluszy beżowych: liczba kapeluszy pomarańczowych:
czy chcesz przesłać paczkę do przyjaciela:
nazwisko:
jego adres:
jego miejscowość:
jego stan:
jego kod pocztowy:
cgiemail 1.6
Nie mogłem uwierzyć własnym oczom. Numer mojej karty kredytowej został przesłany otwar-
tym tekstem na konto pocztowe w AOL. Jak to możliwe? Administratorzy witryny byli najwy-
raźniej dostatecznie zaznajomieni z technologią, żeby wiedzieć, że należy szyfrować dane
klienta przesyłane do serwera. Dlaczego zatem nie wykazali się taką samą inteligencją, pro-
jektując końcową fazę procedury?
Uznałem, że to zwykła pomyłka. Przeczytałem reklamę zamieszczoną u dołu ekranu, która in-
formowała, że do przetwarzania zamówień wykorzystywane jest oprogramowanie cgiemail 1.6.
Otworzyłem stronę Google i zacząłem szukać informacji na temat tego produktu. W serwisie
Google znalazłem odsyłacz do poradnika administratora programu cgiemail. Szybko przejrza-
łem jego treść i odszukałem interesujący rozdział pt. „Jakie zabezpieczenia zostały zaimple-
mentowane?”.
Istnieje zagrożenie przechwycenia danych przesyłanych przez sieć z przeglądarki do ser-
wera i z serwera do przeglądarki. Do podsłuchu informacji może dojść w każdym punkcie
trasy między przeglądarką a serwerem.
Ryzyko: Aplikacja cgiemail, jak każdy program przekazujący dane z formularza na pocztę,
jest podatna na podsłuch w dowolnym punkcie trasy między serwerem WWW a odbiorcą
poczty elektronicznej. Z uwagi na brak mechanizmów szyfrujących nie zaleca się przeka-
zywania poufnych informacji, na przykład numerów kart kredytowych.
Tak jak przypuszczałem. Resztę dnia spędziłem, próbując poinformować wystawcę karty kre-
dytowej o możliwym ujawnieniu danych karty oraz obserwując saldo rachunku bankowego. Prze-
słałem również list do firmy prowadzącej sklep internetowy (na adres AOL). Opisałem w nim
problemy związane z bezpieczeństwem operacji. Całą sprawę można podsumować jednym zda-
niem. Wykorzystanie protokołu SSL nie stanowi o bezpieczeństwie witryny.
142
Apache. Zabezpieczenia aplikacji i serwerów www
Jak działa mechanizm SSL?
Mechanizm SSL działa na pograniczu warstwy trzeciej i czwartej modelu TCP/IP
(tabela 5.1). Zapewnia funkcje szyfrowania dla wielu usług, wśród których jest rów-
nież usługa HTTP. W praktyce algorytm SSL może być zaimplementowany w aplikacji
osłonowej, tworzącej tzw. tunel SSL, który zapewnia szyfrowany kanał transmisyjny
dla dowolnej usługi TCP/IP.
Tabela 5.1. Sieciowy model odniesienia TCP/IP
Warstwa aplikacji (warstwa 4.)
HTTP
SSL
Szyfrowanie wszystkich danych warstwy 4.
Warstwa transportowa (warstwa 3.)
TCP
Warstwa internetowa (warstwa 2.)
IP
Warstwa sieciowa (warstwa 1.)
Ethernet
W systemie Solaris jest dostępny monitor sieci snoop, za pomocą którego można
wizualnie wyróżnić poszczególne warstwy komunikacji sieciowej w standardowej tran-
sakcji HTTP. W przykładzie listingu wynikowego programu snoop są widoczne dane
wszystkich warstw, choć ich kolejność jest odwrotna w porównaniu z wykazem przed-
stawionym w tabeli 5.1. Wynika to z faktu demultipleksacji pakietu.
ETHER: ----- Ether Header -----
ETHER:
ETHER: Packet 4 arrived at 1d:47:44.5d
ETHER: Packet size = 411 bytes
ETHER: Destination = d:3:ba:8:1d:d,
ETHER: Source = d:8:e2:42:b1:fc,
ETHER: Ethertype = d8dd (IP)
ETHER:
IP: ----- IP Header -----
IP:
IP: Iersion = 4
IP: Header length = 2d bytes
IP: Type of service = dxdd
IP: xxx. .... = d (precedence)
IP: ...d .... = normal delay
IP: .... d... = normal throughput
IP: .... .d.. = normal reliability
IP: Total length = 397 bytes
IP: Identification = 5914
IP: Flags = dx4
IP: .1.. .... = do not fragment
IP: ..d. .... = last fragment
IP: Fragment offset = d bytes
IP: Time to live = 125 seconds/hops
IP: Protocol = 6 (TCP)
IP: Header checksum = 1bd5
IP: Source address = 192.168.1.1dd, 192.168.1.1dd
IP: Destination address = 192.168.1.1d1, 192.168.1.1d1
IP: No options
IP:
Rozdział 5. ¨ Najważniejsze moduły zabezpieczeń
143
TCP: ----- TCP Header -----
TCP:
TCP: Source port = 126d
TCP: Destination port = 8d (HTTP)
TCP: Sequence number = 2934191179
TCP: Acknowledgement number = 3769986d61
TCP: Data offset = 2d bytes
TCP: Flags = dx18
TCP: ..d. .... = No urgent pointer
TCP: ...1 .... = Acknowledgement
TCP: .... 1... = Push
TCP: .... .d.. = No reset
TCP: .... ..d. = No Syn
TCP: .... ...d = No Fin
TCP: Tindow = 6552d
TCP: Checksum = dx4bb9
TCP: Urgent pointer = d
TCP: No options
TCP:
HTTP: ----- HyperText Transfer Protocol -----
HTTP:
HTTP: GET / HTTP/1.1
HTTP: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword,
application/x-shockwave-flash, */*
HTTP: Accept-Language: en-us
HTTP: Accept-Encoding: gzip, deflate
HTTP: User-Agent: Hozilla/4.0 gcompatiblel H4.E 5.5l aindows MT 5.0.
HTTP: Host: 192.168.1.101
HTTP: Connection: Keep-Alive
Program snoop rejestruje dane wszystkich czterech warstw: sieciowej, IP, TCP i HTTP.
W sekcji protokołu HTTP jest widoczne całe żądanie przesłane przez jednostkę kliencką,
włącznie ze wszystkimi nagłówkami klienckimi. Dla porównania drugi listing wyni-
kowy programu snoop został sporządzony podczas przekazywania żądania do serwera
WWW z włączoną opcją SSL. Dane czwartej warstwy nie są widoczne, ponieważ apli-
kacja snoop nie mogła rozszyfrować informacji.
ETHER: ----- Ether Header -----
ETHER:
ETHER: Packet 4 arrived at 13:d4:27.94
ETHER: Packet size = 156 bytes
ETHER: Destination = d:3:ba:8:1d:d,
ETHER: Source = d:8:e2:42:b1:fc,
ETHER: Ethertype = d8dd (IP)
ETHER:
IP: ----- IP Header -----
IP:
IP: Iersion = 4
IP: Header length = 2d bytes
IP: Type of service = dxdd
IP: xxx. .... = d (precedence)
IP: ...d .... = normal delay
IP: .... d... = normal throughput
IP: .... .d.. = normal reliability
IP: Total length = 142 bytes
144
Apache. Zabezpieczenia aplikacji i serwerów www
IP: Identification = 44235
IP: Flags = dx4
IP: .1.. .... = do not fragment
IP: ..d. .... = last fragment
IP: Fragment offset = d bytes
IP: Time to live = 125 seconds/hops
IP: Protocol = 6 (TCP)
IP: Header checksum = 8652
IP: Source address = 192.168.1.1dd, 192.168.1.1dd
IP: Destination address = 192.168.1.1d1, 192.168.1.1d1
IP: No options
IP:
TCP: ----- TCP Header -----
TCP:
TCP: Source port = 1516
TCP: Destination port = 443 (HTTPS)
TCP: Sequence number = 69478725d
TCP: Acknowledgement number = 1952824342
TCP: Data offset = 2d bytes
TCP: Flags = dx18
TCP: ..d. .... = No urgent pointer
TCP: ...1 .... = Acknowledgement
TCP: .... 1... = Push
TCP: .... .d.. = No reset
TCP: .... ..d. = No Syn
TCP: .... ...d = No Fin
TCP: Tindow = 6552d
TCP: Checksum = dxf26c
TCP: Urgent pointer = d
TCP: No options
TCP:
HTTP4: ----- HTTP4: -----
HTTP4:
HTTP4:
HTTP4:
Do szyfrowania kanału komunikacyjnego mechanizm SSL wykorzystuje algorytm kryp-
tograficzny bazujący na kluczu publicznym. Z tego względu ustanowienie połączenia
SSL wiąże się z pewnym narzutem komunikacyjnym. Przed przesłaniem jakichkolwiek
danych HTTP klient i serwer muszą wymienić klucze publiczne, zaakceptować zbiór
algorytmów szyfrujących itd. Na rysunku 5.1 została przedstawiona przykładowa trans-
akcja SSL ustanawiająca połączenie między serwerem i klientem, zarejestrowana przez
narzędzie monitorujące Ethereal.
Wymagane oprogramowanie
Aby zaimplementować mechanizm SSL w działaniu serwera Apache, trzeba najpierw
zainstalować pakiet OpenSSL. Ostatnią wersję oprogramowania OpenSSL można pobrać
ze strony www.openssl.org. W czasie pisania książki była to wersja 0.9.8b. Biblioteka
OpenSSL jest niezbędna podczas kompilowania modułu mod_ssl, w którym są wyko-
rzystywane różne jej funkcje kryptograficzne.
Rozdział 5. ¨ Najważniejsze moduły zabezpieczeń
145
Rysunek 5.1. Wymiana danych protokołu SSL
Poza pakietem oprogramowania OpenSSL system operacyjny musi obsługiwać urzą-
dzenie przeznaczone do generowania wartości pseudolosowych. Większość systemów
Unix jest wyposażona domyślnie w urządzenie /dev/random, odpowiednie dla modułu
mod_ssl. Z kolei aby takie urządzenie było dostępne w systemie Solaris, należy zainsta-
lować odpowiednią nakładkę. W przypadku braku generatora liczb losowych program
Apache nie zostanie uruchomiony i spowoduje wygenerowanie komunikatów o błędach.
Instalacja oprogramowania SSL
Osoby korzystające z serwera Apache w wersji 1.3 muszą pobrać kod modułu mod_ssl
ze strony www.modssl.org. Oprogramowanie serwera w wersji 2.0 jest rozpowszechniane
wraz z odpowiednią wersją biblioteki mod_ssl. Zatem procedura włączenia modułu
podczas kompilacji kodu serwera sprowadza się do zastosowania opcji --enable-ssl.
Niestety podczas kompilowania biblioteki mod_ssl jako obiektu DSO (dla Apache 2.0.52)
występuje pewien błąd. Sama kompilacja przebiega co prawda poprawnie, ale proces
potomny SSL nie obsługuje żadnych żądań i przedwcześnie kończy swoją pracę. Z in-
formacji dostępnych w internecie wynika, że ten problem został zauważony przez wielu
administratorów, którzy próbowali wykorzystać moduł mod_ssl jako obiekt DSO w po-
łączeniu ze statycznie skompilowanym pakietem OpenSSL. Aby instalacja przebiegła
prawidłowo, należy wykonać procedurę opisaną w rozdziale 3.
146
Apache. Zabezpieczenia aplikacji i serwerów www
Tworzenie certyfikatów SSL
W opisywanej procedurze instalacyjnej został wykorzystany moduł mod_ssl rozpo-
wszechniany z oprogramowaniem Apache 2.0.52. Do utworzenia certyfikatów nie można
zatem wykorzystać tej samej metody, która jest stosowana w odniesieniu do kodu po-
branego z witryny modssl.org. Choć trzeba przyznać, że procedura generowania certyfi-
katów dla modułu dostępnego w witrynie modssl.org jest znacznie mniej nużąca. Sprowa-
dza się do wykonania poniższego polecenia (w pliku Makefile znajduje się odpowiednia
reguła).
# make certificate TYPE=custom
Wykonanie instrukcji powoduje wyświetlenie niewielkiego menu, które prowadzi użyt-
kownika przez całą procedurę konfiguracyjną, związaną z definiowaniem nazwy orga-
nizacji, określeniem umiejscowienia serwera, nazwy domeny i wszystkich parametrów
zapisywanych w certyfikacie SSL. Niestety wersja oprogramowania mod_ssl dostarczana
wraz z kodem Apache 2.0.52 nie zawiera interfejsu dla programu make. Administrato-
rowi pozostaje więc jedynie wykorzystanie biblioteki OpenSSL. Wynik końcowy jest
oczywiście taki sam jak w przypadku zastosowania oprogramowania pobranego ze strony
modssl.org — tworzony jest certyfikat SSL oraz żądanie podpisania certyfikatu (ang.
Certificate Signing Request — CSR), przesyłane później do urzędu certyfikującego
(ang. Certificate Authority — CA), takiego jak VeriSign czy Entrust. Niestety dojście do
tego etapu nie jest wcale łatwe. Na kolejnym listingu są przedstawione polecenia, które
tworzą katalogi potrzebne do przechowywania plików SSL oraz instrukcje odpowie-
dzialne za wygenerowanie samego certyfikatu.
# mkdir /usr/local/apache/conf/ssl.key
# mkdir /usr/local/apache/conf/ssl.crt
# mkdir /usr/local/apache/conf/ssl.crl
# /usr/local/ssl/bin/openssl req -new -x509 -days 60 –keyout
/usr/local/apache/conf/ssl.key/server.key -out
/usr/local/apache/conf/ssl.crt/server.crt
Using configuration from /usr/share/ssl/openssl.cnf
Generating a 1d24 bit RSA private key
...............++++++
..............++++++
writing new private key to /tmp/server.key
Enter PEM pass phrase:******
Ierifying password - Enter PEM pass phrase:******
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
That you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter . , the field will be left blank.
-----
Country Name (2 letter code) lAUt:PL
State or Province Name (full name) lSome-Statet:slaskie
Locality Name (eg, city) lt:Gliwice
Organization Name (eg, company) lInternet Tidgits Pty Ltdt:Zabezpieczenia Apache
Organizational Unit Name (eg, section) lt:Zabezpieczenia aaa
Common Name (eg, your name or your server s hostname) lt:www.moja_nazwa.pl
Email Address lt:webmaster@moja_nazwa.pl
Rozdział 5. ¨ Najważniejsze moduły zabezpieczeń
147
Sprawdzenie wstępnej konfiguracji
Na tym etapie prac warto sprawdzić, czy moduł mod_ssl będzie poprawnie działał przy
domyślnej konfiguracji. Do uruchomienia serwera należy wykorzystać standardowy
skrypt apachectl, ale tym razem z opcją startssl.
# /usr/local/apache/bin/apachectl startssl
Apache/2.d.52 mod_ssl/2.d.52 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.
Server www.example.com:443 (RSA)
Enter pass phrase:
Ok: Pass Phrase Dialog successful.
# ps -ef | grep httpd
root 38d6 1 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
webserv 38d7 38d6 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
webserv 38d8 38d6 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
webserv 38d9 38d6 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
webserv 381d 38d6 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
webserv 3811 38d6 d 14:23 r dd:dd:dd /usr/local/apache/bin/httpd -k start
-DSSL
Z analizy listingu wynika, że serwer obsługuje mechanizm SSL, co można stwierdzić
na podstawie opcji –DSSL. Ostatni etap procedury obejmuje próbę połączenia się z ser-
werem WWW i sprawdzenie, czy rzeczywiście obsługuje on żądania klienckie. Jeżeli
do testu zostanie wykorzystana aplikacja s_client pakietu OpenSSL, administrator będzie
mógł z
Pobierz darmowy fragment (pdf)