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.

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?
Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Vitalia.cz: Tohle je Břicháč Tom, co zhubnul 27 kg

Tohle je Břicháč Tom, co zhubnul 27 kg

120na80.cz: Bonbon si schovejte na přistání

Bonbon si schovejte na přistání

Měšec.cz: Bezplatná mediace: proč vám ji zamítli?

Bezplatná mediace: proč vám ji zamítli?

DigiZone.cz: Loewe Subwoofer 300 pro televizory

Loewe Subwoofer 300 pro televizory

Vitalia.cz: Patří maso do dětského jídelníčku?

Patří maso do dětského jídelníčku?

120na80.cz: Jaké plavecké pomůcky vaše dítě ochrání?

Jaké plavecké pomůcky vaše dítě ochrání?

Podnikatel.cz: Místa, kde hází podnikání klacky pod nohy

Místa, kde hází podnikání klacky pod nohy

Měšec.cz: Zelená karta – kde neplatí povinné ručení?

Zelená karta – kde neplatí povinné ručení?

Lupa.cz: Největší torrentový web KickassTorrents padl

Největší torrentový web KickassTorrents padl

DigiZone.cz: Epson: 4K projektory s podporou HDR

Epson: 4K projektory s podporou HDR

Podnikatel.cz: Kanceláře jako kóje? Špatný vtip

Kanceláře jako kóje? Špatný vtip

Podnikatel.cz: Rozhodnuto! Pracující senior penzi nezdaní

Rozhodnuto! Pracující senior penzi nezdaní

Lupa.cz: Křišťálová Lupa 2016: kdo by měl letos vyhrát?

Křišťálová Lupa 2016: kdo by měl letos vyhrát?

DigiZone.cz: Sat novinky: pátý kanál maďarské televize

Sat novinky: pátý kanál maďarské televize

Měšec.cz: Investice do drahých kovů - znáte základní chyby?

Investice do drahých kovů - znáte základní chyby?

Měšec.cz: Jak si přivydělat brigádou, když jste na Úřadu práce?

Jak si přivydělat brigádou, když jste na Úřadu práce?

120na80.cz: Řepík má protizánětlivé účinky a detoxikuje

Řepík má protizánětlivé účinky a detoxikuje

Lupa.cz: eIDAS: Nepřehnali jsme to s výjimkami?

eIDAS: Nepřehnali jsme to s výjimkami?