Elektronická pošta

Pavel Hančar, 72591@mail.muni.cz

Obsah

Úvod

Elektronickou poštu dělíme na tyto části:

MUA
MUA je zkratka pro Mail User Agent, což je program klientské části, neboli té části, kterou vidíme a používáme k posílání zpráv.
MTA
Mail Transfer Agent obvykle znamená v podstatě cokoli mezi různými MUA. MTA jsou obecně části, které zajišťují směrování a přenos mezi hostitely poskytovately atd.
MDA
Přichází-li e-mail, který nepokračuje dál, MTA ho předá části MDA (Mail Delivery Agent), která ho vloží do schránky příchozí pošty. Může zavolat další nástroje, jako je procmail, který se pak stane součástí MDA.
MSA
Jestliže jste například poskytovatel s množstvím uživatelů, kteří používají MUA na strojích bez vlastního MTA, MSA nenechá tyto uživatele jednoduše posílat zprávy bez jakékoli autentizace. Jinak by takový systém mohli zneužít spammeři. Takže přijímání e-mailů od uživatelů pro další rozeslání se stalo zvláštní úlohou a MTA, které ji vykonávají, mohou být kvůli rozlišení nazývány MSA.
MRA
Část Mail Retrieval Agent vytvoří spojení ke vzdálené schránce a stáhne zprávu pro lokální použití. Například Fetchmail jako samostatný program

Např. Mutt je e-mailový klient, tedy MUA. Jeho podpora POP však znamená, že poskytuje též funkce MRA.

(přeloženo z A short introduction to the notorious MxA bunch).

SMTP

Simple Mail Tranfer Protocol je protokol, pro komunikaci mezi MTA. Je definován v RFC821 a jedná se protokol nad TCP/IP komunikující na portu 25.

Obálka

Skládá se ze SMTP příkazů, jako je např. MAIL FROM:, a data v ní obsažená vidí jen MTA, uživatel nikoli.

Vlastní zpráva

Následuje za příkazem DATA, skládá se z hlavičky a těla. Záhlaví obsahuje mj. pole From: a To:, jejichž hodnoty se nemusí shodovat s hodnotami argumentů příkazů MAIL FROM: a RCPT TO:.

Příkazy

Příkazy požadované v RFC821 jako minimální implementace pro příjemce:
HELO <SP> <domain> <CRLF>
identifikuje odesílající stranu
MAIL <SP> FROM:<reverse-path> <CRLF>
zahajuje transakci a svým argumentem určuje adresu odesilatele spolu s obrácenou cestou přes všechny navštívené MTA, což lze využít v případě nedoručení zprávy.
RCPT <SP> TO:<forward-path> <CRLF>
Určuje jednoho adresáta (více adresátů lze specifikovat použitím více těchto příkazů) a volitelně též cestu k němu, kterou – pokud je specifikovaná – musí zpráva projít.
DATA <CRLF>
Vše za tímto příkazem až po sekvenci "<CRLF>.<CRLF>" považuje příjemce za data dané zprávy.
RSET <CRLF>
zruší aktuální transakci
NOOP <CRLF>
pošle odpověď OK
QUIT <CRLF>
požádá příjemce o odpověď OK, a pak uzavře spojení. Strana příjemce by neměla uzavřít spojení dříve než odpoví na příkaz QUIT.

Ukázka komunikace

(Převzato z Wikipedie.)
C: navázání spojení se serverem (zpravidla na TCP portu 25)
S: 220 mail.example.com ESMTP Postfix
C: HELO example.net
S: 250 Hello example.net
C: MAIL FROM: 
S: 250 Ok
C: RCPT TO: 
S: 250 Ok
C: DATA
S: 354 End data with .
C: Subject: test message
C: From: sender@example.net
C: To: friend@example.com
C:
C: Hello,
C: This is a test.
C: Goodbye.
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye

Poznámka: S je server, C je klient.

ESMTP

Rozšiřuje SMTP o další příkazy. Rozliší se na základě jiného prvního příkazu: EHLO. Některé rozšiřující příklady: (Převzato z Wikipedie)
8BITMIME
umožňuje posílat zprávy v 8bitovém kódování, na rozdíl od SMTP, které používá 7 bitů
SMTP-AUTH
umožňuje posílat zprávy až po předchozím přihlášení uživatele
PIPELINING
umožňuje serveru posílat více příkazů během jednoho spojení
SIZE
přijímající server takto sděluje, jak velkou zprávu maximálně akceptuje; odesílající server takto sděluje, jak velká je doručovaná zpráva
STARTTLS
umožňuje šifrované spojení pomocí TLS

DNS

Pro každého příjemce příchozí zprávy se prohledají MX záznamy. Pokud adrese příjemce odpovídá více MX záznamů, vybere se ten s nejnižší prioritou. Jestliže nevyhovuje žádný MX záznam, zkusí se vybrat A záznam. Pro vybraný záznam se naváže SMTP spojení.

Formát zprávy

(Převzato z referátu Petra Bartela)

Spam

Nevyžádaná pošta je rozesílána na adresy ze spamových databází vytvářených roboty. Tito roboti např. procházejí webové stránky a získávají z nich adresy. Možná ochrana – uvádět na webu adresu např. ve tvaru kdosi(zavinac)kdesi(tecka)cz. Dále roboti získávají adresy slovníkovými útoky na SMTP servery, takže náchylnější jsou častá jména.

Open relay

Servery by neměly být konfigurované jako open relay, tj. umožňovat průchod jakékoli pošty. Tím usnadňují práci spammerům a maskují původní IP adresu, což ztěžuje identifikaci spammera.

Blacklisting

Zda zpráva je, nebo není spam, se rozhoduje podle adresy odesilatele příp. podle IP adresy serveru, ze kterého zpráva přichází.

Graylisting

Rozhodnutí, zda zpráva je spam se opět děje podle adresy odesilatele a IP adresy, ale děje se tak dynamicky v závislosti na čase po který se odesílající server odmlčel.

Antispamové filtry

POP

POP3 je protokol nad TCP/IP na portu 110. Používá se ke stahování pošty ze serveru na klienta. Je jednoduchý, má výlučný přístup ke schránce a připojení trvá jen po dobu stáhnutí pošty.

IMAP

IMAP4 je další protokol pro stahování pošty ze serveru na klienta. Též nad TCP/IP tentokrát na portu 143. Je vcelku komplikovaný, ale má více funkcí než POP3. Např. sdílený přístup ke schánce, více schránek (složek), prohledávání pošty přímo na serveru, připojení zde trvá, dokud je aktivní uživatelské rozhraní, ...

Literatura