Hlavní navigace

Sendmail: konfigurace poštovního serveru

Petr Macek 7. 1. 2009

Pokračování seriálu o velmi mocném pošťákovi Sendmail. Dnes se podíváme na konfigurační soubory access, virtusertable a genericstable. Pomocí nich si nastavíme přístupy pro jednotlivé domény, vytvoříme nějaké virtuální účty, trochu se zmíním o .mc souboru a na závěr si ukážeme maškarádu adres.

Access – přístupová databáze

Náš sendmail ve výchozím stavu odmítá veškerou poštu, pokud není určena pro vlastní stroj nebo pro domény uvedené v /etc/mail/local-host-names. Další chování můžeme ovlivnit pomocí souboru /etc/mail/access. Ve většině distribucí bude ještě ukázkový soubor access.sample. Formát souboru je jednoduchý. Na levé straně je uveden odesílatel, vpravo je pak typ přístupu (RELAY, OK, REJECT, ERROR:###). Je možno zapsat DNS jméno, IP adresu nebo jen část IP (192.168.1 projde vše začínající 192.168.1).

Jednotlivé druhy přístupu:

RELAY  – předávání pošty. Zde uvedený host může přes náš stroj předávat poštu dál. Zapište si zde  localhost.

REJECT  – od takového hosta odmítneme veškerou poštu

OK  – takový host může poslat poštu pouze pro náš stroj

Poslední možností je zápis spammer.com ERROR:"550 We do not accept mail from spammers". Pokud se pokusí přes nás spamovat host spammer.com, bude mu vrácena výše zapsané chybové hlášení. Starší zápis „550 text chyby“ už není doporučován používat.

Ještě poslední zmínka – pokud uvedeme zápis:

spammers.com             REJECT
server1.spammers.com     OK

Pokud se nám pokusí poslat e-mail server1.spammer­s.com, podaří se to. Vyhrává totiž přesnější zápis namísto obecnějšího. Z ostatních serverů (např. server2.spammer­s.com) bude pošta odmítána.

Dále je možné řešit odmítání zpráv i podle From: a To: z obálky e-mailu. Tím můžeme docílit jednosměrného zákazu, ale druhý směr zůstane povolený. První řádek zakazuje veškerou komunikaci s adresou nabidky@nejaky­obchod.cz, další dva už pak jen zakazují jen jeden směr.

nabidky@nejakyobchod.cz       REJECT
From:osklivy@spammer.net      REJECT
To:nekdo@firma.cz             REJECT

virtusertable – virtuální uživatelé

Pokud na serveru běží jen jedna doména, vše je jednoduché. Při více doménách to funguje následovně. Sendmail přijímá poštu pro všechny domény uvedené v local-host-names  a v tuto chvíli se nestará o část před zavináčem. To řeší až lokální doručovatel a toho zase nezajímá doména. Takže pokud máme domény firma.cz, jinafirma.cz a definovaného uživatele třeba obchod, nejsou to 2 fyzické mailboxy, ale jen jeden – obchod. Vše, co přijde na obchod@firma.cz nebo obchod@jinafir­ma.cz, skončí ve schránce obchod. To může být někdy vhodné, třeba když firma přikoupí další doménu. V některých případech ale vzniká problém, pokud chceme mít třeba adresy info@firma.cz a info@jinafirma.cz. K tomu využijeme soubor virtusertable.

V sample souboru uvidíte několik příkladů. Můžete směrovat do lokálních mailboxů nebo na jiné stroje. Systém je podobný jako v souboru aliases, ale tento umí pracovat i s doménovými jmény.

info@firma.cz            pm
info@jinafirma.cz        nekdojiny@jinde.cz
@tretifirma.cz           tretifirma@freemail.cz
@domenax.cz              $1@domenay.cz

První dva řádky jsou řešením výše popsaného problému s info@… Takto můžeme každé info poslat do jiného mailboxu (třeba 2 lokálních nebo na úplně jiné adresy). Třetí řádek je doménový koš, nerozlišujeme část před zavináčem, vše, co přijde pro cokoli@tretifir­ma.cz, pošleme na jeden mailbox. Poslední možnost se může také někdy hodit, co přijde na libovolného uživatele v doméně domenax.cz, bude posláno na stejné uživatelské jméno v doméně domenay.cz.

Tento soubor se vyhodnocuje ze shora dolů, takže přesnější zápisy patří nahoru. Například obchod@firma.cz a dole např. doménový koš. A nezapomeňte, že domény uvedené na levé straně musí být uvedeny také v souboru local-host-names.

Mailertable

Tento soubor už jsme si vysvětlili v jednom z předchozích dílů našeho seriálu o Sendmailu. Pomocí něj můžeme poštu předávat na další server. Sendmail např. provede odvirování a odspamování a předá ji na další poštovní server v lokální síti.

Genericstable

Vlastně opak virtusertable. Můžeme lokální odesílatele maskovat za jiné. Například když odesíláte přímo ze shellu, sendmail vám za zavináč doplní hostname, takže např. pm@mail.firma.cz. Vytvořte soubor genericstable:

pm        pm@firma.cz
jan       honza@jinadomena.cz

Databázové soubory

Od všech výše popsaných konfiguračních souborů je nutné vytvořit databázi, kterou používá sendmail. Program makemap, který použijeme, umí typy hash, btree a dbm. Budeme se držet hash, který je výchozí. FreeBSD má dobře připravený Makefile, takže stačí v adresáři /etc/mail pouze zadat make. Jinak spustit:

makemap hash genericstable.db < genericstable
makemap hash virtusertable.db < virtusertable
makemap hash mailertable.db < mailertable
makemap hash access.db < access

Zároveň ještě musí být pro tyto vlastnosti M4 makra v mc souboru:

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
FEATURE(`genericstable',`hash -o /etc/mail/genericstable')

V dobře připravených mc souborech patrně budou. Pokud je ručně dopisujete, nezapomeňte potom v /etc/mail spustit:

make
make install
make restart

Pokud chcete použít jiný typ databází, musíte upravit M4 makra FEATURE, např. FEATURE(`mailer­table', `dbm /etc/mail/mai­lertable')

Ještě existuje makro define(`DATABA­SE_MAP_TYPE', `dbm'), ktere definuje výchozí typ. V případě použití potom u FEATURE maker typ zadávat nemusíte.

Maškaráda

Sendmail má i M4 makra pro maškarádu. Byla detailně rozebraná v článku Pošta pro každého (2). Jen ji zde pro úplnost zmíním. Maškaráda nám umožní změnit doménové jméno u odchozích e-mailů, podobně jako genericstable, ale pouze pro doménová jména. Pokud vám vadí, že sendmail posílá e-maily s adresami nekdo@mail.mo­jefirma.cz, maškarádou to napravíte.

dnl maskovat se jako mojefirma.cz
MASQUERADE_AS(`mojefirma.cz')dnl
dnl maskovat jména v doméně moje_firma.dialup.muj_provider.cz
MASQUERADE_DOMAIN(`moje_firma.dialup.muj_provider.cz')dnl

Tyto vlastnosti jsou pak volitelné:

dnl maskovat celou místní doménu
FEATURE(`masquerade_entire_domain')dnl
dnl maskovat i obálku zprávy
FEATURE(`masquerade_envelope')dnl
dnl maškaráda i pro lokální poštu
dnl (aby šla přes providera)
FEATURE(`allmasquerade')dnl

Zdaleka jsme nevyčerpali možnosti sendmailu, vybral jsem běžně používané věci. Další náměty očekávám v diskuzi.

Našli jste v článku chybu?

9. 1. 2009 11:14

kolemjdouci (neregistrovaný)
Pro konfiguraci pomoci m4 staci napsat
define(`ALIAS_FILE',`/etc/mail/aliases,/etc/mail/aliases2')

9. 1. 2009 11:04

takhle asi ano, ja zapomnel zminit, ze jsem myslel pouze na upravu M4 makrem.
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

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

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

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

Podnikatelům dorazí varování od BSA

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Pinebook: linuxový notebook za 89 dolarů

Pinebook: linuxový notebook za 89 dolarů

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

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

Jak vymáhat výživné zadarmo?

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č?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

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

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

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

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

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

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

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?