Technologia Internetowe - Ćwiczenia 1


Harmonogram Następne
Temat: Wstęp organizacyjny. Podstawowe wiadomości o internecie. E-mail

Zapoznanie się z zasadami przyjętymi na zajęciach

Zasady można znaleźć tutaj.

Tematyka zajęć 1

Pojęcia podstawowe

  1. Internet
  2. IP
  3. Domena, domeny głównego poziomu
  4. DNS
  5. ISP
  6. traceroute
  7. Whois
  8. protokoły e-mail
  9. własności i bezpieczeństwo poczty
  10. szyfrowanie i podpisywanie wiadomości (OpenPGP)
  11. dostawcy usług
  12. szyfrowanie End-to-End - ProtonMail.com

Przebieg zajęć

  1. Wprowadzenie do tematyki zajęć, udostępnienie materiałów dydaktycznych.
  2. Omówienie internetu: jak jest skonstruowany, czym jest IP, jaką rolę odgrywają domeny internetowe, jaką rolę pełni ISP
  3. traceroute
  4. Whois
  5. konfiguracja DNS
  6. Wprowadzenie do tematyki zajęć, udostępnienie materiałów dydaktycznych.
  7. Krótkie omówienie historii email oraz protokołów POP3 i SMTP.
  8. Wysyłanie wiadomości przez telnet (SMTP)
  9. Konfiguracja klucza OpenPGP

Materiały do zajęć

Zadania do realizacji na zajęciach

Zadanie 1 - traceroute

  1. Za pomocą narzędzia traceroute znajdź trasę z Twojego komputera do stron onet.pl i kurnik.pl.

    $ tracert onet.pl
    $ tracert kurnik.pl

    Porównaj z mtr na Linuksie. Konkurs na najdłuższą trasę.

  2. Skorzystaj ze strony http://www.spy-ip.com/ aby sprawdzić, gdzie znajdują się adresy IP, przez które wiedzie trasa. Wypróbuj polecenie tracert także dla innych stron. Czy trasa przebiega zawsze tak, jak się spodziewasz?

Zadanie 2 - Whois

  1. Za pomocą programu Whois (wywoływanego w cmd) znajdź kontakt do administratorów/właścicieli domen: amu.edu.pl, google.com, facebook.com.

    $ whois amu.edu.pl

    Czy uzyskane informacje są zawsze kompletne? Wypróbuj polecenie także dla innych znanych Ci stron.

Zadanie 3 - konfiguracja serwera DNS

  1. Obejrzyj film pokazujący konfigurację serwera DNS. Czym jest DNS?

Materiały do e-mail

Zadania do realizacji na zajęciach

Zadanie 1 - SMTP

  1. Zaloguj się na uczelniany serwer pocztowy korzystając z narzędzia telnet

    $ telnet pp.amu.edu.pl 587
  2. Przywitaj się z serwerem poleceniem helo.

    helo pp.amu.edu.pl
  3. Spróbuj wysłać wiadomość jako na adres prowadzącego zajęcia

    mail from: <rectorof@amu.edu.pl>
    rcpt to: <rmiw@amu.edu.pl>
    Jaka jest odpowiedź serwera ?
  4. Skoro serwer odrzuca nasze żądanie, próbujmy się zalogować. W tym celu wykorzystamy rozszerzony protokół SMTP-AUTH. Polecenie ehlo zwraca listę wspieranych przez serwer opcji.

    ehlo pp.amu.edu.pl
    auth plain
    AHVzZXIAcGFzcw==

    AHVzZXIAcGFzcw== jest zakodowanym (base64) loginem i hasłem. Przykładowo można to zrobić w następujący sposób.

    $ echo -n -e '\0user\0pass' | base64
  5. Na szczęście serwer odrzuci nasze żądanie (niezależnie od podania poprawnych danych). Dlaczego ?

Zadanie 2 - Gmail

  1. Powtórz procedurę dla serwerów Gmail (smtp.gmail.com, port 587). Jaką odpowiedź tym razem uzyskujemy. Czy serwer oferuje nam uwierzytelnianie AUTH PLAIN?

Zadanie 3 - STARTTLS

  1. Większość współczesnych serwerów wymaga przynajmniej podstawowego szyfrowania komunikacji. Spróbujemy wysłać wiadomość e-mail korzystając z serwerów Gmail. Wykorzystamy do tego następujące konto: (zakodowane base64: AGR0aW4uMjAxOGxAZ21haWwuY29tAGR0aW5AdWFt).
  2. Nawiązujemy połączenie szyfrowane z serwerem Gmail:

    $ openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587
  3. Czy wynik komendy ehlo zmienił się?
  4. Logujemy się do serwera

    ehlo smtp.gmail.com
    auth plain
    AGR0aW4uMjAxOGxAZ21haWwuY29tAGR0aW5AdWFt
  5. Następnie wysyłamy wiadomość do swojego prowadzącego tak samo jak w pierwotnym protokole SMTP:

    mail from: <dtin.2018l@gmail.com>
    rcpt to: <rmiw@amu.edu.pl>
    data
  6. Wpisujemy treść wiadomości (nie zapomnij o kropce na końcu)

    Date: 30 Jan 18 21:21:21
    From: dtin.2018l@gmail.com
    To: rmiw@amu.edu.pl
    Subject: temat wiadomosci
    
    tresc wiadomosci
    .
  7. Kończymy sesje z serwerem poleceniem quit.

Zadanie 4 - eksperymenty z Gmail

  1. Spróbuj zmienić dane w treści wiadomości z poprzedniego zadania. Czy da się wysłać wiadomość z datą wsteczną albo podpisaną jako ktoś inny?

Zadanie 5 - Generowanie kluczy OpenPGP

  1. Podpisywanie i szyfrowanie wiadomości email to bardzo ważna umiejętność. W ramach tego zadania wygenerowane zostaną klucze OpenPGP.
  2. Aby utworzyć klucz OpenPGP należy użyć polecenia gpg. Wartości domyślne większości parametrów są odpowiednie. Proszę podać poprawne dane (imię, nazwisko i adres email) - będzie to potrzebne przy zadaniu domowym.

    $ gpg --gen-key
  3. Następnym krokiem będzie dodanie wygenerowanego klucza na serwer (w miejsce 3303CE03 wstaw id swojego klucza):

    $ gpg --send-keys --keyserver keyserver.ubuntu.com 3303CE03

Zadania zaliczeniowe

Podstawowe

Zadania podstawowe sprawdzane są automatycznie, stąd ważne jest wysłanie na odpowiedni adres i zachowanie wskazanego tytułu wiadomości. Email to zupełnie inne konto pocztowe niż (jak to sprawdzić?).

Wyniki zadań dostępne są w pliku tekstowym pod adresem http://kino.vm.wmi.amu.edu.pl/dtin/######.txt, gdzie ###### to sześciocyfrowy numer indeksu.

Zadanie 2.1 - Fałszywy email

Wysłać email z zadanego, nieistniejącego adresu (test@test.pl) oraz z datą wsteczną (1 stycznia 2000 roku) na adres bikol@wmi.amu.edu.pl. Tytuł wiadomości: “[DTIN] Z2.1 ######”, gdzie ###### to sześciocyfrowy numer indeksu.

Zadanie 2.2 - Podpis PGP

Wysłać email podpisany cyfrowo przez OpenPGP korzystając z certyfikatu OpenPGP wygenerowanego na zajęciach na adres bikol@wmi.amu.edu.pl. Tytuł wiadomości: “[DTIN] Z2.2 ######”, gdzie ###### to sześciocyfrowy numer indeksu. Podpis wiadomości powinien być umieszczony w załączniku.

Zadanie 2.3 - Szyfrowanie PGP

Wysłać zaszyfrowany przez OpenGP e-mail na adres bikol@wmi.amu.edu.pl korzystając z certyfikatu o id klucza: 3303CE03. Tytuł wiadomości: “[DTIN] Z2.3 ######”, gdzie ###### to sześciocyfrowy numer indeksu.

Dodatkowe

Zadanie D 2- Zdalne sterowanie komputerem poprzez email

Należy napisać skrypt bash odczytujący wiadomości e-mail (o zadanej, zdefiniowanej przez studenta formie) z zadanej skrzynki pocztowej i następnie wykonujący treść takiej wiadomości jako polecenia powłoki Bash. Wynik wywołania tych poleceń powinien być wysyłany zwrotnie również jako wiadomość e-mail. Skrypt należy uruchamiać regularnie np. co 1 minutę za pomocą narzędzia cron. Całość powinna być zaimplementowana na studenckiej maszynie wirtualnej.

Przydatne narzędzia:

Tak napisany skrypt bash można wysłać na adres prowadzącego: rmiw@amu.edu.pl