N, Wykład 5: Najważniejsze usługi sieciowe: 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 2
Hierarchiczna struktura nazw.. com org (...) pl fr (...) arpa google amazon edu in-addr pw 212 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.) 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 4
aplikacja resolver DNS sekwencja zapytań? www.pw.edu.pl?.pl = plik danych serwer DNS globalny DNS? www.pw.edu.pl =?? edu.pl = cache 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 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) 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. 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) 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 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
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. 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 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. 13