SIK07.rs

Sieci Komputerowe

Protokoły FTP, DHCP, SMTP/IMAP *

Uwaga! Wszystkie zadania praktyczne wymagają bycia zalogowanym do sieci wydziałowej (lokalnie lub przez SSH).

FTP

FTP jest to protokół transferu plików (File Transfer Protocol), który umożliwia ich wymianę między serwerem, a klientem w obydwie strony. Większość protokołów w celu nawiązania połączenia wykorzystuje jeden port, jednak FTP różni się pod tym względem, ponieważ wykorzystuje on dwa porty. Port o numerze 21, tak zwany port kontrolny, służący do nawiązania połączenia z serwerem FTP oraz port o innym numerze do przesyłania danych. Klient FTP inicjuje połączenie na porcie 21. Następnie przeprowadzana jest procedura uwierzytelniania użytkownika. Kiedy klient prosi o dane, serwer otwiera nowe połączenie korzystając z wybranego portu o innym numerze.

FTP jest protokołem tekstowym (w związku z czym nie zabezpieczonym przed podsłuchiwaniem).

Z serwerem FTP możemy komunikować się za pomocą surowego protokołu ftp:

Lub dedykowanego oprogramowania jak np. FileZilla.

Podejście wykorzystujące jeden port do kontroli a osobny port do przesyłania danych jest przestarzałe. Powoduje w praktyce to, że wyniki wywołania komend takich jak ls są przesyłane jako dane. Może to powodować błędy w postaci takiej, że połączenie zostaje nawiązane jednakże nie możemy wykonać określonej komendy FTP.

Domyślnie (w tak zwanym aktywnym trybie) połączenie jest ustanawiane przez wysyłającego do odbiorcy. W tym wypadku wynik wykonania komendy ls zostaje przesłany przez serwer który ustanawia z klientem połączenie na losowym porcie. W praktyce w dzisiejszych czasach w przypadku Firewalli oraz sieci prywatnych (NAT) komunikacja taka nie może być nawiązana (np. ponieważ klient blokuje porty). Rozwiązaniem jest korzystanie z tzw. trybu pasywnego ftp, gdzie wszystkie połączenia są inicjowane przez klienta.

W związku z czym jeżeli chcemy połączyć się z laboratoriów z serwerem FTP musimy wykonac polecenie

ftp 150.254.78.69

Zadanie (2 pkt)

W pliku Plik1 znajduje się log komunikacji pomiędzy klientem a serwerem ftp

Podaj porty na których zachodziła komunikacja oraz listę komend ftp podaną przez użytkownika.

Wykorzystując podejrzane dane na temat użytkownika i hasła połącz się na serwer ftp prowadzącego i załóż tam katalog o nazwie ImieNazwisko (podając w tym miejscu swoje dane). Załącz do tego katalogu dowolny mały plik o rozszerzeniu txt.

Uwaga! możesz też użyć oprogramowania FileZilla (co jest poniekąd prostsze).

Zadanie (1 pkt)

Połącz się na konsoli z serwerem FTP. Sprawdź, czy przesłanie w FTP binarne zajmuje więcej czasu niż tekstowe? Wykonać odpowiedni eksperyment na serwerze (podaj wykorzystane komendy) i opisz jego wynik.

DHCP

DHCP (ang. Dynamic Host Configuration Protocol) to protokół komunikacyjny, który jest wykorzystywany przez usługę DHCP, zbudowaną w architekturze klient-serwer. Usługa ta daje możliwość pozyskania od serwera DHCP danych konfiguracyjnych (i ich dynamiczne przydzielanie) np.

adresu IP
maski sieci
adresy IP serwerów DNS
adresu IP bramy sieciowej

Dane te mogą służyć konfigurowaniu urządzeń połączonych z siecią tak, żeby mogły komunikować się w niej używając protokołu IP.

Wiadomości wysyłane w usłudze DHCP:

DHCPDiscover - klient nadaje wiadomość w poszukiwaniu dostępnych serwerów DHCP.
DHCPOffer - serwer odpowiada klientowi na wiadomość DHCPDISCOVER z oferowanymi parametrami konfiguracyjnymi.
DHCPRequest - klient wysyła żądanie oferowanych parametrów od konkretnego serwera
DHCPAcknowledge (DHCPAck) - wybrany serwer DHCP potwierdza żądanie klienta DHCP wysyłając pakiet DHCPAck
DHCPNak - Jeżeli adres IP nie jest już ważny lub jest w danym momencie używany przez inny komputer, serwer DHCP odpowiada pakietem DHCPNak i klient musi rozpocząć proces dzierżawienia od początku.
DHCPDecline - jeżeli klient określi oferowane parametry konfiguracyjne jako niepoprawne, wysyła pakiet DHCPDecline do serwera i musi rozpocząć porcez od początku.
DHCPRelease - klient DHCP wysyła pakiet DHCPRelease aby zwolnić adres IP i anulować dzierżawienie
DHCPInform - Klient zapytuje serwer DHCP o parametry konfiguracyjne TCP?IP hosta (host ma już przydzielony adres IP)

a5

Opcje komunikatów można znaleźć tutaj:

Zadanie (2 pkt)

W pliku Plik3 znajduje się log komunikacji pomiędzy komputerem a serwerem dhcp.

Odpowiedz na pytania:

Czy komunikaty DHCP są wysyłane po UDP czy po TCP? Jakiego portu używa DHCP?

Podaj adres komputera przypisany mu przez serwer DHCP. Podaj adres serwera DHCP.

Podaj jakie informacje serwer DHCP przekazał do klienta (spójrz na opcje w komunikatach od serwera).

Znajdź jaki host name przesyła klient do serwera DHCP?

Co robi pierwszy przesłany komunikat DHCP Release?

Zadanie (1 pkt)

Podaj jak w systemie Linux wymusić przesłanie komunikatu DHCP Release.

SMTP

SMTP - protokół komunikacyjny opisujący sposób przekazywania poczty elektronicznej w Internecie.

SMTP to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości. Demon SMTP działa najczęściej na porcie 25. Łatwo przetestować serwer SMTP przy użyciu programu telnet.

Aby połączyć się z serwerem SMTP wystarczy wpisać jego adres i port:

nc smtp.wmi.amu.edu.pl 25

Opis komend smtp można znaleźć pod adresem:

Po polsku:

Uwaga! bez autoryzacji serwer pozwoli Ci wysyłać maile tylko na adresy z domeny wmi.amu.edu.pl !

Zadanie (2 pkt)

Korzystając z serwera smtp.wmi.amu.edu.pl wyślij na adres mw@wmi.amu.edu.pl mail z adresu dziekan@wmi.amu.edu.pl w temacie umieszczając swoje imię i nazwisko. Data maila ma być z roku 2020!

W ramach testowania rozwiązania możesz zalogować się na własną skrzynkę na https://poczta.wmi.amu.edu.pl/ i tam wpierw przesyłać do siebie wiadomości.

IMAP / POP3

Do odbioru wiadomości ze skrzynki pocztowej mogą posłużyć nam dwa protokoły IMAP i POP3. Główna różnica między nimi jest taka, że POP3 pobiera wiadomości z serwera i są one z niego usuwane, podczas gdy IMAP służy do odczytywania wiadomości i pozwala na dostęp do poczty wielu urządzeniom na raz.

Komendy protokołu IMAP:

LOGIN [username] [password]
LIST [flags] [folder separator] [search term]
STATUS [mailbox] [flags]
SELECT [mailbox]
FETCH [first]:[last] flags
FETCH [mail number] body[header]
FETCH [mail number] body[text]
LOGOUT

Przykład sesji IMAP możemy znaleźć tutaj:

Połącz się ze swoją uczelnianą skrzynką za pomocą komendy

openssl s_client -connect imap.wmi.amu.edu.pl:993 -crlf

Uwaga! Komendy dla serwera IMAP muszą być poprzedzone aliasem komendy. Np "komenda1 LOGIN user pass".

Zadanie (2 pkt)

Prześlij do siebie maila z załącznikiem (najlepiej jako plik tekstowy). Podaj listę komend protokołu IMAP (począwszy od logowania - usuń z loga hasło użytkownika!), które trzeba wykonać, aby wyświetlić zawartość załącznika z otrzymanego maila.