Protokół HTTP (2) I) Wprowadzenie Celem ćwiczenia jest zapoznanie z protokołem HTTP. Ćwiczenie obejmuje takie zagadnienia jak: a) instalację i konfigurację serwera HTTP (Apache2), b) uwierzytelnianie dostępu i bezpieczeństwo, c) porównanie wersji protokołu HTTP 1.0 i 1.1, d) metody realizacji wirtualnych sesji HTPP. W ramach ćwiczenia używany będzie serwer HTTP Apache - najczęściej stosowane do tego celu oprogramowanie. Pomocą przy wykonywaniu zadań służyć może dokumentacja dostępna w systemie (strony podręcznika systemowego: apache2, htpasswd) oraz dokumentacja w Internecie, np.: http://httpd.apache.org/docs/2.2/. Do wykonania ćwiczenia wystarczy pojedyncza maszyna wirtualna połączona siecią skonfigurowaną w trybie host-only oraz przeglądarka internetowa natywnego systemu Windows i połączenie z Internetem. II) Użyte narzędzia: Apache2 serwer HTTP apt-get manager pakietów Mozilla Firefox przeglądarka internetowa Wireshark analizator ruchu ping - narzędzie diagnostyczne: implementacja ICMP Echo i ICMP Reply dhclient - klient protokołu DHCP dostępny w systemie GNU/Linux.3. III) Kolejność działań 1) Instalacja serwera HTTP Apache2 a) Używając narzędzia apt-get zainstaluj i uruchom serwer Apache2. Wskazówki: - Użyj polecenie apt-get install apache2 (do instalacji), - Używaj poleceń /etc/init.d/apache2 start oraz /etc/init.d/apache2 restart (do startu/restartu serwera HTTP). b) Sprawdź poprawność instalacji łącząc sie za pomocą przeglądarki w systemie natywnym z domyślną stroną stworzoną na serwerze podczas instalacji (tj. ze stroną z komunikatem It works ).
2) Połączenie szyfrowane HTTPS: a) Dodaj funkcjonalność połączenia szyfrowanego połączenia przy pomocy ssl. Przetestuj działanie i zaobserwuj w analizatorze Wireshark jak wygląda komunikacja w takim połączeniu. Wskazówki: - Zainstaluj moduł ssl w apache2. - Dopisz port 443 do listy portów, które używa serwer. Użyj pliku konfiguracyjnego: /etc/apache2/ports.conf. - Stwórz plik z certyfikatem połączenia: - Dopisz do pliku konfiguracyjnego /etc/apache2/sites-enabled/000default obsługę portu 443. b) Zrestartuj serwer i przetestuj działanie, łącząc się z przeglądarki w systemie natywnym ze stroną na serwerze używając protokołu HTTPS (np. połącz się z https://192.168.56.101 jeśli adres serwera to 192.168.56.101) 3) Porównanie wersji protokołu HTTP 1.0 i 1.1 a) Używając narzędzia konfiguracyjnego przeglądarki Firefox (about:config analogicznie jak w punkcie 4) przetestuj działanie przeglądarki w trybach zgodnym z HTTP v.1.1 i HTTP v.1.0. Kończąc pracę pamiętaj by ustawić tryb na zgodny z HTTP 1.1 - Sprawdź ustawienie parametru network.http.pipelining oraz innych parametrów związanych z pipelining oraz je zinterpretuj. Wskazówka: Użyj filtru pipelining by ograniczyć wyświetlone parametry przeglądarki HTTP.
b) Zaobserwuj w analizatorze Wireshark ile żądań przeglądarki HTTP może być zawartych w jednym połączeniu TCP gdy przeglądarka działa w trybie HTTP 1.0.? Analogicznie zaobserwuj w analizatorze Wireshark ile żądań przeglądarki HTTP może być zawartych w jednym połączeniu TCP gdy przeglądarka działa w trybie HTTP 1.1 z różnymi ustawieniami parametru network.http.pipelining.maxrequests (np. dla parametru ustawionego na 2, 4 lub 8)? 4) Metody realizacji wirtualnych sesji HTTP a) Wykorzystaj stronę www.try-phpbb.com oferującą szablon forum do przetestowania działania mechanizmu ciasteczek (ang. cookies). Stwórz konto użytkownika i zaloguj się na nim (użyj dowolnych danych). Przy pomocy opcji przeglądarki Firefox przeanalizuj działanie ciasteczek. UWAGA: Przed rozpoczęciem upewnij się, że mechanizm ciasteczek jest włączony. Wskazówka: Dostęp do ustawień dotyczących ciasteczek można uzyskać klikając na ikonkę przy adresie i wybierając Więcej informacji : a następnie wybierając Wyświetl ciasteczka w zakładce Bezpieczeństwo :
- Jaka jest rola ciasteczka dotyczącego SID (SessionID)? - Czy możliwe jest podczas jednej sesji zalogowanego użytkownika korzystanie z kilku zakładek przeglądarki? - Co powoduje skasowanie ciasteczka dotyczącego SID? b) Przechwytując komunikaty HTTP w analizatorze Wireshark zlokalizuj pola związane z mechanizmem ciasteczek oraz zinterpretuj ich ustawienia. c) Zablokuj mechanizm ciasteczek dla strony www.try-phpbb.com i przetestuj działanie forum z takimi ustawieniami. Wskazówka: By zmienić ustawienia można kliknąć na ikonkę przy adresie i wybrać Więcej informacji : a następnie odpowiednio zablokować ciasteczka w zakładce Uprawnienia :
- Jak dla strony www.try-phpbb.com rozwiązany jest problem trzymania sesji użytkownika z wyłączonym mechanizmem ciasteczek? - Zaobserwuj przy pomocy analizatora Wireshark (w komunikatach HTTP) mechanizm, który zapewnia utrzymanie sesji mimo wyłączonego mechanizmu ciasteczek. - Czy w tym scenariuszu możliwe jest podczas jednej sesji zalogowanego użytkownika korzystanie z kilku zakładek przeglądarki? a) Kończąc pracę usuń blokowanie ciasteczek. Autorzy: dr Paweł Misiorek, inż. Maciej Urbański, dr inż. Andrzej Szwabe.