Institute of Computer Science
  1. Courses
  2. 2022/23 fall
  3. Operating Systems (LTAT.06.001)
ET
Log in

Operating Systems 2022/23 fall

  • Pealeht
  • Loengud
  • Praktikumid
  • Kodutööd

Rakenduskihi protokollid

Eelmises praktikumis vaadeldud marsruutimine moodustab vundamendi, mille peale on ehitatud rakenduskihi protokollid. Rakenduskihi protokollid on need, mis panevad võrgu tegema reaalselt midagi kasulikku. Praktikumis vaatleme järgmisi protokolle:

  • DNS (domain name system) – nimelahendus (ehk nimede teisendamine IP-aadressideks)
  • HTTP (hypertext transfer protocol) – veeb
  • SMTP (simple mail transfer protocol) – e-mail

Tööks kasutame seekord ssh-ühenduse vahendusel math.ut.ee serverit. SSH-ühendust saate Windows-keskkonnas mugavalt luua programmiga putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html (Täitke ära avaaknas Session ainult Host Name (or IO address) väärtusega math.ut.ee. Pärast Open vajutamist küsitakse teilt TÜ kasutajatunnust ja parooli. Linuxi ja MACi kasutajad saavad kasutada sisse ehitatud SSH-klienti käsurea käsuga ssh -oHostKeyAlgorithms=+ssh-dss TÜkasutaja@math.ut.ee.)

DNS (domain name system)

Võrgukihi tasemel toimub kõikide arvutite poole pöördumine IP-aadressidega. Hulga numbrite, nagu 193.40.5.67 ja 213.168.24.212 meeles pidamine on inimese jaoks tülikas. Selle lahenduseks ongi välja mõeldud nimesüsteem, mis võimaldab vastavate arvutite poole pöörduda nimedega mail.ut.ee või www.err.ee.

Staatilised nimed

Algne viis nimedega teiste arvutite poole pöördumiseks oli kirjutada kõik teadaolevad nimed ja aadressid /etc/hosts-faili (Windowsi all C:\Windows\System32\drivers\etc\hosts). Näiteks, kui kirjutada sellesse faili järgmine rida:

193.40.5.73  www.libaeenet.ee

Nüüd avaneks veebilehitsejas (näiteks Firefoxis) nime www.libaeenet.ee alt lehekülg www.ut.ee (küll vigadega, aga sellest allpool). Hosts-faili ülekirjutamist kasutavad mõned viirused ja pahavarad, et tuntud lehekülgi (nt www.swedbank.ee) oma serverisse suunata. Näiteks tutvuge math.ut.ee serveri /etc/hosts-faili sisuga. Kuhu viitab newmath.domenis.ut.ee?

Nimelahendus

Kõikide maailma arvutite üleslugemine hosts-failis pole reaalne. Seetõttu ongi DNS protokoll, mille abil on võimalik serveri käest küsida nimele vastavat IP-aadressi. Nimele vastava IP-aadressi leidmist kutsutakse nime lahendamiseks (resolving a name, name resolution), vastavat serverit nimeserveriks. Süsteemi nimeserveri aadress on seadistatud failis /etc/resolv.conf.

[alop@math ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search ut.ee
nameserver 172.17.0.217
nameserver 172.17.0.31

Nimeserveri enda aadress tuleb loomulikult anda IP-aadressina, mitte nimena. Antud juhul on Math-serveris seadistatud nimeserveriks TÜ sisemised nimeserverid, mis vajadusel edastavad päringud järgmistele nimeserveritele. Seadistus search määrab ära domeeni, mida püütakse liita lahendatava nime lõppu, kui esialgse nime lahendamine ei õnnestu.

Nimelahenduse testimiseks on abiks käsk nslookup:

[alop@math ~]$ nslookup www.ut.ee
Server:         172.17.0.217
Address:        172.17.0.217#53

Non-authoritative answer:
Name:   www.ut.ee
Address: 193.40.5.73

DNS-süsteemis on võimalik nime tähistada ka aliasena, s.t lahendada nimi samaks IP-aadressiks nagu see teine nimi.

[alop@math ~]$ nslookup mail.ut.ee
Server:         172.17.0.217
Address:        172.17.0.217#53

Non-authoritative answer:
mail.ut.ee      canonical name = mailhost.ut.ee.
Name:   mailhost.ut.ee
Address: 193.40.5.67
Name:   mailhost.ut.ee
Address: 193.40.5.66

Antud vastus ütleb, et mail.ut.ee kanooniline nimi (põhinimi) on mailhost.ut.ee ning mailhost.ut.ee-l on kaks võimalikku aadressi: 193.40.5.66 ja 193.40.5.67. Nendest võib kasutada ükskõik kumba, mitme aadressi omistamist samale nimele kasutatakse koormuse jaotamise eesmärgil. Vaata näiteks, mitu IP-aadressi on www.delfi.ee-l!

Nimekirjed

DNS-andmebaasis hoitakse lisaks IP-aadressidele ka mitmesugust muud infot domeenide kohta:

A
nimele vastav IP-aadress
NS
domeeni nimeserver
CNAME
tegemist on aliasega, tuleb lahendada samamoodi nagu see teine nimi (kanooniline nimi)
MX
domeeni meiliserver (mail exchanger)
TXT
vaba tekstiline kirjeldus
SPF
spämmi vastu võitlemise reeglid

Täieliku nimekirja DNS-kirjete tüüpidest leiab siit.

Näiteks domeeni meiliserveri küsimine nslookupiga interaktiivses režiimis saab toimuda nii (NB! sisesta ainult domeen ilma www või mõne muu prefixita):

[alop@math ~]$ nslookup
> set type=MX
> server 193.40.0.12
Default server: 193.40.0.12
Address: 193.40.0.12#53
> ut.ee
Server:         193.40.0.12
Address:        193.40.0.12#53

Non-authoritative answer:
ut.ee   mail exchanger = 10 berta.it.da.ut.ee.
ut.ee   mail exchanger = 10 frida.it.da.ut.ee.

Authoritative answers can be found from:
> exit

või käsurea parameetritena:

nslookup -type=mx ut.ee 193.40.0.12

Eelnevast võib välja lugeda, et domeeni ut.ee ametlikud meiliserverid on frida.it.da.ut.ee ja berta.it.da.ut.ee, kusjuures berta ja frida mõlemad on prioriteediga 10. Allpool olevad kirjed tähistavad domeeni ut.ee nimeservereid, kelle käest saab autoriteetse (lõpliku, kindla) vastuse päringule, sest praegune vastus on vahendatud mõne teise serveri poolt.

Eelnevas kasutasime DNSi testimiseks nslookup-käsku, kuna see on olemas ka Windowsis. Linuxis (k.a. serveris math.ut.ee) on veel sarnase väljundiga käsud host ja dig.

[alop@math ~]$ dig MX ut.ee @193.40.0.12

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> MX ut.ee @193.40.0.12
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39574
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ut.ee.                         IN      MX

;; ANSWER SECTION:
ut.ee.                  571     IN      MX      10 berta.it.da.ut.ee.
ut.ee.                  571     IN      MX      10 frida.it.da.ut.ee.

;; Query time: 2 msec
;; SERVER: 193.40.0.12#53(193.40.0.12)
;; WHEN: Mon Dec  5 09:56:14 2022
;; MSG SIZE  rcvd: 73

[alop@math ~]$ dig www.ut.ee @1.1.1.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.ut.ee @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13779
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.ut.ee.                     IN      A

;; ANSWER SECTION:
www.ut.ee.              10800   IN      A       193.40.5.73

;; Query time: 72 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Mon Dec  7 10:11:59 2020
;; MSG SIZE  rcvd: 43

Vahepeal tekib ka küsimus, et on vaja teada, millisele nimele mis IP-aadress vastab. Selleks võib kasutada avalikku internetiotsingut (nn whois-otsing, näiteks hiljuti uudistes olnud IP-aadressi info https://ipinfo.io/193.40.226.194) või käsku host 193.40.226.194. Aeg-ajalt on vaja teada ka, milliseid nimeservereid mingi domeen kasutab. TÜ nimeserverid leiab näiteks käsuga nslookup -type=NS ut.ee 8.8.8.8, kus NS ütleb, et küsime nimeserverit (NameServer), ja 8.8.8.8 on Google'i levinuim avalik DNS-serveri IP-aadress (nagu 1.1.1.1 või 194.40.0.12 eelnevates näidetes).

[alop@math ~]$ nslookup
> set type=NS
> server 193.40.0.12
Default server: 193.40.0.12
Address: 193.40.0.12#53
> ut.ee
Server:         193.40.0.12
Address:        193.40.0.12#53

Non-authoritative answer:
ut.ee   nameserver = ns2.EENet.ee.
ut.ee   nameserver = ns.ut.ee.
ut.ee   nameserver = ns2.ut.ee.

Authoritative answers can be found from:
ns.ut.ee        internet address = 193.40.5.99
ns2.ut.ee       internet address = 193.40.5.76
ns2.ut.ee       has AAAA address 2001:bb8:2002:500::76
> exit

Või käsurea parameetritena:

nslookup -type=ns ut.ee 193.40.0.12

Ülesanne 1

Lisa oma praktikumi vikilehele ekraanivaated:

  1. oma lemmikveebilehe IP-aadress(id); (ei või kasutada juhendis olevaid TÜ aadresse)
  2. vastava domeeni DNS- ja meiliserver(id); (NS- ja MX-kirje päringud)
  3. eelmises punktis leitud vähemalt ühe meiliserveri IP-aadress. (Pead küsima MX-käsuga kõigepealt meiliserveri nime ja siis uurima, milline IP-aadress nimele vastab.)

TCP (transmission control protocol)

Kui DNS põhines esmasena paketipõhisel UDP-transpordiprotokollil, siis järgnevad protokollid on voopõhised ja baseeruvad TCP transpordiprotokollil. Voopõhine protokoll tähendab seda, et luuakse ülemisele kihile toru kahe arvuti vahel, kus ühest otsast lükkad andmeid sisse ja teisest võtad välja. TCP tegeleb andmevoo jagamisega pakettideks, nende saatmise ning teises otsas õiges järjekorras kokkupanemisega, kaotsi minemisel uuesti saatmisega, saatmiskiiruse reguleerimisega (nt võrgus võivad olla ummistused või pudelikaelad) jms.

Et kahe arvuti vahel saaks olla rohkem kui üks ühendus, tuleb neid kuidagi eristada. Selleks kasutatakse pordi mõistet. Serveriteenustel on kindlaksmääratud numbritega vaikimisi pordid, nt http on 80, https 443, smtp 25, ssh 22 jne. Kõikide teenuste nimekirja koos neile vastavate portide numbritega leiab /etc/services-failist (serveri teenust on võimalik ka mitte vaikimisi pordil tööle panna, aga siis peab õige pordi teenuse kliendile ette andma).

NB! Antud port tähistab serveri porti, klient võib serveriga ühenduda mistahes pordilt! Ühe serveri pordiga võib olla mitu ühendust mitmest erinevast arvutist või ka mitmest sama arvuti erinevast pordist ehk unikaalne peab olema komplekt <serverarvuti aadress, serverarvuti port, klientarvuti aadress, klientarvuti port>.

Aktiivsete võrguühenduste nimekirja näitab käsk netstat. Kui seda pole tänapäeval vaikimisi installitud, saab netstati paigaldada koos muude võrgutööriistadega net-tools-pakist (NB! math.ut.ee-serveris on teil tarkvara juba olemas ja seal te seda käsku sisestada ei saa, kuna puuduvad sudo-õigused):

sudo apt install net-tools

Alternatiivina võib kasutada ka programmi ss, mis on tänapäeval netstati asendajaks – süntaks on sama, väljund erineb veidi paigutuselt. Näiteks võite kasutada käske ss -tr või ss -trpi.

Näiteks kõiki aktiivseid TCP ühendusi (-t-võti tähistab TCPd ja -n asendab nimekuju numbrilise kujuga (IPdega)) saab vaadata nii:

[alop@math ~]$ netstat -t -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 193.40.37.95:445            172.17.143.152:55020        ESTABLISHED
tcp        0      0 193.40.37.95:445            172.17.141.71:61540         ESTABLISHED
tcp        0      0 193.40.37.95:53838          193.40.5.42:389             ESTABLISHED
tcp        0     64 193.40.37.95:22             176.46.20.75:55812          ESTABLISHED
tcp        0      0 193.40.37.95:445            172.17.29.197:57163         ESTABLISHED
tcp        0      0 193.40.37.95:445            172.17.141.138:51470        ESTABLISHED
tcp        0      1 193.40.37.95:22             103.45.128.242:43776        LAST_ACK
tcp        0      0 193.40.37.95:445            172.17.141.12:49203         ESTABLISHED
tcp        0      0 193.40.37.95:445            172.17.141.131:60737        ESTABLISHED
tcp        0      0 193.40.37.95:445            172.17.37.78:57462          ESTABLISHED

Millistel portidel võetakse vastu serveripoolseid ühendusi (-l-võti tähistab kuulatavaid (listen) porte):

[alop@math ~]$ netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:netbios-ssn               *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:36692                     *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:ipp                       *:*                         LISTEN
tcp        0      0 localhost:smtp              *:*                         LISTEN
tcp        0      0 *:39897                     *:*                         LISTEN
tcp        0      0 localhost:atmtcp            *:*                         LISTEN
tcp        0      0 *:42332                     *:*                         LISTEN
tcp        0      0 *:microsoft-ds              *:*                         LISTEN
tcp        0      0 *:43011                     *:*                         LISTEN
tcp        0      0 *:netbios-ssn               *:*                         LISTEN
tcp        0      0 *:46221                     *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:http                      *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:ipp                       *:*                         LISTEN
tcp        0      0 localhost:smtp              *:*                         LISTEN
tcp        0      0 *:https                     *:*                         LISTEN
tcp        0      0 localhost:atmtcp            *:*                         LISTEN
tcp        0      0 *:microsoft-ds              *:*                         LISTEN
tcp        0      0 *:46366                     *:*                         LISTEN  

Käsk telnet loob kõige puhtamal kujul TCP-ühenduse etteantud pordiga ja võimaldab TCP-põhiseid teenuseid lihtsasti testida.

Ülesanne 2

Leia netstat-käsu väljundist enda ssh-ühenduse info, selleks võib esmalt väljundit piirata meile huvi pakkuvate portidega: netstat -n | grep :22. Seejärel peaksid minema lehele https://www.whatismyip.com/ või mõnele sarnasele, mis näitab ära sinu arvuti avaliku IP-aadressi. Nende tudengite puhul, kes lahendavad ülesannet TÜ sisevõrgust (arvutiklassist), on netstat-käsu väljundis nähtav tegelik arvuti IP-aadress (TÜ sisevõrgu aadress), mitte avalik.

Nüüd esita ekraanivaade, kus on samaaegselt näha sinu arvuti avalik (TÜ sisevõrgu) IP-aadress veebilehitsejas ja math.ut.ee SSH-ühenduse info serveris. NB! Tõsta endale vastav rida selgelt esile teistest ridadest. Näidislahendus:

HTTP (hypertext transfer protocol)

HTTP on protokoll veebilehtede (hüperteksti dokumentide) ja nendega seotud failide allalaadimiseks Internetist. Lihtsaim HTTP-päring on järgmine (päisekäskude sisestamise järel vajuta veel korra Enter-nuppu, kuna nende käskude saatmiseks peab päise järel olema tühi rida):

GET / HTTP/1.0
  • GET – tähistab siin meetodit, et soovime saada (alla laadida) dokumenti. Alternatiivid on POST, HEAD, DELETE jne, aga neid detaile me siin ei vaata.
  • / – dokumendi või faili teekond, antud juhul juurkataloog. (Väärtus peaks olema /alamleht, kui on soov mingit alamlehekülge pärida.)
  • HTTP/1.0 – kliendi poolt toetatud protokolli versiooni tähis, võib olla ka uuem HTTP/1.1.

Kui seda käsklust rakendada www.ut.ee peal, siis saame järgmise tulemuse:

[alop@math ~]$ telnet www.ut.ee 80
Trying 2001:bb8:2002:500::42...
Connected to www.ut.ee.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Dec 2022 16:42:47 GMT
Server: Apache
Location: https://ut.ee/
Content-Length: 222
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://ut.ee/">here</a>.</p>
</body></html>
Connection closed by foreign host.

Vastuse esimene rida:

  • HTTP/1.1 – serveri protokolli versioon.
  • 301 – ümbersuunamise kood, teisi koode vaata siit.
  • Moved Permanently – päringu staatuse tekstiline kirjeldus.

Järgnevatel ridadel on päised kujul nimi: väärtus, millele järgneb tühi rida ning siis dokumendi sisu ise. Päised annavad mitmesugust metainfot serveri ja dokumendi kohta, nt serveris kasutatava tarkvara, dokumendi tüübi, dokumendi suuruse, viimase muutmise aja kohta jne.

Antud juhul on dokumendi sisu HTMLis link ümbersuunamiseks neile veebilehitsejatele, mis päises olevat ümbersuunamist ignoreerivad. Ümbersuunamise põhjuseks on see, et server soovib, et me kasutaks turvalist https-ühendust http asemel. https-päringud on aga keerulisemad ja neid me hetkel ei käsitle.

Vaatame juhtumit, et me sooviksime pärida mõnda alamlehekülge mõnelt kodulehelt, selleks täiendame päringut / asemel nüüd ka kohe õige alamlehe aadressiga GET-reas: /praktikum. Täiendavalt peame lisama ka Host:-parameetri, sest server, mida kasutame, oslab2.appspot.com, teenindab mitmeid alamlehti ja teenuseid sama IP-aadressi pealt ning muidu ei tea server, millisele alamlehele soovime päringut koostada. Kokku näeb päring aadressile oslab2.appspot.com/praktikum välja järgmine:

[alop@math ~]$ telnet oslab2.appspot.com 80
Trying 2a00:1450:4001:810::2014...
Connected to oslab2.appspot.com.
Escape character is '^]'.
GET /praktikum HTTP/1.0
Host: oslab2.appspot.com


HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
X-Cloud-Trace-Context: 607d6b8825110b6895801a39a0a68f34;o=1
Date: Mon, 05 Dec 2022 08:03:05 GMT
Server: Google Frontend
Content-Length: 84

Alamleht testimiseks kursusele LTAT.06.001 Operatsioonisysteemid kursuse kodulehele!Connection closed by foreign host.

Tulemuseks ongi see HTML- (või muud tüüpi) dokument, mida veebibrauser näitab.

Ülesanne 3

  1. Lisa oma vikilehele ekraanivaade, millist serveritarkvara kasutab sinu lemmikveebilehe server. Kui veebileht Server:-päist ei väljasta, siis proovi mõnda teist serverit. Pane tähele, et mõned populaarsed serverid suunavad kasutaja automaatselt ümber https-URLidele, mis kasutavad krüptograafiat ja pole käsitsi telneti abil kasutatavad. Sellisel juhul on vastus 301 Moved Permanently ka piisav vastus, kui Server:-päise rida on siiski olemas.
  2. Tee telnetiga HTTP-päring aadressile oslab2.appspot.com/sinunimi (vihje: vaata juhendis näidete 1 ja 2 erinevust). Selleks tuleb kõigepealt sisestada käsk telnet oslab2.appspot.com 80 ja siis teha vastav päring koos Host:-päisega ja / asemel GET-reas kasutada /sinunimi. Lisa oma vikilehele päringu logi (ekraanivaade), vastuse kood (vihje: Not Found) ja selgitus eesti keeles, mida see kood tähendab. NB! Kui GET-päringu vastus oli 400 Bad Request, siis oled ise mingi vea teinud, paranda oma viga.

SMTP (Simple Mail Transfer Protocol)

PS! Kui eelmisi ühendusi saite teha suvalisest Linuxi masinast, siis järgmist harjutust saab teha ainult TÜ sisevõrgust, kusjuures isegi VPN-ühendus ei aita. Piirangust mööda pääsemiseks soovitame väljastpoolt TÜ sisevõrku võite luua kõigepealt ssh-ühenduse math.ut.ee-serveriga, siis seal vastavad tegevused sooritada. TÜ sisevõrgust saaks järgnevat tegevust teha autentimata ehk saata n-ö võltsitud saatja reaga e-kiri heausksele saajale. NB! Võltsitud (muudetud) saatja reaga meili saatmine on keelatud tegevus ja seadusega karistatav (ilma ohvri nõusolekuta). Seega järgnev tegevus ehk muudetud saatja reaga meili saatmine on väljaspool aine LTAT.06.001 Operatsioonisüsteemid praktikumi 15 ülesande lahendamiseks vajalikku lahendamist keelatud.

SMTP on protokoll meili saatmiseks. SMTP protokolli port on 25. Ühendus tuleks luua selle arvutiga, mis on märgitud DNSis meili saaja domeeni meiliserveriks. Tavaliselt jõuab meil kohale ka siis, kui võtta ühendust suvalise koduvõrgu SMTP-serveriga, nt mail.ut.ee või mail.neti.ee – sel juhul need serverid vahendavad (relay) meili õigele serverile (kui neil vahendamine lubatud on). Varasemalt oli paljudel meiliserveritel vastav tegevus lubatud, kuid seoses suureneva võltsarvete ja muude meiliga saadetavate pettustega on hetkel raske leida avalikku meiliserverit, mis autentimata kasutajale meile edastaks. Tüüpiline meili saatmise seanss näeb välja järgmine:

[alop@math ~]$ telnet mail.ut.ee 25
Trying 2001:bb8:2002:500::47...
Connected to mail.ut.ee.
Escape character is '^]'.
220 smtp2.it.da.ut.ee ESMTP Postfix
HELO math.ut.ee
250 smtp2.it.da.ut.ee
MAIL FROM:<oppe.joud@ut.ee>
250 2.1.0 Ok
RCPT TO:<eesnimi.perenimi@gmail.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: Õppe Jõud<oppe.joud@ut.ee>
To: Eesnimi Perenimi<eesnimi.perenimi@gmail.com>
X-Mailer: telnet
Subject: OS2022 e-maili test 
Content-Type: text/plain; charset=UTF-8
Soovin LTAT.06.001 Operatsioonisüsteemid Praktikum15 arvestust.
.
250 2.0.0 Ok: queued as C12B39006F
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Käskude selgitused:

HELO
sessiooni algust tähistav käsk, parameetriks klientarvuti nimi, praktikas nime sageli ignoreeritakse, kuid vahel nõutakse, et see peab DNSi mõttes lahenduv nimi olema.
MAIL FROM
parameetriks saatja meiliaadress.
RCPT TO
parameetriks saaja meiliaadress.
DATA
järgneb meili sisu – kõigepealt päised, siis tühi rida ja meili tekst. Lõpetamiseks punkt eraldi real.
QUIT
lõpetab sessiooni.

Päised:

  • To: saaja aadress,
  • From: saatja aadress,
  • Subject: määrab meili teema,
  • Content-Type: ütleb, et tegemist tavalise tekstilise meiliga (vastandina HTML-meilile) ja sisu on kodeeritud kodeeringus UTF-8.

Silma torkab, et nii saatja kui saaja aadressi on topelt – nii MAIL FROM/RCPT TO-käsus kui ka From/To-päistes. MAIL FROM/RCPT TO moodustavad kirja "ümbriku" (envelope). RCPT TO on meili tegelik saaja, To:-päises on esialgne saaja, nt listi puhul listi meiliaadress. Praktikas meiliserver päiseid ei vaata, vaid juhindub ainult ümbrikuaadressidest. Ja vastupidi – meilide lugemise programm ei tea midagi ümbrikuaadressidest. Nii on võimalik pimekoopia saatmine – pimekoopia saaja on ümbrikus saajana kirjas, aga päistes teda pole.

Nagu näha, ei nõua SMTP oma algsel kujul mitte mingit tõestust, et sul on õigus saatja nimel meili saata. See teebki lihtsaks meili ärakasutamise spämmerite ning viiruste poolt. Selle vastu võitlemiseks rakendatakse mitmesuguseid piiranguid:

  • IP-aadresside piiramine, kust SMTP-ühendused on lubatud (nt mail.neti.ee ei luba väljastpoolt Teliale kuuluvast aadressiruumist).
  • kasutajanime ja parooli ning krüpteeritud ühenduse (SSL/TLS) nõudmine (mitmed veebimajutusteenuse pakkujad).
  • SPF-reeglid DNSis, mis loetlevad, millistelt IP-aadressidelt on lubatud antud saatja aadressiga meile saata.
  • DKIM – meilide allkirjastamine serverile teadaoleva privaatse võtmega, mille avalik võti on DNSis.

Ülesanne 4

Saada iseendale telnetiga meil operatsioonisüsteemide õppejõu Alo Peets'i nimel, pane saatja aadressiks <alo.peets@ut.ee> ja lisa päisesse X-Mailer:-rida väärtusega telnet. Meil peab sisaldama korrektset teemarida (pealkiri) ja täpitähti. Lisa aruandesse pilt enda postkasti saabunud praktikumijuhendaja kirjast koos vaikimisi peidetud X-Mailer:-reaga (vihje: meilikliendis GMail settings näita algset, Show original).

Esitada:

  • Ülesanne 1: Lisa oma praktikumi Githubi/vikilehele vastused ja ekraanivaated:
    1. oma lemmikveebilehe IP-aadress(id); (ei või kasutada juhendis olevaid TÜ aadresse)
    2. vastava domeeni DNS- ja meiliserver(id); (NS- ja MX-kirje päringud)
    3. eelmises punktis leitud vähemalt ühe meiliserveri IP-aadress. (Pead küsima MX-käsuga kõigepealt meiliserveri nime ja siis uurima, milline IP-aadress nimele vastab.)
  • Ülesanne 2: ekraanivaade, kus on samaaegselt näha sinu arvuti avalik (TÜ sisevõrgu) IP-aadress veebilehitsejas ja math.ut.ee SSH-ühenduse info serveris. Tõsta huvipakkuv info (oma IP--aadress) ekraanivaatel esile.
  • Ülesanne 3a: Millist serveritarkvara kasutab sinu lemmikveebilehe server (ekraanivaade ja nimetus)?
  • Ülesanne 3b: Telneti abil käsitsi saadetud GET-päring aadressile oslab2.appspot.com/sinunimi (ekraanivaade ja serveri vastatud veakoodi kirjeldus (vihje: Not Found).
  • Ülesanne 4: Õppejõu Alo Peets'i (alo.peets@ut.ee) nimel saadetud meili detailne vaade, kus on näha, et on saadetud telnetiga, ja sinu nimi.
15. Praktikum 15 - Rakenduskihi protokollid
Solutions for this task can no longer be submitted.

Kiidusõnad, eksam ja LTAT.06.002 Andmeturve

LTAT.06.001 Operatsioonisüsteemid aine õppejõud kiidavad teid, et olete jõudnud aine praktikumidega lõpuni. Siinkohal kasutame võimalust ja anname soovitusi teile järmisteks tegevusteks:

  1. Esitage Kodutöö 3 – Salvestusruumi haldus hiljemalt 21. dets 2022.
  2. Vaadake endale sobivas kohas ja ajal Operatsioonisüsteemid aine videoloenguid: Lectures
  3. Lahendage TÜ moodle.ut.ee-keskkonnas aine loengute juurde käivaid teste.
  4. Registreeruge aine eksamitele ÕISis (kohustuslik osaleda), täpsema eksami info saadan registreerunutele ÕISi kaudu eraldi paar päeva enne eksami toimumist.
  5. Planeerige aine LTAT.06.002 Andmeturve aine läbimist kevadel, lisades aine planeerijasse ja hiljem ainele registreerudes. Aines Andmeturve on sarnaselt Operatsioonisüsteemidele 15 praktikumi, kus saate enda operatsioonisüsteemide-alaseid teadmisi täiendavalt arendada ja testida, lahendades küberturvalisuse valdkonna ülesandeid. Aines on planeeritud kontaktloengud ning aine on kõigile huvilistele soovitatav läbida vahetult pärast operatsioonisüsteemide kursust.
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment