Konfigurujeme záložní poštovní server

Petr Macek 15. 1. 2009

Poštovní server je důležitou součástí každé firmy a jeho výpadek váš může stát hodně nervů a peněz. Ukážeme si, jak nastavit záložní poštovní server pomocí pošťáka Sendmail, rozebereme si pár často používaných maker a na závěr si přidáme několik programů, kterými můžeme sledovat jeho činnost.

Stále budu vycházet z příkladu popisovaného v minulých dílech – máme nainstalované FreeBSD se sendmailem, který řeší poštu pro doménu firma.cz. Poštovní server se jmenuje mail.firma.cz. Budeme řešit záložní poštovní server pro doménu  jinafirma.cz.

Nejdříve je třeba nastavit DNS. Potřebujeme správný MX záznam pro doménu jinafirma.cz, ukazující na náš server mail.firma.cz. Výsledek bude vypadat asi nějak takhle:

jinafirma.cz   10   mail.jinafirma.cz
jinafirma.cz   20   mail.firma.cz

Dále musíme provést směrování pošty v mailertable na stroji mail.firma.cz:

jinafirma.cz        smtp:mail.jinafirma.cz

Vytvoříme si mailertable databázi, buď pomocí make v /etc/mail/  nebo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable. Pozor, pokud používáte jiný typ databází než hash, o tom jsme mluvili v minulém dílu.

Nakonec musíme v přístupové databázi access povolit poštu pro tuto doménu, přidáme:

jinafirma.cz        RELAY
To:jinafirma.cz     RELAY

Můžeme si vybrat z výše uvedených zápisů. Druhý zápis jsme rozebírali v minulém dílu. Tím máme jistotu, že řešíme poštu, která je směrována pro tuto doménu a ne z ní, to nemusí být vždy žádoucí. Opět vytvoříme databázi, zase pomocí make nebo makemap. A tím je hotovo.

Často používaná makra

Předpřipravený mc soubor nemůže obsahovat vše a nemusí vyhovovat každému. Existuje spousta dalších maker. O sendmailu vyšla spousta knih, a na Sendmail.org je vše potřebné. Zde je vysvětleno několik často používaných maker.

Nastavení logování. Výchozí hodnota je 9. Co která znamená, se dozvíte třeba v Sendmail cookbook.
define(`confLOG_LE­VEL', `9')

Nastavení logování milterů. Miltery ve výchozím stavu logují stejně jako samotný sendmail, ale můžeme jim nastavit i jiný log level.
define(`confMIL­TER_LOG_LEVEL', 14)

Maximální velikost zprávy v bajtech
define( confMAX_MESSAGE_SIZE', 2000000')

Maximální počet příjemců jedné zprávy. Počítají se dle obálky.
define( confMAX_RCPTS_PER_MESSAGE', 10')

Double bounce. Pokud dojde k chybě při posílání e-mailu, bude na to upozorněn e-mailem postmaster. Postmaster je pomocí /etc/mail/aliases směrován do schránky root. Při větším množství nedoručených e-mailů se schránka rychle plní. Pokud nastavíme toto makro prázdné, postmaster nic dostávat nebude.
define(`confDO­UBLE_BOUNCE_AD­DRESS', `')

Chybové hlášení access denied. Můžeme si nastavit hlášku access denied, výchozí je 550 Access denied
define( confREJECT_MSG', 550 Text')

Chybové hlášení Relaying denied.Stejným způsobem jako Access denied
define( confRELAY_MSG', 550 Text')

Timeouty, je jich hodně, namátkou třeba confTO_HELO, confTO_CONNECT, confTO_DATAINIT

Nástroje pro sendmail

V systému máme několik dalších nástrojů, které nám umožní monitorovat sendmail. Sám sendmail s vhodným parametrem také něco poví:

pm@mail ~ $ sendmail -d0 -bt < /dev/null
Version 8.14.2
 Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
                NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SASLv2
                SCANF STARTTLS TCPWRAPPERS USERDB XDEBUG

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = mail
  (canonical domain name) $j = mail.firma.cz
         (subdomain name) $m = firma.cz
              (node name) $k = mail.firma.cz
========================================================

Můžeme se zeptat na stav front. Privilegovaná fronta pomocí mailq (nebo sendmail -bp), neprivilegovaná pomocí mailq -Ac. U obou je možné použít parametr -v pro více informací. Ve výpisu vidíte i to, kde jsou data jednotlivých front.

root@mail ~ # mailq
/var/spool/mqueue is empty
                Total requests: 0
root@mail ~ # mailq -Ac
                /var/spool/clientmqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
n04D50ab046515*   35477 Sun Jan  4 14:05 cacti
                                         cacti
                Total requests: 1

Program mailstats zobrazí počty zpracovaných zpráv, bajty, …:

root@mail ~ # mailstats
Statistics from Mon Dec 29 01:00:04 2008
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis msgsqur  Mailer
 3     1042     379861K     1049      28408K        0       0       0  local
 5      516     236720K      704     572524K       17       0       0  esmtp
=====================================================================
 T     1558     616581K     1753     600932K       17       0       0
 C     2361                  733                   17

Dalším programem je hoststat (nebo sendmail -bh). Zobrazí nám statistiku pro jednotlivé mailové servery. Vidíme jméno hosta, dobu poslední komunikace a výsledek. Pomocí purgestat (nebo sendmail -bH) můžeme statistiky smazat.

widgety

root@mail ~ # hoststat
 -------------- Hostname ---------- How long ago ---------Results---------
 mail.telstra.com.au                    04:05:41 250 Message accepted for
 scooter.eye-net.com.au              81+08:32:42 250 OK id=0zTGai-0008S9-0
 yarrina.connect.com.a               53+10:46:03 250 LAA09163 Message acce
 happy.optus.com.au                  55+03:34:40 250 Mail accepted
 mail.zip.com.au                        04:05:33 250 RAA23904 Message acce
 kwanon.research.canon.com.au        44+04:39:10 250 ok 911542267 qp 21186

Pro zobrazení aliasů je možné použít praliases.

A samozřejmě nesmíme zapomenout na /var/log/maillog, do kterého sendmail skvěle loguje. Málokterý poštovní server má tak přehledný a čitelný log.

Našli jste v článku chybu?
Lupa.cz: Blíží se konec Wi-Fi sítí bez hesla?

Blíží se konec Wi-Fi sítí bez hesla?

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

120na80.cz: Pálení žáhy: která jídla ne a co nás uzdraví?

Pálení žáhy: která jídla ne a co nás uzdraví?

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

DigiZone.cz: Numan Two: rozhlasový přijímač s CD

Numan Two: rozhlasový přijímač s CD

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?