Hlavní navigace

Sendmail: pošťák, který nekouše

Petr Macek 29. 9. 2008

Sendmail? Proboha proč něco takového? Oživování mrtvoly. Díra do linuxu na 8: sendmail. Jeho konfigurace - jízdní řád čínských drah, výbuch v továrně na interpunkční znaménka... Ale je o něm i spousta mýtů a předsudků, proto vzniká tenhle nový seriál. V dnešním dílu si povíme něco o jeho vzniku a vývoji.

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ářů.

Našli jste v článku chybu?

30. 9. 2008 13:52

WanGogh (neregistrovaný)
Dále vyjadřuji pouze svůj osobní názor:

Aktivně se starám od roku 2001 o poštovní servery a mám co porovnávat.
- SendMail
- PostFix
- Qmail
- Exchange 2003
- Exchange 2007

Exchange 2003 - nikdy nezradil, vždy jsem udělal co jsem potřeboval, jen bych ho nenechal jako frontserver k vůli mizerné bezpečnosti a defakto žádné antispammové ochraně.
(Pouze rozběhat OWA po havárii systému je ojebávka nejhoršího kalibru TFUJ! ale za to může spíš IIS)

Exchange 2007 - opět jako v předchozím případě posta…











29. 9. 2008 7:25

pht (neregistrovaný)
Ja bych to tak tragicky nevidel. Uvedomte si, ze sendmail je vyrazne starsi design. To je jako byste porovnal sed a ruby. Tenkrat bylo dost, kdyz samotnej daemon nebezel imrvere pod rootem, natoz aby jeho jednotlivy casti byly dekomponovany na samostatny procesy. Nebylo to prakticke ani z hlediska rezie na beh procesu, a jelikoz (imho) se .cf parsoval pri kazde instanci spustene z inetd (ano) tak nebylo ani vhodne zavadet nake ultra prijemne syntakticke konstrukce. Administratori taky byli troch…
Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: Nenechte se ošidit, když vám staví dům

Nenechte se ošidit, když vám staví dům

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?