next up previous contents
Další: RFC související s poštou Vzhůru: Sendmail Předchozí: Ochrana proti spamu

Příklady konfigurací

Sendmail v RedHat 5.0

Sendmail v RedHat 5.0 je dodáván s konfiguračním souborem vytvořeným pomocí šablony

divert(-1)
include(`../m4/cf.m4')
define(`confDEF_USER_ID',``8:12'')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
HACK(check_mail3,`hash -a@JUNK /etc/mail/deny')
HACK(use_ip,`/etc/mail/ip_allow')
HACK(use_names,`/etc/mail/name_allow')
HACK(use_relayto,`/etc/mail/relay_allow')
HACK(check_rcpt4)
HACK(check_relay3)

Chcete-li tuto konfiguraci měnit, je třeba nainstalovat balík pro konfiguraci sendmailu sendmail-cf-8.8.7-12.i386.rpm nebo novější. Soubory z tohoto balíku budou umístěny v adresáři /usr/lib/sendmail-cf. Konfigurace už obsahuje antispamová a antirelayová pravidla z http://www.informatik.uni-kiel.de/~ca/email/. V souboru /etc/sendmail.cw se uvedou všechny domény, pro které bude váš stroj přijímat poštu (na každém řádku jedna doména); v další kapitole je popsáno, jak doplnit maškarádu stroje.

Databáze /etc/mail/deny.db slouží k ochraně proti spamu. Obsahuje položky dvou druhů. Jednak celé e-mailové adresy a směrové části adres (tj. část napravo od znaku zavináč), které, pokud se objeví v adrese odesilatele v obálce, způsobí odmítnutí dopisu. A za druhé IP adresy strojů nebo sítí, od kterých bude váš počítač odmítat SMTP spojení. Databáze se vyrobí z textového souboru /etc/mail/deny, který obsahuje řádky

mrp.cz "550 We do not receive mail from spammer domains"
friend@public.com "550 You are a known spammer"
193.220.16 "No access for you"
193.220.17 "No access for you"

příkazem

makemap hash /etc/mail/deny < /etc/mail/deny

Ochrana proti relayingu se konfiguruje pomocí souborů /etc/mail/*_allow. Jejich obsah vychází z konfigurace uzlu a případně uzlů, pro které zajišťujete příjem nebo odesílání pošty. To jsou záležitosti, které se příliš často nemění, a proto jsou použity obyčejné textové soubory, a nikoli databáze. Každý ze souborů obsahuje vždy po jednom jménu nebo IP adrese na řádku.

Soubor /etc/mail/ip_allow obsahuje IP adresy strojů a sítí, které mohou přes váš stroj posílat poštu komukoli, aniž by to bylo odmítáno jako nepovolený relaying. Stejný význam má soubor /etc/mail/name_allow, který ovšem obsahuje doménová jména strojů a domén. V obou případech se jedná o stroje, které se připojují k vašemu počítači jako SMTP klienti.

Pokud je dopis přebírán od stroje, který není uveden ani v /etc/mail/ip_allow ani v /etc/mail/name_allow, sendmail odmítne jako nepovolený relaying ty příjemce v obálce, jejichž směrová část adresy není uvedena v /etc/mail/relay_allow nebo není poddoménou některého ze jmen uvedených v tomto souboru.

Maškaráda stroje (domény)

Počítač přijímá a odesílá poštu pro jinou směrovou adresu (doménu) než je jeho jméno. Konfigurace jsou uvedeny pro IDA sendmail a pro obyčejný sendmail verze 8.8.x.

IDA

# Pro přicházející poštu:
define(PSEUDONYMS, domena.cz)dnl
# Pro odcházející poštu:
define(MAILNAME, domena.cz)dnl

V8.8

# Pro odcházející poštu:
MASQUERADE_AS(domena.cz)dnl
FEATURE(masquerade_envelope)dnl
# Pro přicházející poštu - použít na konci souboru .mc:
Cw domena.cz

V obou případech musí MX záznam s nejnižší prioritou pro domena.top ukazovat na stroj, který má poštu pro domena.top přijímat.

Místo Cw domena.cz lze použít

FEATURE(always_add_domain)
FEATURE(use_cw_file)

a domény, pro které počítač přijímá poštu, vyjmenovat v souboru /etc/sendmail.cw jako u příkladu z RedHat 5.0.

Stroj připojený přes dial-up linku, firewall, UUCP

MX záznam s nejnižší prioritou pro stroj dial.org.cz, který nemá trvalé připojení do Internetu, ukazuje na relay.provider.cz, což je relay, firewall či počítač, přes který dial.org.cz příjímá a posílá poštu z/do Internetu.

IDA; počítač relay.provider.cz:

define(USEAIFNOMX)dnl
define(MAILERTABLE, /etc/mail/mailertable)dnl

Zdrojový text databáze mailertable obsahuje řádek

TCP,dial.org.cz         dial.org.cz

případně pokud počítač dial.org.cz má přijímat poštu pro doménu domena.cz

TCP,dial.org.cz         domena.cz

V tomto druhém případě se na dial.org.cz musí udělat maškaráda pro doménu domena.cz.

IDA; počítač dial.org.cz:

define(ISOLATED_DOMAINS, domena.cz dial.org.cz)dnl
define(RELAY_HOST, relay.provider.cz)dnl
define(RELAY_MAILER, TCP)dnl
define(VALIDATION_DOMAINS, domena.cz dial.org.cz)dnl

Řádek obsahující Odb je nutné změnit na Odd (pokud ze souboru Sendmail.mc vytváříte konfigurační soubor pro jediný počítač, pak raději přímo v tomto souboru, než ve vygenerovaném /etc/sendmail.cf, kde se na to snadno zapomene). Dále viz opatření pro sendmail V8.8 (soubory /etc/hosts, /etc/nsswitch.conf a skript pro zajištění výměny pošty s připojovatelem).

V8.8; počítač relay.provider.cz:

define(`confTRY_NULL_MX_LIST', True)dnl
FEATURE(mailertable)

Databáze mailertable.db se vyrobí ze zdrojového souboru

domena.cz               smtp:[dial.org.cz]

příkazem

makemap hash /etc/mailertable.db < /etc/mailertable

V8.8; počítač dial.org.cz:

define(`SMART_HOST', `smtp:[relay.provider.cz]')dnl
FEATURE(nocanonify)dnl
define(`confDELIVERY_MODE', defer')dnl

Všechny zmíněné volby umožňují, aby počítač mohl pracovat i bez DNS. První stanovuje, že veškerá nelokální pošta má být zaslána mailerem smtp na počítač relay.provider.cz. Hranaté závorky kolem jména počítače zamezují DNS lookupu. Počítač musí být uveden v souboru /etc/hosts takto:

192.168.0.5     relay.provider.cz relay

a v souboru /etc/nsswitch.conf musí být v řádku hosts: uvedeno dns až na posledním místě nebo vůbec ne.

Řádek FEATURE(nocanonify) zajistí, že sendmail se nebude pokoušet převádět pomocí DNS jména domén a strojů na kanonická.

Poslední řádek define(`confDELIVERY_MODE', defer') způsobí, že při příjmu dopisu bude dopis pro nelokální příjemce ihned uložen do fronty a doručován až při průchodu frontou (ten se provádí periodicky, například každých 30 minut -- podle parametru -q30m zadaného při startu sendmailu, nebo při spuštění příkazu /usr/lib/sendmail -q).

Je žádoucí zajistit, aby při navázání dial-up spojení s připojovatelem byla vyměněna pošta oběma směry. To lze zajistit například skriptem

#!/bin/sh
telnet relay.provider.cz 25 < __EOF__
EHLO dial.org.cz
ETRN domena.cz
QUIT
__EOF__
/usr/lib/sendmail -q

Pokud není použita maškaráda domény, bude v příkazu ETRN parametr dial.org.cz.


next up previous contents
Další: RFC související s poštou Vzhůru: Sendmail Předchozí: Ochrana proti spamu

Petr Kolář <Petr.Kolar@vslib.cz>