Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail
Transkrypt
Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail
N, Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 1 Domain Name Service ■ Usługa Domain Name Service (DNS) Protokół UDP (port 53), klient-serwer Sformalizowana w postaci protokołu DNS Odpowiada za rozwiązywanie (resolve) nazw zrozumiałych dla człowieka na numery IP Realizuje usługę na zasadzie rozproszonej struktury danych Działa na zasadzie hierarchicznej struktury nazw domen oraz serwerów nazw Organizacja nadrzędna: ICANN (.pl: NASK) http://www.icann.org, http://iana.org, http://www.dns.pl A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 2 Hierarchiczna struktura nazw .. com com google google org org (...) amazon amazon pl pl fr fr (...) edu edu pw pw arpa arpa in-addr in-addr 212 212 195 195 Nazwy mają strukturę odwróconego drzewa ■ Zapisujemy je od najbardziej szczegółowego członu (konkretnego komputera) po lewej do najbardziej ogólnego po prawej, zwykle pomijając kończącą kropkę (korzeń drzewa – root) ■ Domeny głównego poziomu: organizacyjne (.com, .org, .net etc.) i geograficzne (.pl, .fr, .eu, etc.) ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 3 Serwery DNS Pojedynczy serwer ma informację na temat części przestrzeni nazw (tzw. strefy). Strefa może zawierać mniejsze części, na temat których informacje zawierają inne serwery DNS (delegacja strefy). Np. serwer domeny .edu.pl deleguje obsługę domeny .pw.edu.pl serwerowi DNS na PW ■ Każda domena wymaga minimum dwóch serwerów DNS (primary, secondary). Drugi zwykle pobiera informacje z pierwotnego (zone transfer) ■ W internecie mamy 13 głównych serwerów (root servers), które odpowiadają za domeny głównego poziomu ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 4 DNS – sekwencja zapytań aplikacja ? resolver www.pw.edu.pl .pl = ? serwer DNS globalny DNS ? .ed pw w. ww plik danych ? u.p l= cache ? edu.pl = pw.edu.pl = Za komunikację z DNS odpowiada „resolver”, w Linuxie to po prostu biblioteka systemowa ■ „Lokalny” serwer DNS przechowuje informacje o komputerach we własnej strefie, i buforuje informacje z „globalnego” DNS ■ Globalny DNS działa na zasadzie rozproszonej, poprzez delegację stref ■ Zapytanie rekurencyjne (resolver do serwera) wymaga pełnej odpowiedzi (lub błędu), zapytanie iteracyjne (serwer do serwera) pozwala na wskazanie kolejnego serwera ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 5 Rekordy zasobów ■ DNS przechowuje nie tylko dane o nazwach. Możliwe są następujące typy rekordów: SOA – w konfiguracji serwera DNS opisuje parametry strefy i potwierdza wiarygodność (authority) serwera NS – podaje numery IP serwerów DNS strefy A – zwykły wpis (nazwa – numer IP) PTR – domena odwrotna (numer IP – nazwa) CNAME – alias dla już zdefiniowanej nazwy MX – domyślny serwer poczty dla domeny HINFO – dodatkowe informacje o serwerze (często pusty ze względów bezpieczeństwa) A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 6 Diagnostyka: nslookup i dig nslookup umożliwia odpytywanie o rekordy DNS. Standardowo pytania wysyła do domyślnego serwera, zakłada że pytamy o adres IP (typ A) set debug – włącza tryb debug (więcej informacji) server=yyy.zzz.vvv – zmienia serwer set query=aa – zmienia typ rekordu w pytaniu ■ Polecenie dig działa podobnie, ale nie ma trybu interaktywnego. Parametry podajemy w linii poleceń: @xxx – serwer inny niż domyślny, [mx, ns, a, ...] - typ rekordu, opcja -x – zapytanie odwrotne. ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 7 Secure Shell (SSH) SSH to zestaw aplikacji i bibliotek umożliwiających szyfrowanie połączeń oraz kompresję danych ■ Szyfrowanie odbywa się przy pomocy algorytmu asymetrycznego (klucz prywatny i publiczny) ■ Aby móc połączyć się z komputerem przy pomocy SSH, należy na nim uruchomić odpowiedni serwer (sshd), nasłuchujący na porcie 22 ■ Możliwości ssh: zdalny terminal (możliwość zalogowania na zdalny komputer), z całkowicie szyfrowanym połączeniem (polecenie ssh) szyfrowane kopiowanie plików (polecenie scp) przekierowywanie niechronionych połączeń przez szyfrowany kanał możliwość logowania przy pomocy kluczy prywatnych (bez konieczności podawania hasła) ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 8 Protokół HTTP Usługa oferująca na żądanie transfer danych, w szczególności plików w formacie HTML (stron WWW) ■ Protokół TCP, port 80 (8080, 8008) dla HTTP, oraz 443 dla HTTPS (połączenie z szyfrowaniem) ■ Strona WWW składa się w obiektów: samego podstawowego tekstu strony, oraz innych elementów, np. plików graficznych ■ Dokumenty adresujemy w standardzie URL ■ Dla HTTP serwerem są dedykowane aplikacje (serwery WWW), klientem jest przeglądarka ■ http://netcraft.com ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 9 Komunikacja HTTP Komunikacja HTTP polega na wymianie wiadomości (message), czyli pytania i odpowiedzi. ■ Najpopularniejsze usługi (metody – pytania) HTTP: GET – żadanie zasobu (nagłówek + treść) HEAD – żądanie tylko nagłówka zasobu POST – żądanie odebrania danych od klienta PUT – żądanie odebrania pliku od klienta ■ Serwer odsyła odpowiedź, w której znajduje się kod statusu żądania oraz sam obiekt: 1xx: informacyjne (żądanie w trakcie realizacji) 2xx: sukces (akcja wykonana) 3xx: przekierowanie (przeniesienie obiektu) 4xx: błąd klienta (złe żądanie, brak możliwości spełnienia żądania) 5xx: błąd serwera http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 10 ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail e-mail: SMTP, POP3, IMAP SMTP POP3, IMAP, HTTP ■ Poczta internetowa (e-mail) to jedna z najstarszych usług warstwy aplikacji. Udostępnia asynchroniczne dostarczanie wiadomości (tekstowych) pomiędzy użytkownikami. A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 11 Wysyłanie: SMTP i MIME Simple Mail Transfer Protocol (SMTP) to protokół przesyłania wiadomości pomiędzy serwerami korzysta z połączeń TCP port 25 (niezawodność), zwykle bez pośredników – dwa symetryczne połączenia klient-serwer. Nie wymaga autoryzacji. Umożliwia ponawianie wysyłania w przypadku niemożności dostarczenia przesyłki Używa tylko znaków ASCII (7 bitów) Wymaga poprawnego adresu nadawcy i odbiorcy Można ograniczyć wysyłanie/odbieranie wiadomości tylko do lokalnych użytkowników (close relay vs. open relay) ■ MIME Rozszerzenie SMTP pozwalające na wysyłanie danych innych niż tekstowe: konwersję na 7-bitowe kody ASCII ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 12 Odbieranie: POP3, IMAP, HTML POP3 to prosty protokół odbioru informacji ze skrzynki pocztowej. Umożliwia pobranie i skasowanie wiadomości ze skrzynki. Wymaga autentykacji (logowania). Port 110. ■ IMAP to zaawansowany protokół manipulowania skrzynką pocztową. Umożliwia przetrzymywanie informacji w folderach na serwerze, wyszukiwanie, dostęp offline, dostęp z wielu punktów (mobilne) ■ Skrzynka może być też dostępna przy pomocy dedykowanego serwera HTTP. Wykorzystujemy dwustronną komunikację udostępnianą przez protokół HTTP. ■ A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail 13