Uživatelské schránky jsou vlastně všechny uživatelské účty, které máme v Linuxu vytvořené. Každý uživatel Linuxu se tak automaticky stává vlastníkem poštovní schránky, do které je mu ihned SMTP serverem doručována pošta.
Vytvořit uživatele lze v Linuxu snadno příkazy useradd nebo adduser (záleží na distribuci) s příslušnými parametry a příkazem passwd, kterým nastavíte uživatelské heslo. Příkazy je možné použít i bez parametrů, potom Linux vytvoří standardního uživatele s domovským adresářem a základním nastavením podle zvolené distribuce. Dvojicí příkazů
useradd povolny
passwd povolny
tak vytvoříte uživatele povolny s domovskou složku /home/povolny a poštovní schránkou /var/mail/povolny. Následně mu nastavíte přístupové heslo. Jeho poštovní adresa je pak ve tvaru povolny@firma.cz podle domény, kterou jsme definovali v konfiguraci serveru v minulém dílu.
Formát takto vytvořené poštovní schránky je čistě textový, jednotlivé zprávy jsou umísťovány za sebou tak, jak do schránky dorazí (formát mbox). Zprávy v tomto formátu nelze třídit ani nijak upravovat. K tomu slouží poštovní klienti, o kterých si řekneme dále.
Třídění zpráv
Před samotným doručením zprávy ji lze směrovat a třídit. Existuje hned několik způsobů, jak s ní pracovat.
První možností je třídění pomocí konfigurace aliasů, tedy editace souboru /etc/aliases na našem linuxovém serveru. Tento soubor má velmi jednoduchý syntax. Vlevo se nachází adresa zdroje, vpravo potom adresa cílová.
Mějme např. schránku povolny (e-mail povolny@firma.cz), ke které bychom chtěli vytvořit alias jan.povolny@firma.cz. Potom do souboru /etc/aliases dopíšeme řádek takto:
jan.povolny: povolny
Tím poštovnímu serveru oznámíme, že zprávy přijaté pro jan.povolny@firma.cz doručujeme do schránky uživatele povolny, kterého jsme vytvořili výše. Se stejnou logikou utvoříme pomocí souboru aliases i jednoduché distribuční skupiny. Např. řádek
info: povolny, sekretariat, reditel
řekne serveru, že vše, co přijde na adresu info@firma.cz, rozešle automaticky do uvedených schránek. Uživatel info přitom vůbec nemusí v Linuxu existovat. Podobným způsobem si pak mohou jednotliví uživatelé přeposílat své zprávy na jiné e-mailové adresy. Např. řádek
povolny: \povolny, povolny@jinde.cz
zajistí, že bude pošta pro povolny@firma.cz doručena do jeho schránky na serveru (lomítko před vlastním jménem předejde zacyklení zprávy) a zároveň v kopii přeposlána na jinou e-mailovou adresu.
Po každé změně souboru aliases je nutné jej aktivovat. Buď restartováním celého serveru, nebo příkazem newaliases bez parametrů. Úspěšné nastavení lze opět ověřit v logu serveru.
Na základní práci s poštou nám aliasy postačí, pokud však chceme třídit sofistikovaně, můžeme použít program k tomuto účelu vytvořený – procmail. Je to specialista na třídění, avšak jeho konfigurace není nejjednodušší. Možnosti procmailu si ukážeme na nastavení automatické odpovědi, pro kterou bývají jeho schopnosti využívané nejčastěji. Procmail lze konfigurovat buď globálně (např. u nastavení antivirové kontroly – viz následující díly seriálu), nebo uživatelsky. Globální soubor nalezneme ve složce /etc/mail/procmailrc, lokální potom vždy v příslušné domovské složce, např. /home/povolny/.procmailrc. Vzorový soubor pro případ „out of office“ by tak mohl vypadat např. takto:
SHELL=/bin/sh
LOGFILE=$HOME/procmail.log
FROM='Jan Povolny
SUBJECT=`formail -zcxSubject:`
:0 Whc: dovolena.lock
* !^FROM_DAEMON
* !^X-Loop: ${LOGNAME}@${HOST}
| formail -rD 8192 dovolena.cache
:0 ehc
| (formail -rI"Precedence: junk" \
-I"Subject: Out of Office: ${SUBJECT}" \
-I"From: ${FROM}" \
-A"X-Loop: ${LOGNAME}@${HOST}" ; \
cat ${HOME}/dovolena.txt ; \
) | $SENDMAIL -oi -t
V první části skriptu definujeme základní proměnné. Tj. chceme nastavit log soubor, odesílatele a subjekt zprávy, který bude vždy odpovědí na došlý e-mail. Následně definujeme filtry. Každý se skládá ze tří částí. První je počátek „:0 s parametry“, následují podmínky filtru uvozené znakem „*“, celý proces je zakončen akcí uvozenou znakem „|“. V podstatě tak procmailu říkáme, že pro každý došlý e-mail (který doručí a ponechá ve schránce) vytvoří automatickou odpověď, jejíž obsah je uložen v souboru dovolena.txt v domovské složce uživatele. Adresa odesílatele se potom navíc uloží do souboru dovolena.cache, tak aby se na ni posílala informace pouze jednou, a ne opakovaně.
Klienti
Doručené zprávy je nutné ze schránek vyzvednout. K tomu slouží takzvané klientské protokoly. Mezi nejznámější jistě patří POP3 a IMAP. Zatímco první zprávy ze schránky vyzvedne a stáhne na lokální stanici, druhý s nimi pracuje vzdáleně a ponechává je tak na serveru. Výhody a nevýhody obou jsou zřejmé.
Stejně jako je poštovní server obsluhován démonem sendmail, jsou klientské protokoly také obsluhovány příslušnými servery dostupnými v linuxových distribucích. V našem případě použijeme výborně zpracovaný server dovecot, jenž v sobě obsahuje démony pro POP3 i IMAP.
V distribuci Fedora není nutné dovecot jakkoliv nastavovat. Standardní nastavení plně odpovídá potřebám sendmailu. Přesto doporučujeme prověřit direktivy konfiguračního souboru /etc/dovecot.conf, zejména pak správnou definici mail_location. V souboru najdete i možnosti pro jednotlivé protokoly a také způsoby autorizace. Standardně se používají stejná jména a hesla, tak jak jsme je nadefinovali při tvorbě uživatele. Samotnou službu spustíte příkazem
service dovecot start
Úspěšné pokusy o přihlášení lze opět ověřit v soubor /var/log/maillog. Klientským programem pak může být libovolný POP3 nebo IMAP klient, např. MS Outlook, Mozilla Thunderbird nebo běžně dostupný Windows Mail. Příslušná nastavení těchto klientů jsou notoricky známá.
V příštím dílu našeho seriálu se podíváme podrobněji na zabezpečení serveru SMTP (SMTP auth) a využití procmailu pro implementaci antivirové a antispamové kontroly příchozích zpráv.
Autor je vedoucím Informačního centra Univerzity J. E. Purkyně