Sieci Komputerowe

Protokoły FTP, HTTP, SMTP *

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 za pomoca nakładki, czyli systemowo dostępnego polecenia ftp

Podejście wykorzytują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 z laboratoriów łączymy się używając polecenia

ftp -p *adres_serwera*

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.

Zadanie (1 pkt)

Czy przesłanie w FTP binarne zajmuje więcej czasu niż tekstowe? Wykonać odpowiedni eksperyment na serwerze (podaj wykorzystane komendy) i opisz jego wynik.

HTTP

Protokół HTTP (Hypertext Transport Protocol) to protokół, który jest wykorzystywany do komunikacji serwerów WWW z klientami. Komunikacja między klientem a serwerem odbywa się na zasadzie schematu zapytanie-odpowiedź.

Opis pól nagłówków HTTP można znaleźć np tutaj:

Przykład nagłówka:

echo -e "HEAD http://www.staff.amu.edu.pl/~mw/index.html HTTP/1.0\n\n" | nc www.staff.amu.edu.pl 80 | less

Zadanie (1 pkt)

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

Odpowiedz na pytania: Jaki jest domyślny port na którym działa protokół HTTP? Na jakim serwerze (dystrybucji) umieszczona jest strona www.staff.amu.edu.pl/~mw/index.html? Z jakiego systemu i z jakiej przeglądarki dokonywano zapytań?

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:

Zadanie (1 pkt)

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

Jaki jest adres IP na którym działa serwer SMTP? Spróbuj odpowiedzieć na pytanie dlaczego serwer potraktował Janusza w ten sposób?

Zadanie (2 pkt)

Korzystając z serwera smtp.wmi.amu.edu.pl wyślij do prowadzącego mail z adresu dziekan@wmi.amu.edu.pl w temacie umieszczając swoje imię i nazwisko. Data maila ma być wczorajsza!