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.
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.
# Pro přicházející poštu: define(PSEUDONYMS, domena.cz)dnl # Pro odcházející poštu: define(MAILNAME, domena.cz)dnl
# 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.
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.
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
.
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).
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
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
.
Petr Kolář <Petr.Kolar@vslib.cz>