UNIX / Linux rendszeradminisztráció
III. előadás Elektronikus levelezés
Alapfogalmak ●
●
●
●
●
Levelezés hagyományosan: levél írás, fejléc(?), boríték, címzés, feladás, továbbítás, kézbesítés Levelezés elektronikusan: a hagyományos mintájára Levélpostai szolgáltatások összetettek lehetnek (pl. körlevél, terjesztési lista, átirányítás, stb.) Elektronikus levelezési szolgáltatások hasonlóan összetettek! Alapfoglamak és folyamatok pontos ismerete és értése előfeltétel!
Alapfogalmak – levél (message, mail) ● ●
Üzenethordózó entitás / adatstruktúra Kötött struktúra: –
fejléc: ● ● ●
●
– –
mező név: érték párok sora a mezőkre szabvány vonatkozik (ld. RFC-k) a mezők a továbbítás és kézbesítés folyamán bővülhetnek, de ritkán (csak szabályozottan) változnak forrásai: feladó, feldolgozó szoftverek
elválasztó jel: egy üres sor törzs: ● ●
tetszőleges ASCII szöveg (csak <128 ASCII!) egyéb tartalom (pl. csatolt fájl, html szöveg, nemzeti kar készlet, stb.) lehetséges: MIME kódolási szabvány
Alapfogalmak – boríték (envelope) ●
A levelet kísérő címzési infomációk: – –
● ● ●
feladó cím (MAIL FROM) címzett cím(ek) (RCPT TO)
A levél kézbesítése ez alapján történik. Nem a levél része! Nincs kapcsolat a levél fejlecében megadott feladó és címzett mezőkkel!
Alapfogalmak – levél feladás (mail submission) ●
●
Folyamat: a levél és boríték adatstruktúrák átadása a levelek továbbításáért felelős entitásnak. Lokalitás szerint: –
–
Lokális feladás: a levéltovábbító entitás azon a hoszton található, amelyiken a levél előállítása megtörtént. A feladás lokális IPC mechanizmussal történik (processz környezet és csővezeték) Távoli (remote) feladás: a levéltovábbító entitás másik hoszton található. A feladás hálózatoi kapcsolaton történik (pl. SMTP).
Alapfogalmak – postafiók (mailbox) ●
●
●
Egy felhasználónak kézbesített levelek tárolására alkalmas adatstruktúra Csak a levél kerül bele, boríték nem kerül kézbesítésre. Implementációk: – – –
UNIX mbox: szövegfájl, levelek szekvenciális tárolás MailDir: UNIX fájlrendszeren egy jegyzékstruktúra; minden levél külön fájlba kerül egyéb (pl. adatbázis)
Alapfogalmak – kézbesítés (delivery) ●
●
Folyamat: a levél eljuttatása a borítékon szereplő címekhez tartozó postafiókba. A cím és a postafiók között nincs 1:1 kapcsolat: – –
●
több cím is tartozhat egy postafiókhoz (alias, virtualuser) vannak címek amelyekhez nem tartozik postafiók (pl. 3rd party lev. lista)
Kézbesítési szolgáltatások: –
levél szűrés: szabály alapján a felhasználó többféle kézbesítési akciót kérhet (pl. levél továbbítás, áthelyezés, automatikus feldolgozás, stb.)
Alapfogalmak – levél fogadás (mailbox access) ●
●
●
Folyamat, mely során a felhasználó hozzáfér a postafiókjában lévő levelekhez. Speciális szoftverre lehet szükség a levelek kinyerésére. Lehet: – –
lokális: a postafiók adatstruktúra hozzáférhető az adott hoszton távoli: a postafiók nem a helyi hoszton van; a hálózaton történő hozzáféréshez speciális szoftverek és kommunikációs protokollok kellenek (pl. POP3, IMAP)
Alapfogalmak – MUA (Mail User Agent) ●
●
Felhasználói szoftver, mely elektronikus levelezési szolgáltatások igénybevételét teszi lehetővé. Szolgáltatásai: – –
– – –
Levél írás: levél adatstruktúra szabványnak megfelelő előállítása Levél feladás / elküldés: boríték készítés és a level átadása borítékkal együtt a továbbításért felelős szoftvernek Levél fogadás: hozzáférés biztosítása a felhasználó postafiókjához (helyi vagy távoli) Levél olvasás: a levél adatstruktúrák (MIME is) értelmezése / dekódolása, mellékletek mentése stb. Értéknövelt szolgáltatások: pl. címjegyzék, szűrés, stb.
Alapfogalmak – MTA (Mail Transport Agent) ●
Szoftver, mely feladata: –
boríték és levél struktúrák fogadása a MUA-tól: ● ●
– –
levelek és borítékjaik tárolása feldolgozásig (queue) levelek feldolgozása: ● ●
–
lokális feladással távoli feladással
szűrés (filtering): szabály alapján végzett akciók útválasztás (routing): döntés a levéllel kapcsolatos további teendőkról
továbbítása (transport): ●
●
lokális: kézbesítés, ha a címzetthez tartozó postafiók helyben van távoli: levél és boríték feladás másik MTA-nak
Alapfogalmak – MDA (Mail Delivery Agent) ●
Szoftver – – –
feladata a levél kézbesítése, azaz valamely postafiókban való elhelyezése “ismeri” a levél és a postafiók struktúráját egyaránt működése befolyásolható: ● ●
●
● ●
szabályok alapján különbözó akciók szabályok lehetnek rendszerre vonatkozóak vagy felhasználó által kiszabottak szűrésre használható (pl. virus, spam, content, stb.)
Működését az MTA válthatja ki. Az MTA szoftvernek gyakran részét képzi.
Alapfogalmak – levél átjátszás (mail relay) ●
●
Folyamat: az MTA a fogadott levelet átjátsza egy másik MTA-nak. Szerepe: – – –
●
a MUA mindig egy MTA-nak adja fel a levelet távoli kézbesítés az MTA-nál kezdődik; megkeresi, hogy melyik MTA képes lokálisan kézbesíteni a levelet üzembiztonsági szerepe is van
Átjátszás korlátozások: –
MTA átjátszásra nem fogad levelet, kivéve jogosult esetben: ● ● ●
–
ip tartomány domain tartomány azonosított felhasználó
MTA helyi címekre mindig fogad
Alapfogalmak - webmail ● ● ●
Elfajzott MUA, webalkalmazás szoftver. Felhasználói felülete a Web. Funkciói szerint azonos a MUA-val.
Kommunikáció - protokollok ●
A levelezési folyamatok megvalósításához kommunikálni kell: – – – –
●
levél feladás: helyi vagy távoli kommunikáció átjátszás: többnyire távoli kommunikáció kézbesítés: tobbnyire helyi kommunikáció postafiók hozzáférés: helyi vagy távoli kommunikáció
Vegyük sorra!
Levél feladás ●
Helyi levél feladás: $ sendmail [-flags] [addr ...] < level –
parancssori program indításával: ● ● ●
–
a címzettek (boríték) az argumentumokban a feladó (boríték) a bejelentkezett felhasználó címe a levél az stdin -re irányítva
egyes MUA-k képesek helyi feladásra (pl. mail, pine, mutt)
Levél feladás ●
Távoli feladás –
hálózati kommunikáció kell ●
–
többféle lehetőség: SMTP, egyéb.
SMTP: Simple Mail Transport Protocol
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'.
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM:
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO:
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]>
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA 354 End data with .
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA 354 End data with . Subject: Pelda level From: Repasi Tibor To: magamnak Cc: valaki masnak <[email protected]> Ez a pelda level torzse. .
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA 354 End data with . Subject: Pelda level From: Repasi Tibor To: magamnak Cc: valaki masnak <[email protected]> Ez a pelda level torzse. . 250 Ok: queued as 0051FA7
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA 354 End data with . Subject: Pelda level From: Repasi Tibor To: magamnak Cc: valaki masnak <[email protected]> Ez a pelda level torzse. . 250 Ok: queued as 0051FA7 QUIT
repasi@repasi:~$ telnet mail.iit.uni-miskolc.hu 25 Trying 2001:738:6001:500::21... Connected to zeus6.iit.uni-miskolc.hu. Escape character is '^]'. 220 zeus.iit.uni-miskolc.hu ESMTP Postfix HELO repasi.iit.uni-miskolc.hu 250 zeus.iit.uni-miskolc.hu MAIL FROM: 250 Ok RCPT TO: 250 Ok RCPT TO: <[email protected]> 250 Ok DATA 354 End data with . Subject: Pelda level From: Repasi Tibor To: magamnak Cc: valaki masnak <[email protected]> Ez a pelda level torzse. . 250 Ok: queued as 0051FA7 QUIT 221 Bye Connection closed by foreign host.
From - Fri Apr 21 19:18:23 2006 X-UIDL: 4329d6cdd1cb12524ab8f9c0c973de2e X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: X-Original-To: [email protected] Delivered-To: [email protected] Received: from localhost (loopback [127.0.0.1]) by localhost.domain.tld (Postfix) with ESMTP id 0912716079 for ; Fri, 21 Apr 2006 19:18:18 +0200 (DFT) Received: from odin.iit.uni-miskolc.hu ([127.0.0.1]) by localhost (odin.iit.uni-miskolc.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 155844-06 for ; Fri, 21 Apr 2006 19:18:16 +0200 (DFT) Received: from zeus.iit.uni-miskolc.hu (zeus.iit.uni-miskolc.hu [193.6.5.33]) by odin.iit.uni-miskolc.hu (Postfix) with ESMTP id 8925216077 for ; Fri, 21 Apr 2006 19:18:16 +0200 (DFT) Received: from localhost (localhost [127.0.0.1]) by zeus.iit.uni-miskolc.hu (Postfix) with ESMTP id 8F8B0A8; Fri, 21 Apr 2006 19:18:19 +0200 (CEST) Received: from zeus.iit.uni-miskolc.hu ([127.0.0.1]) by localhost (zeus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28782-10; Fri, 21 Apr 2006 19:18:14 +0200 (CEST) Received: from repasi.iit.uni-miskolc.hu (repasi6.iit.uni-miskolc.hu [IPv6:2001:738:6001:500:204:e2ff:fe00:7963]) by zeus.iit.uni-miskolc.hu (Postfix) with SMTP id 0051FA7; Fri, 21 Apr 2006 19:16:01 +0200 (CEST) Subject: Pelda level From: Repasi Tibor To: magamnak Cc: valaki masnak <[email protected]> Message-Id: <[email protected]> Date: Fri, 21 Apr 2006 19:16:01 +0200 (CEST) X-Virus-Scanned: by ClamAV and amavisd-new on Zeus X-Virus-Scanned: amavisd-new at iit.uni-miskolc.hu X-Bogosity: No, tests=bogofilter, spamicity=0.000110, version=0.15.13.2 Ez a pelda level torzse.
Levél átjátszás – mail relay ●
● ●
●
A feladat hasonló a távoli levél feladáshoz, csak most két MTA kommunikál. A protokoll: SMTP Az MTA az RCPT TO parancsra csak akkor válaszol “250 Ok.” -t, ha a megadott címet ismeri. Ellenkező esetben:“550 5.7.1 ... Relaying denied.”
Levél kézbesítés – mail delivery ●
Ha az MTA hosztján van a fogadott levél címzettjéhez tartozó postafiók, akkor: –
ellenőrzi a felhasználó ~/.forward fájlját: ●
●
– – ● ●
ha létezik értelmezi azt és annak megfelelően kezeli tovább a levelet (lehet custom delivery vagy akár transport) ha nem létezik, akkor alapértelmezett kézbesítés következik
a levelet átadja kézbesítés céljából az MDA-nak az MDA elhelyezi a felhasználó postafiókjában a levelet.
Az MTA és az MDA nem mindig válik külön. A kommunikáció lokális IPC, de többféle lehet.