Trocha historie
Možná to někoho překvapí, ale sendmail je starší než někteří čtenáři roota. Erric Allman napsal v roce 1979 program delivermail, který řešil směrování e-mailů mezi třemi v té době používanými sítěmi – ARPAnet, UUCP a BerkNet. Žádné TCP/IP ani SMTP. V té době ale ARPAnet přecházel právě na rodinu protokolů TCP/IP a začal se pro doručování pošty používat protokol SMTP. Delivermail byl ale těžko konfigurovatelný, síť se změnila a proto vzniká v roce 1980 sendmail. V roce 1983 se stává součástí systému 4.0 BSD. Sendmail i dále podporuje ostatní sítě, dále se vyvíjí. Momentálně máme verzi 8.14.3, od verze 8.10 podporuje IPv6 a dnes běžně používané standardy – smtp autorizace, blacklisty, filtry (v sendmailu nazývané milter). Dnes existují i další MTA, například postfix, exim,… Každý má svá specifika. Hodně lidí nezkusí sendmail kvůli různým mýtům a pověrám o něm.
Mýty a pověry
Nepochopitelná a šílená konfigurace. V diskuzi pod naším dříve vydaným článkem někdo označil obsah souboru sendmail.cf
jako „pornofilm v ascii“ nebo „abstraktní ascii art“. Obsah tak opravdu může vypadat:
# strip group: syntax (not inside angle brackets!) and trailing semicolon R$* $: $1 <@> mark addresses R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr> R@ $* <@> $: @ $1 unmark @host:... R$* [ IPv6 : $+ ] <@> $: $1 [ IPv6 : $2 ] unmark IPv6 addr R$* :: $* <@> $: $1 :: $2 unmark node::addr R:include: $* <@> $: :include: $1 unmark :include:... R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon R$* : $* <@> $: $2 strip colon if marked R$* <@> $: $1 unmark R$* ; $1 strip trailing semi
Uznávám, že vypadá dost divně v porovnání třeba s konfigurací postfixu, kde je vše pěkně okomentované. Při troše snahy se v sendmail.cf
i zorientujete. Teď možná někoho překvapím, ale pro běžné fungování sendmailu nemusíte do tohoto souboru vůbec sáhnout. To uděláte jen v případě, že chcete dosáhnout nějakého atypického chování sendmailu. Stalo se mi to za dobu používání sendmailu asi jen 2×. Sendmail pro 99,9 % úkonů budeme konfigurovat jinak a mnohem jednodušeji. V konfiguraci je i výhoda sendmailu – zásahem do cf souboru si můžeme jeho chování upravit dle svých přání. Jiné MTA takovou volnost asi nenabídnou.
Více s o tomto zmíníme příště. Teď jen ukázka, jak vypadá čitelná konfigurace, se kterou se budeme setkávat my:
dnl Uncomment to activate Realtime Blackhole List dnl information available at http://www.mail-abuse.com/ dnl NOTE: This is a subscription service as of July 31, 2001 dnl FEATURE(dnsbl) dnl Alternatively, you can provide your own server and rejection message: dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-abuse.org/cgi-bin/lookup?" $&{client_addr}') dnl Dialup users should uncomment and define this appropriately dnl define(`SMART_HOST', `your.isp.mail.server')
Sendmail je děravý
Věc, kterou si musíme uvědomit, je stáří a doba vzniku sendmailu. Jsou to už vlastně desítky let. V té době se neřešila bezpečnost tak jako dnes, neexistoval spam, viry šířené e-mailem, přes MTA neprocházely miliony zpráv denně,… Sendmail byl děravý, stejně tak jako spousta dalšího software. Ta doba už je ale dávno pryč. V poznámkách k vydání se můžete přesvědčit, že vývoj jde dál. Nakonec je zajímavé, že program navržený před 30 lety je dodnes hojně používán a slouží dobře.
Dále je sendmailu vytýkáno, že je to jeden velký program, starající se o všechno. To jde proti filozofii unix systémů – program má být malý, dělat jednu činnost a dělat ji dobře. Tak na to jde třeba postfix – spousta malých prográmků, každý se stará o jednu věc, můžete jednotlivé chrootovat. Sendmail je moloch, ale svou činnost dělá dobře. Nepřijde mi jako rozumné ho nepoužívat jen kvůli tomu, že je „velký“.
Výhody
Některé výhody jsem zmínil už výše. Jako další bych uvedl jeho rozšířenost. Na mnoha unix systémech (třeba FreeBSD) je to výchozí MTA. Nemusím tedy nic dalšího instalovat. Dle mého další výhoda sendmailu je v jeho log souborech. Nenašel jsem žádné jiné MTA, které tak pěkně loguje události a průběh mailu. Ale tento můj subjektivní dojem mi můžete třeba v diskuzi vyvrátit.
Možná máte dojem, že jsem nějaký fanatický zastánce sendmailu. Nejsem. Používám sendmail asi 5 let. Dále používám postfix, hrál jsem si s qmailem. Každé MTA má něco do sebe. V tomhle miniseriálu chceme ukázat:
- základní konfiguraci, zabezpečení
- antivir (clamav), antispam (spamassassin), blacklisty
- uživatele, aliasy, přesměrování
- smtp autorizace, smart host
Kde se objeví sendmail, bývá i vášnivá diskuse. Doufám, že bude přínosná a objeví se i nějaké tipy od čtenářů.