Portál AbcLinuxu, 28. května 2024 05:00

Nastavení poštovního subsystému v Linuxu - II

7. 10. 2003 | Ben Okopnik
Články - Nastavení poštovního subsystému v Linuxu - II  

Dokončení návodu ke konfiguraci vlastního SMTP serveru - poštovního systému sestávajícího z programů Exim a fetchmail.

Teď to hlavní

Originál (Ben Okopnik: Setting up the mail subsystem in Linux) vyšel na serveru Linux Gazette. Přeložil Robert Krátký.

Pokračování článku z minulého týdne.

Až to bude hotovo - a až se začneme zabývat tím, co dalšího je třeba v těchto dvou různých případech udělat - budeme muset nastavit přepisování adres. Vaše adresa je přeci jen systémem viděna jako "uživatel@hostitel", a pokud nemáte vlastní doménu, nebude to platná internetová adresa. S Eximem to naštěstí není složité.

Nejprve upravíme soubor /etc/exim/exim.conf a do 6. části (REWRITE CONFIGURATION) přidáme následující:

*@localhost       ${lookup{$1}lsearch{/etc/email-addresses}\
                   {$value}fail} Ffsr

To prohledá soubor, ve kterém jsou zadána pravidla pro přepisování adres, a podle nutnosti adresy změní. V některých případech už exim.conf podobnou řádku bude obsahovat - pak se pouze ujistěte, že je vše, především Ffsr (což přepisuje hlavičky Envelope-from, From:, Sender: a Reply-to:), zapsáno správně. Jako další upravíme - překvapení! - /etc/email-addresses a přidáme záznam pro každého z uživatelů.

# Root by nikomu ven maily posílat neměl, ale co kdyby...
root: meda@medvedi.com
ben: meda@medvedi.com
rivka: milacek@tady.com
linda: kocka@zapad.org
jen: poradna@deva.net

A je to. Narozdíl od sendmailu není potřeba znovuvytvářet databáze; soubor je čten "za běhu". Jeden z důvodů, proč mám rád Exim, je ten, že jeho konfigurační soubor je hojně komentován. Také soubor /usr/share/doc/exim/spec.txt.gz je kompletním (a velmi obsáhlým) manuálem, který dopodrobna popisuje každou maličkost při konfiguraci.

Rozdílné přístupy

Pokud se rozhodnete pro možnost se "smarthost", máte v tuto chvíli hotovo. Přeskočte na část "Testování". Jestli jste však typ "udělej si sám" tak jako já, je třeba toho napsat ještě o trochu víc: protože teď neseme zodpovědnost za dopravení mailu na místo určení, musíme také ošteřit možnost, že doručení selže (tj. přijímající hostitel nebo router někde po cestě nefunguje, na chvíli se přeruší připojení k internetu, atd.). Většina z těchto věcí je již dobře nastavena, ostatně jako v každém lepším MTA, ale doplnil jsem jednu věc, která omezí množství "e-mailů o problémech" od Eximu (těch, které vám posílá coby administrátorovi) téměř na nulu: do první části /etc/exim/exim.conf přidejte následující řádek:

auto_thaw = 5m

Kdykoliv je zpráva Eximem označena jako "frozen" - zmrazená (nedoručitelná), tohle ji po pěti minutách "rozpustí" (pokusí se o opětovné doručení). Protože většina selhání je pouze dočasných, podaří se díky tomuto nastavení "protlačit" zprávy téměř vždy - pokud uživatel i doména existují.

A mimochodem. Teď když už jste velkej a tvrdej poštovní administrátor... :), co přesně máte dělat? Vlastně ani moc ne. Rozhodujte se, co provedete se zprávami o problémech (když vás Exim upozorní, že něco uvízlo ve frontě, spusťte program mailq, který vám ukáže, co to je, a podívejte se log souboru pomocí exim -Mvl <message_id>), nové uživatele přidávejte do /etc/email-addresses a reagujte na upozornění o problémech nebo spamu od dalších lidí. Abyste se s programem trochu seznámili, přečtěte si manuálovou stránku "exim". A to je asi všechno. Zkušení poštovní administrátoři velkých systémů se asi vyděsí k smrti a budou se přede mnou zaklínat, ale pro jeden stroj nebo malou LAN už víc potřeba není. Jakmile je jednou řádně nastaven, stane se z mailového systému pozoruhodně bezproblémový tvor, kterému se rány většinou hojí samy.

Testování

Exim má několik vestavěných testovacích režimů. Jeden z nich se bude velmi hodit. Potřebujeme hlavně otestovat, jestli správně fungují naše pravidla pro přepis adres - a je to snadné:

Baldur:~$ exim -brw ben
  sender: meda@medvedi.com
    from: meda@medvedi.com
      to: ben@localhost
      cc: ben@localhost
     bcc: ben@localhost
reply-to: meda@medvedi.com
env-from: meda@medvedi.com
  env-to: ben@localhost

Vyzkoušejte to s holým uživatelskýmn jménem "uživatel@localhost" a "uživatel@hostitel"; oboje by mělo být správně přepsáno. Také to vyzkoušejte s libovolnou platnou internetovou adresou - abyste se ujistili, že nebude změněna.

Až bude všechno tohle fungovat, bude váš systém rozumně nakonfigurován (základní nastavení v distribucích, které jsem zatím viděl, bývají celkem dobrá). Vyzkoušejte to dále tím, že si sami sobě pošlete e-mail, pak se podívejte na hlavičky. From: a Reply-to: (je-li nastaveno) by se měly shodovat s vaší platnou internetovou adresou, ne vaším uživatelským jménem. Tady je příklad (skutečné adresy/IP byly, stejně jako ve zbytku článku, změněny, aby je neodchytly spamboty. Nažer se falešných adres, spammerská špíno!):

Třeba v Muttu:

    From: "Benjamin A. Okopnik" <ben@localhost>
      To: Benjamin Okopnik <meda@medvedi.com>
      Cc:
     Bcc:
 Subject: Test přepisování
Reply-To:
     Fcc: =Sentmail
     Mix: <no chain defined>
     PGP: Clear

Všimněte si, že v lokálním klientovi je adresa From: lokální. Teď, když máte skutečný mailový systém, mohli byste to jednoduše udělat i z příkazové řádky:

mail -s "Rewrite test" meda@medvedi.com

Ať tak nebo tak, teď jsme to poslali a až to dostaneme zpátky - hle!

Date: Tue, 30 Apr 2002 03:47:19 -0400
From: "Benjamin A. Okopnik" <meda@medvedi.com>
To: Benjamin Okopnik <meda@medvedi.com>
Subject: Rewrite test

WARNING: Deep Magic in progress.

Ben Okopnik
-=-=-=-=-=-

Když se podíváte na hlavičky (v Muttu stiskněte "h"), uvidíte následující:

From ben Tue Apr 30 03:48:15 2002
Return-Path: <meda@medvedi.com>
Received: from Baldur (pzw-199-999-99-999.sunbridge.com [199.999.99.999]))
        by bruins.com (9.10.3/9.10.3) with ESMTP id g3U7lR45008674
        for <meda@medvedi.com> Tue, 30 Apr 2002 00:47:32 -0700 (PDT)
Received: from ben by Baldur with local (Exim 3.35 #1 (Debian))
        id 172SM7-0004nd-00
        for <meda@medvedi.com> Tue, 30 Apr 2002 03:47:23 -0400
Date: Tue, 30 Apr 2002 03:47:19 -0400
From: "Benjamin A. Okopnik" <meda@medvedi.com>
To: Benjamin Okopnik <meda@medvedi.com>
Subject: Test přepisování
Message-ID: <20020430074718.GA18398@Baldur>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.3.28i
Status: U
X-UIDL: 27862

WARNING: Deep Magic in progress.

Ben Okopnik
-=-=-=-=-=-

Routovací informace čtené odspoda nahoru říkají: Exim dostal zprávu ode mě, přepsal hlavičku a medvedi.com to dostalo od Eximu, takže všechno proběhlo správně. To znamená, že to, co říká můj MTA, ostatní správně rozpoznají. Kdyby e-mail zmizel, podíval bych se do /var/log/exim/mainlog, abych zjistil, co přesně se s ním stalo - případně do fronty, jestli tam neuvízl. Ale vypadá to, že všechno funguje správně.

Závěr

Pokud jste to dotáhli až sem - gratuluji. Stali jste se aktivními uživateli internetu, těmi, kdo věnují trochu času a úsilí tomu, aby internet fungoval ještě o něco lépe - a je mi potěšením s vámi sdílet IP prostor.

Hodně štěstí a šťastné linuxování!

Copyright (c) 2003 Ben Okopnik. Tento materiál může být distribuován pouze v souladu s podmínkami a ustanoveními danými Open Publication License (otevřená publikační licence) v 1.0 nebo pozdější (poslední verze je v současné době dostupná na http://www.opencontent.org/openpub/).

Související články

Nastavení poštovního subsystému v Linuxu - I
Kompletní proxy server přes modem
MessageWall - kladivo nejen na spam
Spam: naučte se bránit
Řešení pro dialup

Odkazy a zdroje

Setting up the mail subsystem in Linux, Ben Okopnik, linuxgazette.com
Exim
fetchmail

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

7.10.2003 08:47 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše přepisování root?
Odpovědět | Sbalit | Link | Blokovat | Admin
To je pěkná blbost. Dojde-li např. mail od cronu, bude pak mít nějakého obskurního odesilatele... A když už posílá root mail ven, mělo by být vidět, že ho poslal root; když tam chci jako odesilatele luser@example.com, pošlu to jako luser. Článek mě zklamal, čekal jsem, že tam o konfiguraci eximu bude víc než ,spusť eximconf` (takovou věc BTW vůbec nemám ;-) a pár náhodných útržků...
7.10.2003 10:01 Maud lebowski
Rozbalit Rozbalit vše přepisování root?
vsak nebyl zas tak hroznej a docela jednoduchy navod jak to udelat, aspon budes mit kam odkazovat uzivatele sendmailu... eximconf je podle me specificka zalezitost debianu
7.10.2003 16:41 franta mottl
Rozbalit Rozbalit vše přepisování root?
mily Yeti, asi jsi nepochopil co je OpenSource. Copak jsi necetl nahore, ze to pan Kratky opsal. (tedy receno oss-jazykem - zkopiroval) To co ty chces, by byla solidni prace, kdy by nekdo analyzoval dokumentaci k eximu, vylozil to, co se autorovi nepodarilo, doplnil to priklady a jeste by uvedl nekolik pripadovych studii pro ruzna nasazeni. Samozrejme by takovy clovek uvedl, co je na kterem systemu lepsi a referoval by o vlastnich zkusenostech z provozu. Takovy clanek tu bude, az to nejaky vul v potu tvare udela (tipuji tak 1/4 roku prace) a dan nam to zadarmo (nam znamena komunite) a pak to pak Kratky zase prelozi a zde uverejni. A my si to vsichni precteme a budeme podle toho administrovat nase servry a vykladat jak je komunita nadherna a jak to vsechno klape. A po nekolika takovych zkusenostech se na to ti schopni vykaslou a zase se objevi ten clanek, ze se hledaji autori.
8.10.2003 09:04 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: překlad
Nazdar franto, jak sis možná už všiml, nejsem milý ;-) Jsem si a byl jsem si vědom, že článek je překlad. Protože jsem originál neznal, měl jsem nastavenu laťku očekávání podle ostatních článků na Ábíčku, a ať už se text vzal kdekoli, mohu snad vyjádřit své zklamání nad jeho infromačním obsahem. A jde-li o překládání, nevěřím, že se po Webu nepotulují lepší anglické tutoriály na konfiguraci postfixu a eximu, které by stály za překlad. Četl-li jsi dokumentaci k eximu, jistě víš, že je tak dobrá, že žádné výklady nepotřebuje. Touhu po případových studiích jsem neprojevil, takže mi ji nepodsouvej. Zdá se mi, že mezi tím, co popisuješ, a článkem, kde se konfigurace eximu redukuje na spuštění eximconfu a nastavení jednoho rewrite pravidla, existuje ještě poměrně dost prostoru.
8.10.2003 09:06 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: překlad
s/postfixu/fetchmailu/g
7.10.2003 11:11 Clarke
Rozbalit Rozbalit vše trideni posty?
Odpovědět | Sbalit | Link | Blokovat | Admin
Mam problem, sendmail mi tridi postovni zasilky do /home/USER/.maildir , ale wu-pop3d a program mail, koukaj do fronty /var/spool/mail ale tam samozrejme nic neni. Co se stim da delat?
8.10.2003 09:44 Primitif
Rozbalit Rozbalit vše trideni posty?
Pouzit hrubou silu a udelat mezi /var/spool/mail/... a /home/USER/... symlinky... :))
8.10.2003 16:47 Honza Houštěk | skóre: 18
Rozbalit Rozbalit vše trideni posty?
Fuj! Vic zprasit to snad ani nejde. Navic tu je asi ten problem, ze se dorucuje do maildiru a ve /var/spool/mail byvaji mboxy. Nicmene uw-pop3 maildiry umi, jen je ocekava ve ~/Maildir/ (ne ~/.maildir/). Da se to ale nekde nastavit (prinejhorsim ve zdrojaku ).
13.10.2003 15:31 Marek Slapak
Rozbalit Rozbalit vše mailserver
Odpovědět | Sbalit | Link | Blokovat | Admin
... kdyz odhlidnu od potrebne RAM, ktere je zapotrebi u sendmailu/qmailu/postfixu/eximu daleko min, tak co rikate na postu resenou serverem JAMES (james.apache.org) ? Takhle si ja predstavuju postovni server. Ten james v principu neni jen postak, ale aplikacni server pro procesovani posty. Pravda, pro box s 10 uzivateli a jednou domenou kanon na vrabce, ale pro vetsi naloz domen a potreb trochu hutnejsiho procesingu posty mi pripadne naprosto nedostiznej ... co vy na to ? :-)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.