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 avaknas Session
ainult Host Name (or IO address)
väärtusega math.ut.ee
pärast Open
vajutamist küsitakse teilt TÜ kasutajatunnust ja parooli. Linux ja MAC kasutajad saavad kasutada sisse ehitatud SSH-klienti käsurea käsuga ssh TÜkasutajatunnus@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 teada-olevad 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) www.libaeenet.ee nime alt www.ut.ee lehekülg (küll vigadega, aga sellest allpool). Hosts faili ülekirjutamist kasutavad mõned viirused ja pahavarad, selleks et tuntud lehekülgi (nt www.swedbank.ee) suunata oma serverisse. Näiteks tutvuga math.ut.ee serveri /etc/hosts
faili sisuga. Kuhu viitab newmath.domenis.ut.ee
?
Nimelahendus
Kõikide maailma arvutite ülesloetlemine hosts
failis pole reaalne. Seetõttu DNS ongi 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, st 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.66 Name: mailhost.ut.ee Address: 193.40.5.67
Antud vastus ütleb, et mail.ut.ee kanooniline nimi (põhinimi) on mailhost.ut.ee ja 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 nslookup
-ga 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: ut.ee nameserver = ns.ut.ee. ut.ee nameserver = ns2.EENet.ee. ut.ee nameserver = ns2.ut.ee. berta.it.da.ut.ee internet address = 193.40.5.141 berta.it.da.ut.ee has AAAA address 2001:bb8:2002:500::141 frida.it.da.ut.ee internet address = 193.40.5.80 frida.it.da.ut.ee has AAAA address 2001:bb8:2002:500::80 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=mx ut.ee 193.40.0.12
Eelnevast võib välja lugeda, et ut.ee domeeni ametlikud meiliserverid on frida.it.da.ut.ee
ja berta.it.da.ut.ee
, kusjuures berta
ja frida
mõlemad on prioteediga 10. Allpool olevad kirjed tähistavad ut.ee domeeni nimeservereid, kelle käest saab autoriteetse (lõpliku, kindla) vastuse päringule, sest praegune vastus on vahendatud mõne teise serveri poolt.
Eelnevas kasutasime DNS-i testimiseks nslookup
käsku, kuna see on olemas ka Windowsis. Linuxis (k.a. math.ut.ee serveris) 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: 35454 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 7 ;; QUESTION SECTION: ;ut.ee. IN MX ;; ANSWER SECTION: ut.ee. 4475 IN MX 10 frida.it.da.ut.ee. ut.ee. 4475 IN MX 10 berta.it.da.ut.ee. ;; AUTHORITY SECTION: ut.ee. 5559 IN NS ns2.EENet.ee. ut.ee. 5559 IN NS ns.ut.ee. ut.ee. 5559 IN NS ns2.ut.ee. ;; ADDITIONAL SECTION: berta.it.da.ut.ee. 37583 IN A 193.40.5.141 berta.it.da.ut.ee. 51689 IN AAAA 2001:bb8:2002:500::141 frida.it.da.ut.ee. 50958 IN A 193.40.5.80 frida.it.da.ut.ee. 12155 IN AAAA 2001:bb8:2002:500::80 ns.ut.ee. 8837 IN A 193.40.5.99 ns2.ut.ee. 10639 IN A 193.40.5.76 ns2.ut.ee. 10639 IN AAAA 2001:bb8:2002:500::76 ;; Query time: 2 msec ;; SERVER: 193.40.0.12#53(193.40.0.12) ;; WHEN: Mon Dec 7 10:10:48 2020 ;; MSG SIZE rcvd: 280
[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
. Aegajalt 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 levinuim avalik DNS serveri IP-aadress (nagu 1.1.1.1
, või 194.40.0.12
eelnevas näidetes).
Ülesanne 1
Lisa oma praktikumi wikileheküljele ekraanivaated:
- oma lemmikveebilehe IP-aadress(id) (ei või kasutada juhendis olevaid TÜ aadresse)
- vastava domeeni meiliserver(id) (
MX kirje
) - 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. Serveri teenustel on kindlaks mää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, st 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 netstat
paigaldada koos muude võrgutööristadega net-tools
pakist (NB! math.ut.ee serveris on teil tarkvara juba olemas ja seal te seda käsku ei saa sisestada 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 TCP-d ja -n
asendab nimekuju numbrilise kujuga (IP-dega)) 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 | grep :22
. Seejärel peaskite minema lehele https://www.whatismyip.com/
või mõnele sarnasele, mis näitab ära teie arvuti avaliku IP-aadressi. Need tudengid, kes lahendavad ülesannet TÜ sisevõrgust (arvutiklassist), siis teie puhul on netstat käsu väljundis nähtav teie tegel arvuti IP-aadress, mitte avalik.
Nüüd esitage ekraanivaade
, kus on samaaegselt näha teie arvuti avalik (TÜ sisevõrgu) IP-aadress veebilehitsejas ja math.ut.ee SSH ühenduse info serveris. NB! Tõstke 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.eenet.ee peal, siis saame järgmise tulemuse:
[alop@math ~]$ telnet www.eenet.ee 80 Trying 2001:bb8:2001::131... Connected to www.eenet.ee. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.1 301 Moved Permanently Date: Mon, 06 Dec 2021 10:07:06 GMT Server: Apache X-Frame-Options: SAMEORIGIN Location: https:/// Content-Length: 217 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:///">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 kasutatav tarkvara, dokumendi tüüp, dokumendi suurus, viimase muutmise aeg jne.
Antud juhul on dokumendi sisu HTML-s link ümbersuunamiseks neile veebilehitsejatele, mis päises olevat ümbersuunamist ignoreerivad. Ümbersuunamise põhjuseks on see, et server 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 mdia kasutame oslab2.appspot.com
teenindab mitmeid alamlehti ja teenuseid sama IP aadressi epalt ja muidu ei tea server millisele alamlehele soovime päringut koostada. Kokku päring aadressile oslab2.sppspot.com/praktikum
näeb välja järgmine
[alop@math ~]$ telnet oslab2.appspot.com 80 Trying 2a00:1450:4001:82a::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: 7e6272b06d4b898607380c28bf6f553a;o=1 Date: Mon, 06 Dec 2021 09:53:37 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
- Lisa oma wikilehele 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 osad populaarsed serverid suunavad kasutaja automaatselt ümberhttps
URL-idele, mis kasutavad krüptograafiat ja pole käsitsi telneti abil kasutatavad. Sellisel juhul on vastus301 Moved Permanently
ka piisav vastus kuiServer:
päise rida on siiski olemas - 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 koosHost:
päisega ja/
asemelGET
reas kasutada @/sinunimi@. Lisa oma wikilehele päringu logi (ekraanivaade), vastuse kood (vihje:Not Found) ja selgitus eesti keeles, mida see kood tähendab. NB! Kui GET-päringu vastus oli400 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 saataja reaga e-kiri heauksele saajale. NB! Võltsitud (muudetud) saatja reaga e-maili saatmine on keelatud tegevus ja seadusega karistatav (ilma ohvri nõusolekuta). Seega järgnev tegevus muudetud saatja reaga e-maili saatmine on väljaspool LTAT.06.001 Operatsioonisüsteemid aine Praktikum15 ülesande lahendamiseks vajalikku lahendamist keelatud.
SMTP on protokoll meili saatmiseks. SMTP protokolli port on 25. Ühendus tuleks luua selle arvutiga, mis on märgitud DNS-s e-maili saaja domeeni meiliserveriks. Tavaliselt jõuab e-mail 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) e-maili õigele serverile (kui neil vahendamine lubatud on). Varasemalt oli paljudel e-mailiserveritel vastav tegevus lubatud, kuid seoses suureneva võltsarvete ja muude e-mailiga saadetavate pettustega on hetkel raske leida avalikku e-maili serverit, mis autentimata kasutajale e-maile 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:<oppejou.nimi@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: OS2021 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
- sesiooni algust tähistav käsk, parameetriks klientarvuti nimi, praktikas nime sageli ignoreeritakse, kuid vahel nõutakse et see peab DNS 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 e-maili teema,Content-Type:
ütleb, et tegemist tavalise tekstilise e-mailiga (vastandina HTML e-mailile) ja sisu on kodeeritud UTF-8 kodeeringus.
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 e-maili tegelik saaja, To:
päises on esialgne saaja, nt listi puhul listi e-maili aadress. 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 e-maili saata. See teebki lihtsaks e-maili ärakasutamise spämmerite ning viiruste poolt. Selle vastu võitlemiseks rakendatakse mitmesuguseid piiranguid:
- IP-aadresside piiramine, kust on SMTP-ühendused lubatud (nt mail.neti.ee ei luba väljaspoolt Telia'le kuuluvast aadressiruumist).
- kasutajanime ja parooli ning krüpteeritud ühenduse (SSL/TLS) nõudmine (mitmed veebimajutusteenuse pakkujad).
- SPF reeglid DNS-s, mis loetlevad, millistelt IP-aadressidelt on lubatud antud saatja aadressiga e-maile saata.
- DKIM - e-mailide allkirjastamine serverile teadaoleva privaatse võtmega, mille avalik võti on DNS-s.
Ülesanne 4
Saada iseenedale telnetiga e-mail praktikumijuhendaja nimel, pane saatjaks <praktikumijuhendaja_e-mail@ut.ee>
ja lisa päisesse X-Mailer:
rida väärtusega telnet
. E-mail 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). Kui on probleem ülikooli võrguga ühendumisel võite luua kõigepealt ühenduse math.ut.ee
serveriga siis seal e-maili koostada ja saata.
- Kõik rühmad võivad saatmsiel kasutada näidsõppejõu nimeks Alo Peets <alo.peets@ut.ee>
Esitada:
- Ülesanne 1: Lisa oma praktikumi wikileheküljele ekraanivaated:
- oma lemmikveebilehe IP-aadress(id) (ei või kasutada juhendis olevaid TÜ aadresse)
- vastava domeeni meiliserver(id) (
MX kirje
) - 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 teie arvuti avalik (TÜ sisevõrgu) IP-aadress veebilehitsejas ja math.ut.ee SSH ühenduse info serveris. Tõstke huvipakkuv info ekraanivaatel esile. - Ülesanne 3a: Millist serveritarkvara kasutab sinu lemmikveebilehe server (ekraanivaade ja nimetus).
- Ülesanne 3b: Telneti abil käsitsi saadetud
GET
päringoslab2.appspot.com/sinunimi
aadressile (ekraanivaade ja serveri vastatud veakoodi kirjeldus (vihje:Not Found). - Ülesanne 4: Õppejõu nimel saadetud e-maili detailne vaade kus on näha, kus on näha, et on saadetud telnetiga ja teie nimi.
(tähtaeg 30.12.2020
)