V linuxovém světě se poštovní systém skládal ze čtyř součástí, které zaručovaly odeslání a doručení elektronické zprávy.
Specifikace struktury elektronického dopisu je uvedena ve specifikaci RFC 822 a specifikace MIME lze naléztv RFC 2045 až 2049. E-mailová zpráva musí obsahovat hlavičku a tělo zprávy. Hlavička obsahuje provozní informace dopisu. Jsou zde uloženy informace o odesílateli a příjemci, předmět zprávy, čas odeslání apod. Tělo zprávy je určeno pro lidského příjemce a nese vlastní sdělení. Tělo a hlavička jsou odděleny prázdným řádkem.
Položky hlavičky jsou každá na jednom řádku a mají následující podobu:
název:hodnota
Názvy jsou dány RFC specifikacemi, obsahy hodnot závisí na názvu dané položky (mohou být nestrukturované nebo mít určený formát). Pokud je prvním znakem na řádku mezera nebo tabelátor, tak je tento řádek považován za pokračování předchozího.
Příklad e-mailové zprávy:
Return-Path:X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on aisa.fi.muni.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=failed version=3.1.0 Received: from anxur.fi.muni.cz (anxur.fi.muni.cz [147.251.48.3]) by aisa.fi.muni.cz (8.13.6/8.12.8) with ESMTP id k34GXZUr14469704 for ; Tue, 4 Apr 2006 18:33:35 +0200 (MET DST) Received: by anxur.fi.muni.cz (Postfix) id 9347222B383; Tue, 4 Apr 2006 18:33:35 +0200 (CEST) Received: from [192.168.2.122] (ij2klc.chello.upc.cz [68.242.122.200]) by anxur.fi.muni.cz (Postfix) with ESMTP id 6742122B02B for ; Tue, 4 Apr 2006 16:33:35 +0200 (CEST) Message-ID: <44329FDF.1090907@mail.muni.cz> Date: Tue, 04 Apr 2006 18:33:35 +0200 From: chalda User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: xchalou2@fi.muni.cz Subject: Predmet zpravy Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit Text zpravy
Elektronická adresa se skládá ze dvou částí oddělených zavináčem. Údaj před zavináčem slouží k identifikaci uživatele na daném systému a je zpracováván doručovacím agentem. Za zavináčem je adresa domény, kam má být zadaný e-mail odeslán. Stroj kterému se má pošta pro tuto doménu odeslat je zjistitelný z DNS záznamu dané domény. Pokud v DNS záznamech neexistuje MX záznam, pošta bude odeslána na stroj dle DNS záznamu. Pokud, ale chceme nastavit poštovní server pro celou doménu a nechceme, aby pošta přicházela přímo na uživatelské stroje, je třeba uvést MX záznamy, které specifikují stroj na který má být odeslána pošta dané domény či skupiny strojů. MX záznamy jsou určeny prioritou a to tak, že přenosový systém se pokouší nejprve spojit se strojem, který má nejnižší prioritu. Počítače s vyššími prioritami bývají záložní a často slouží jen jako dočasné úložiště, dokud není zprovozněn hlavní mail server.
SMTP je protokol, který je určen pro přenášení elektronické pošty. Je definován normou RFC 821 již z roku 1982. Jeho rozšířením je protokol ESMTP, který definuje několik dalších příkazů, které si mezi sebou servery vyměňují. SMTP pracuje na portu 25 protokolu TCP.
Příklad spojení při použití programu telnet:
tnymfe16:/home/xchalou2>$ telnet aisa 25 Trying 147.251.48.1... Connected to aisa.fi.muni.cz (147.251.48.1). Escape character is '^]'. 220 aisa.fi.muni.cz ESMTP Sendmail 8.13.6/8.12.8; Tue, 4 Apr 2006 19:28:01 +0200 (MET DST) ehlo aisa 250-aisa.fi.muni.cz Hello nymfe16.fi.muni.cz [147.251.53.26], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 HELP mail from: nekdo@mail.muni.cz 250 2.1.0 nekdo@mail.muni.cz... Sender ok rcpt to: chalda@mail.muni.cz 250 2.1.5 chalda@mail.muni.cz... Recipient ok data 354 Enter mail, end with "." on a line by itself Text mailu . 250 2.0.0 k34HS1bM14253841 Message accepted for delivery quit 221 2.0.0 aisa.fi.muni.cz closing connection Connection closed by foreign host.
POP3 (Post Office Protocol version 3) je protokol specifikovaný v normě RFC 1939. Pracuje s protokolem TCP obvykle na portu 110. Je určen k přenosu elektronických zpráv ze serveru k užívateli. Uživatel si zprávy ze serveru musí skutečně stáhnout (a to např. včetně spamu) a pak s nimi pracuje na lokálním počítači. Protokol je nešifrovaný, ale autentizovaný. Specifikace definuje volitelnou metodu APOP, která používá k přenosu hesla od klienta k serveru pomoci md5 hashe. Některé servery podporují kódování celého POP přenosu za užítí SSH.
IMAP (Internet Mail Access Protocol) definován normou RFC 3501. Stejně jako protokol POP3 slouží užívateli pro prohlížení zpráv na poštovním serveru, ale je určen spíše pro dlouhodobější připojení. Zprávy zůstanou uloženy na serveru a průběžně se stahují dle potřeby. Rozdílem od POP je např. podpora připojení současně více klientů, uchovávání stavu zprávy, mopžnost manipulace s více mailovými schránkami, stažení pouze hlavičky zprávy či prohledávání na straně serveru. Protokol je v autorizovaný a nešifrovaný.
Postfix jako poštovní server je alternativou k rozšířenému sendmailu. Měl by být celkem bezpečný, snadno konfigurovatelný a relativně výkonný. Lze ho stáhnout na adrese www.postfix.org. Postfix pracuje podobně jako sendmail s unixovou poštovní schránkou, používá aliasy a rozumí i souboru ~/.forward.
Pokud je na systému nainstalován sendmail, jeho binární soubory v /usr/bin budou přepsány, proto je vhodné před instalací vytvořit jejich zálohu.
Hlavním démonem serveru postfix je démon master, který dle potřeby spouští další programy. Spuštění a zastavení agentu Postfix zajišťuje příkaz postfix
. Další jeho příkazy se stejně jako tento nacházejí v adresáři /usr/bin a jejich názvy začínají textem post.
Do adresáře /var/spool/postfix jsou ukládány všechny příchozí zprávy s kterými server pracuje. V tomto adresáři najdeme též poštovní fronty nad kterými postfix pracuje. Pro jejich kontrolu můžeme využívat standardní unixové příkazy (find, cat, grep ...).
Fronty:
incoming - všechny příchozí zprávy (lokální i vnější)
active - zprávy jež jsou doručovány nebo jsou k doručení chystány
defered - zprávy jež není možno okamžitě doručit, odloží se a provede se další pokus
corrupt - nečitelné nebo poškozené zprávy
Souboru /etc/aliases slouží k mapování jednoho uživatelského jména na jiné. Má formát prostého textu a vytváří se z něj indexovaná databáze. Pro vytvoření této databáze slouží příkaz newaliases
.
Řádka souboru aliases vypadá následovně:
xchalou2: xchalou2@aisa.fi.muni.cz
Krom řádky specifikující přeposlaní zprávy jinému uživateli, ze může být uveden soubor, do kterého se mají zprávy uložit:
xchalou2: /soubor
příkaz, na jehož standardní vstup bude zpráva předána:
xchalou2: |prikaz
vložen soubor s pravidly:
xchalou2: :include:/soubor
Pokud chceme zadat více pravidel, oddělíme je čarkami.
Aby nebylo nutné aliasy sekvenčné procházet a vyhodnocovat, musíme použít příkaz postalias
, který soubor převede do formátu v kterém postfix dokáže rychle vyhledávat.
Uživatel se může rozhodnout přesměrovávat svou poštu na jiný stroj. K tomu slouží soubor .forward v domovském adresáři, který má stejnou strukturu, jako pravá strana pravidla v souboru aliases.
Konfigurační soubory nalezneme v adresáři /etc/postfix.
Všechny konfigurační soubory jsou dobře okomentovány a lze tak jednoduše pochopit význam jednotlivých parametrů.
master.cf - nastavení pro jednotlivé procesy (démony) balíku postfix.
main.cf - základní konfigurační soubor systému postfix. Formát souboru je na každém řádku:
parametr = hodnota
dalsiParametr = $parametr
Některé konfigurační volby:
myhostname - což je plné jméno hostitelského systému. Pokud není zadáno použíje postfix funkci systému gethostname
mydomain - jméno domény. Pokud není zadána použíje postfix doménové jméno z myhostname
mydestination - seznam názvů domén pro které bude server přijímat poštu (odděleny mezerou)
myorigin - definice názvu domény, doplňovaný ke zprávám odeslaným lokálně (tedy pokud adresa obsahuje jen jméno uživatele)
mynetworks_style, mynetworks, relay_domains - parametry sloužící k nastavení relayování
relayhost - přeposlání zprávy pokud nevyhovuje pravidlo v souboru transport
Dalšími konfiguračními soubory jež v adresáři nalezneme jsou:
access - nastavení pravidel k přistupu k SMTP
canonical - přepis adres před uložením do fronty
generic - přepis adres při doručení pošty
virtual - virtuální přepis adres; přepisuje obálku
relocated - přeposlání zpráv pro neexistující adresy (např. pokud si uživatel změní adresu)
transport - konfigurace relayování (dle adresy, domény...)
header_check - ovlivnění přijímání pošty dle obsahu hlaviček
Většinu konfiguračních souborů je třeba převést do indexovaného formátu, který je postfix je schopen rychle prohledávat. Pro tento převod slouží příkazem postmap
. Umístění těchto vygenerované souborů lze změnit v souboru main.cf
Dokumentaci lze nalézt na stránkách programu Postfix a též na wiki na adrese postfixwiki.org.
Root.cz
Wikipeida
Archiv předmětu PV090
Používáme Linux; Matt Welsh, Matthias Kalle, Terry Dawson, Lar Kaufman, Computer Press 2003
LINUX - Internet server; Pavel Satrapa, Jiří A. Randus, Neokortex 1998