Cała zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 1 z 11
Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP,
TCP i UDP
Topologia sieci
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 2 z 11
Tabela adresacji
Urządzenie Interfejs Adres IP
Maska podsieci
Domyślna brama
R1-ISP
S0/0/0
10.10.10.6
255.255.255.252
Nie dotyczy
Fa0/0
192.168.254.253 255.255.255.0
Nie dotyczy
R2-Central
S0/0/0
10.10.10.5
255.255.255.252
Nie dotyczy
Fa0/0
172.16.255.254 255.255.0.0
Nie dotyczy
Serwer Eagle
Nie
dotyczy
192.168.254.254 255.255.255.0
192.168.254.253
Nie
dotyczy
172.31.24.254
255.255.255.0
Nie dotyczy
hostPod#A
Nie
dotyczy
172.16.Pod#.1
255.255.0.0
172.16.255.254
hostPod#B
Nie
dotyczy
172.16.Pod#.2
255.255.0.0
172.16.255.254
S1-Central
Nie
dotyczy
172.16.254.1
255.255.0.0
172.16.255.254
Cele nauczania
•
Identyfikacja pól w nagłówku segmentu TCP oraz obserwacja przebiegu komunikacji w sesji FTP
za pomocą programu Wireshark.
•
Identyfikacja pól w nagłówku segmentu UDP oraz obserwacja przebiegu komunikacji sesji TFTP
za pomocą programu Wireshark.
Wprowadzenie
Protokołami warstwy transportowej w stosie TCP/IP są TCP, zdefiniowany w RFC 761 z stycznia
1980r. oraz UDP, zdefiniowany w RFC 768 z sierpnia 1980r. Oba protokoły obsługują
komunikację protokołów wyższych warstw. Na przykład, protokół TCP jest używany w celu
zapewnienia funkcji warstwy transportowej m.in. dla protokołów HTTP i FTP. Natomiast protokół
UDP zapewnia usługi warstwy transportowej m.in. dla protokołów DNS i TFTP.
Znajomość poszczególnych pól w nagłówkach segmentów TCP i UDP oraz przebiegu
ko
munikacji jest bardzo ważna dla inżynierów sieciowych.
Scenariusz
Używając programu Wireshark przeanalizuj pola nagłówków segmentów TCP i UDP podczas
transferu plików między komputerem klienckim i serwerem Eagle . Jeśli Wireshark nie jest
zainstalowany na
komputerze, można ściągnąć z serwera
server.example.com/pub/eagle_labs/eagle1/chapter4/
, plik wireshark-setup-
0.99.4.exe
.
Do połączenia z serwerem Eagle użyte zostaną polecenia linii komend systemu Windows ftp
oraz tftp.
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 3 z 11
Zadanie 1: Identyfikacja pól w nagłówku segmentu TCP oraz obserwacja
przebiegu komunikacji w sesji FTP za pomocą programu Wireshark.
Krok 1: Przechwytywanie sesji FTP.
Sesje TCP są dobrze kontrolowane i zarządzane dzięki wymianie zawartości pól nagłówka segmentu
TCP. W tym zadaniu, nawiązane zostanie połączenie FTP z serwerem Eagle. Po zakończeniu
przechwycona sesja zostanie przeanalizowana. W celu połączenia do serwera FTP na komputerach z
sys
temem Windows użyj klienta FTP, polecenie linii komend ftp . Połączenie FTP
rozpoczniemy od uruchomienia wiersza poleceń i po jego nawiązaniu skopiujemy na komputer kliencki
tekstowy plik konfiguracyjny dla przełącznika S1-central znajdujący się w
pub/eagle_labs/eagle1/chapter4/s1-central
.
Otwórz okno linii poleceń klikając przycisk Start | Uruchom, wpisz cmd i kliknij OK.
Rysunek 1. Okno linii poleceń.
Powinno pojawić się okno podobne do tego na rysunku 1.
W programie Wireshark rozpocznij przechwytywanie ramek na interfejsie, który ma adres
172.16.Pod#[1-2].[1-2]
.
Uruchom połączenie FTP do serwera Eagle. Wpisz polecenie:
>ftp eagle-server.example.com
Zapytany o user id (nazwę użytkownika), wpisz anonymous. Zapytany o hasło, naciśnij klawisz ENTER
.
Zmień katalog FTP na /pub/eagle_labs/eagle1/chapter4/:
ftp> cd /pub/eagle_labs/eagle1/chapter4/
Ściągnij plik s1-central:
ftp> get s1-central
Kiedy ściąganie się skończy, zakończ sesję FTP wpisując w linii komend kleinta FTP polecenie quit :
ftp> quit
Zamknij okno linii poleceń wpisując komendę exit:
> exit
Zatrzymaj przechwytywanie w programie Wireshark.
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 4 z 11
Krok 2: Analiza zawartości pól TCP.
Rysunek 2. Przechwycona sesja FTP.
Przełącz się do okna programu Wireshark z przechwyconą komunikacją. Górna część okna zawiera
skróconą informację każdej przechwyconej ramki. Przechwycona przez studenta komunikacja powinna
być podobna do tej na rysunku 2. Zanim zagłębisz się w szczegóły, należy wyjaśnić skrócone informacje
(podsumowanie) z górnej części okna. Podczas połączenia klienta FTP z serwerem, protokół TCP
warstwy transportowej ma utworzoną kontrolowaną sesję. TCP jest rutynowo używany podczas sesji do
kontroli dostarczenia datagramu, weryfikacji jego dotarcia i zarządzania rozmiarem okna przesuwnego.
Dla każdej nowej wymiany danych między klientem i serwerem FTP tworzona jest nowa sesja. Na
zakończenie wymiany danych sesja TCP jest zamykana. W końcu, kiedy połączenie FTP jest
zakończone, TCP wykonuje procedurę zamknięcia i zakończenia sesji.
Rysunek 3. Przechwycony datagram TCP.
W środkowym oknie programu Wiresharka dostępna jest szczegółowa informacja. Podświetl pierwszy
datagram TCP pochodzący z klienta FTP i przesuń kursor myszy do środkowej części okna. Może być
konieczne dostosowanie rozmi
aru okna i rozwinięcie przechwyconych informacji TCP przez kliknięcie
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 5 z 11
odpowiedniego przycisku rozwinięcia (+). Rozwinięty datagram powinien być podobny do tego na rysunku
3.
Jak można zidentyfikować pierwszy datagram w sesji TCP?
__________________________________________________________________________
__________________________________________________________________________
Rysunek 4. Pola datagramu TCP.
Przyjrzyj się rysunkowi 4, przedstawiającemu datagram TCP. W celu przypomnienia zamieszczamy opis
poszczególnych pól:
•
Numer portu źródłowego TCP przypisany jest do sesji TCP hosta, która otworzyła połączenie.
Wartość ta jest generowana losowo powyżej 1023.
•
Numer portu docelowego
jest używany w celu określenia protokołu warstwy wyższej bądź
aplik
acji na komputerze docelowym (serwerze). Wartość ta należy do zakresu dobrze znanych
portów (ang. well known ports) czyli od 0 do 1023 (włącznie). Numery te są przyporządkowane
do popularnych usług i aplikacji (opisanych w RFC 1700, takich jak: FTP, HTTP). Kombinacja
czterech wartości (źródłowego adresu IP, źródłowego numeru portu, docelowego adresu IP,
docelowego numeru portu) identyfikuje unikalnie sesję dla obu hostów: klienta i serwera.
•
Numer sekwencyjny zawiera numer ostatniego bajtu (oktetu) w segmencie.
•
Numer potwierdzenia
zawiera numer następnego bajtu oczekiwanego przez odbiorcę.
•
Bity kontrolne (flagi)
mają specjalne znaczenie w zarządzaniu sesją i w określaniu sposobu
traktowania segmentu.
Wśród nich wyróżniamy:
•
ACK (bit/flaga potwierdzenia otrzymania segmentu),
•
SYN (bit/flaga synchronizacji, ustawioną tylko wtedy, kiedy nowa sesja jest negocjowana
podczas potrójnego uzgadniania),
•
FIN (bit/flaga zakończ, która oznacza żądanie zamknięcia sesji),
•
Rozmiar okna (przesuwnego)
jest to wartość rozmiaru okna przesuwnego, oznaczająca ile
bajtów może być przesłanych zanim nadawca będzie musiał czekać na potwierdzenie.
•
Wskaźnik ważności (URGENT Pointer) używany wraz z Bitem/flagą ważności. Stosowany jest,
kiedy nadawca chce podkreślić ważność przesyłanych danych.
•
Opcje: jedyna obecnie zdefiniowana opcja to maksymalny rozmiar segmentu TCP (jest to
wartość opcjonalna).
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 6 z 11
Używając programu Wireshark przechwyć pierwszą w sesji TCP ramkę (zawiera flagę SYN ustawioną na
1) i wypełnij informację o nagłówku datagramu TCP:
Kierunek nawiązania komunikacji: z komputera klienckiego do serwera Eagle (tylko wartość bitu SYN
ustawiona na 1):
Adres IP nadawcy: 172.16.___.___
Adres IP odbiorcy: _______________
Numer portu źródłowego:
______________
Numer portu docelowego:
______________
Numer sekwencyjny:
_______________
Numer potwierdzenia: _______________
Długość nagłówka:
_______________
Rozmiar okna =
_______________
Komunikacja (odpowiedź) od serwera Eagle do komputera klienckiego (wartości flag SYN oraz ACK są
ustawione na 1):
Adres IP nadawcy (źródłowy):
________________
Adres IP odbiorcy___.___
Numer portu źródłowego:
______________
Numer portu docelowego:
______________
Numer sekwencyjny:
_______________
Numer potwierdzenia: _______________
Długość nagłówka:
_______________
Rozmiar okna =
_______________
Komunikacja od hosta klienckiego do serwera Eagle (tylko wartość flagi ACK ustawiona na 1):
Adres IP nadawcy (źródłowy):
172.16.___.___
Adres IP odbiorcy: _______________
Numer portu źródłowego:
______________
Numer portu docelowego:
______________
Numer sekwencyjny:
_______________
Numer potwierdzenia: _______________
Długość nagłówka:
_______________
Rozmiar okna :
_______________
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 7 z 11
Pomijając ustanowienie sesji TCP, ile innych datagramów TCP (podczas przesyłania danych) zawiera
ustawiony bit SYN?
__________________________________________________________________________
__________________________________________________________________________
Znana jest metoda ataku wykorzystująca potrójne uzgadnianie poprzez inicjowanie pół-otwartych
połączeń. W takiej sytuacji, nawiązujący sesję TCP, wysyła datagram TCP z ustawioną flagą SYN na 1 i
host docelowy (serwer) odsyła datagram z odpowiedzią z ustawionymi flagami SYN i ACK na 1.
Ostateczne potwierdzenie (od hosta, który nawiązywał sesję) nie zostanie wysłane (a tym samym nie
zakończy się procedura potrójnego uzgadniania). Zamiast tego, nowe połączenie TCP jest nawiązywane
w stanie "pół-otwartym". Pewna ilość sesji TCP w stanie pół-otwartym może wyczerpać zasoby serwera
uniemożliwiając jego działanie. Usługi sieciowe mogą zostać sparaliżowane, może nastąpić zawieszenie
się lub awaria całego systemu operacyjnego. W każdym z przypadków atakujący wygrywa, usługi
sieciowe na serwerze (komputerze docelowym) zostają zatrzymane. Jest to przykład ataku typu odmowa
usługi (ang. Denial of Service).
Rysunek 5. Zarządzanie sesją TCP.
Klient i serwer FTP komunikują się ze sobą nie będąc świadomi, że TCP kontroluje i zarządza nawiązaną
przez nich sesją. Kiedy serwer FTP (serwer Eagle) wysyła odpowiedź: 220 do klienta to TCP na kliencie
odsyła potwierdzenie do TCP na serwerze FTP (serwerze Eagle). Tą wymianę można zaobserwować na
rysunku 5 gdzie jest widoczna w przechwyconych danych w programie Wireshark.
Rysunek 6. Procedura zakończenia sesji TCP.
Kiedy połączenie FTP jest kończone, klient FTP wysyła komendę "quit". Serwer FTP potwierdza
zakończenie połączenia
odpowiedzią: 221 Goodbye. Teraz TCP serwera FTP wysyła datagram do
klienta FTP, ogłaszający zakończenie sesji TCP. TCP na kliencie FTP potwierdza otrzymanie datagramu
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 8 z 11
kończącego sesję i wysyła własny datagram TCP kończący sesję. Kiedy źródło zakończenia sesji TCP,
serwer FTP, otrzyma podwójne zakończenie, datagram z ustawionym bitem ACK jest odsyłany do klienta
aby potwierdzić zakończenie sesji TCP. Ta wymiana pokazana jest na rysunku 6 i można ją znaleźć w
przechwyconej komunikacji za pomocą programu Wireshark.
Bez wykonania procedury zakańczania sesji, np. gdy połączenie między hostami zostanie zerwane, TCP
odczeka pewien czas zanim zamknie sesję. Ten domyślny (standardowy) czas wynosi 5 minut.
Zadanie 2: Identyfikacja pól w nagłówku segmentu UDP oraz obserwacja
(przechwytywanie) przebiegu komunikacj
i TFTP za pomocą programu Wireshark
Krok 1: Przechwycenie sesji TFTP.
Podobnie jak w zadaniu 1, otwórz okno linii komeNie dotyczy
Komenda TFTP ma inną składnię niż
komenda FTP. Na przykład, TFTP nie obsługuje uwierzytelnienia. TFTP używa tylko dwóch komend:
get
, aby pobrać plik i put, aby wysłać plik.
>tftp -help
Przesyła pliki do i z zdalnego komputera z uruchomioną usługą TFTP.
TFTP [-i] host [GET | PUT] adres
źródło [cel]
-i
Określa binarny tryb przesyłania (zwany również trybem
oktetowym). W trybie binarnym plik jest
przesyłany dokładnie
bajt po bajcie (bez zmiany ich postaci).
Używaj tego trybu
kiedy
przesyłasz (kopiujesz/wysyłasz) pliki binarne.
host
Określa lokalny lub zdalny komputer.
GET Przesyła plik ze zdalnego komputera na komputer docelowy.
PUT
Przesyła plik z komputera lokalnego na komputer zdalny.
Źródło To nazwa pliku do przesyłania.
cel
To nazwa pliku ze ścieżką, gdzie należy go przesłać.
Tabela 1. Składnia polecenia TFTP dla klienta z systemem Windows.
Tabela 1 zawiera składnię polecenia klienckiego w systemie Windows. Serwer TFTP ma swój własny
folder na serwerze Eagle, /tftpboot
, który jest inny niż ten obsługiwany przez serwer FTP.
Uwierzytelnienie nie jest obsługiwane.
Uruc
hom przechwytywanie ruchu w programie Wireshark, następnie klientem TFTP Windows uruchom
ściąganie pliku konfiguracyjnego przełacznika s1-central z serwera Eagle. Polecenie i jego składnia
do wykonania tego zadania pokazane są poniżej:
>tftp eagle-server.example.com get s1-central
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 9 z 11
Krok 2: Analiza zawartości pól datagramu UDP.
Rysunek 7. Widok ogólny przechwyconej sesji UDP.
Przełącz się do okna programu Wireshark. Przechwycona przez Ciebie komunikacja powinna być
podobna do tej na rysunku 7. Przesyłanie plików przy użyciu protokołu TFTP zostanie użyte do
analizy operacji zachodzących w warstwie transportowej dla protokołu UDP.
Rysunek 8. Przechwycony datagram UDP programem Wireshark.
W środkowej części okna programu Wireshark dostępna jest szczegółowa informacja (w tym
przypadku o datagramie UDP). Zaznacz (podświetl) pierwszy datagram UDP pochodzący z
komputera lokalnego i przesuń kursor myszy nad środkową część okna. Może być konieczne
dostosowanie rozmiaru okna i rozwinięcie przechwyconych informacji UDP przez kliknięcie
odpowiedniego przycisku rozwinięcia (+). Rozwinięty przez Ciebie datagram UDP powinien być
podobny do tego na rysunku 8.
Rysunek 9. Schemat datagramu UDP.
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 10 z 11
Spójrz na schemat datagramu UDP na rysunku 9. Informacje zawarte w na
główku datagramu
UDP są skąpe w porównaniu z nagłówkiem datagramu TCP. Jednakże są pewne podobieństwa.
Każdy datagram UDP jest identyfikowany przez numery portów UDP źródłowy i docelowy.
Używając przechwyconych informacji przez program Wireshark wypełnij poniższe informacje
dotyczące nagłówka segmentu UDP. Suma kontrolna to liczba szesnastkowa oznaczona
przedrostkiem 0x:
Adres IP nadawcy: 172.16.___.___
Adres IP odbiorcy: _______________
Numer portu źródłowego:
______________
Numer portu docelowego:
______________
Długość wiadomości UDP:
______________
Suma kontrolna UDP: _____________
Jak UDP weryfikuje poprawność datagramu?
__________________________________________________________________________
__________________________________________________________________________
Przeanalizuj pierwszy pakiet TFTP wysłany przez serwer Eagle. Wypełnij informacje dotyczące
nagłówka UDP:
Adres IP nadawcy:
Adres IP odbiorcy___.___
Numer portu źródłowego:
______________
Numer portu docelowego:
______________
Długość wiadomości UDP:
______________
Wartość sumy kontrolnej UDP: 0x
_____________
Zauważ, że zwrócony datagram UDP ma inny źródłowy port, ale ten źródłowy port jest użyty w
dalszym transferze TFTP. Z powodu bra
ku niezawodności połączenia, tylko numer oryginalnego
portu źródłowego, którym rozpoczęto transmisję, używany jest do dalszego zarządzania
komunikacją TFTP.
Zadanie 5: Do przemyślenia
To laboratorium przedstawia studentom możliwości analizy datagramów TCP oraz UDP
przechwyconych podczas przesyłania plików za pomocą FTP i TFTP. TCP zarządza komunikacją
zupełnie inaczej niż UDP, niezawodność i gwarantowane dostarczanie wymaga dodatkowych
informacji kontrolnych przesyłanych kanałami komunikacyjnymi. UDP charakteryzuje się
mniejszym narzutem oraz zapewnia mniejszą kontrolę transmisji, tak więc protokół warstwy
Kurs CCNA Exploration
Podstawy sieci komputerowych
Warstwa transportowa modelu OSI Laboratorium 4.5.2:
Protokoły warstwy transportowej modelu TCP/IP, TCP i UDP
Ca
ła zawartość niniejszych materiałów jest własnością Cisco Systems, Inc. ©1992-2007 Wszelkie prawa zastrzeżone. Ten dokument zawiera
publicznie dostępne informacje firmy Cisco.
Strona 11 z 11
wyższej musi zapewnić jakiś rodzaj potwierdzania. Nie mniej, oba protokoły są odpowiednie do
transportu danych protokołów wyższych warstw (np. warstwy aplikacji) pomiędzy klientem a
serwerem.
Zadanie 6: Wyzwanie
Ponieważ FTP i TFTP nie są bezpiecznymi protokołami, wszystkie dane przesyłane za ich
pomocą wysyłane są czystym tekstem, nie wyłączając nazw użytkowników i haseł. Analizując
sesję FTP szybko odnajdziemy nazwę użytkownika i hasło oraz hasła w plikach konfiguracyjnych.
Analiza danych przesyłanych za pomocą TFTP jest trochę bardziej skomplikowana, ale i tu da się
odnaleźć nazwy użytkowników i hasła.
Zadanie 7: Porządkowanie i zakończenie
Podczas
tego laboratorium na komputer zostało przesłanych kilka plików, które powinny zostać
usunięte.
O ile instruktor nie wskazał inaczej, wyłącz zasilanie komputerów. Zabierz wszystkie rzeczy
przyniesione do laboratorium. Pozostaw pomieszczenie w stanie goto
wym do rozpoczęcia zajęć
z następną grupą studentów.