Instalace (v příkladě je použita verze sendmail-8.12.2)
se skládá z několika částí: nastavení kompilace, kompilace, nastavení sendmailu
a instalace souborů (viz soubor ./INSTALL
v rozbaleném adresáři
sendmailu)
Nastavení kompilace
se provádí tak, že se v adresáři ./devtools/Site
vytvoří soubor
site.config.m4
a do něj se zadají jednotlivé parametry kompilace,
které chceme změnit od defaultních hodnot. Více k této problematice lze najít
v ./devtools/Site/README
a ./devtools/README
Pozn.: Jediný parametr, který jsem musel změnit, aby mi úspěšně proběhla
kompilace bylo umístění man stránek.
Kompilace
se provede příkazem "sh Build
" v rozbaleném adresáři sendmailu
Nastavení sendmailu
je realizováno souborem /etc/mail/sendmail.cf
(dříve v
/etc/sendmail.cf
). Struktura tohoto souboru je však poměně složitá
a proto se k vytvoření tohoto souboru používá sada maker pro makroprocesor
m4.
V mém případě jsem vytvořil soubor ./cf/cf/sendmail.mc
s požadovaným
nastavením a v adresáři ./cf/cf
jsem provedl příkaz "sh
Build sendmail.cf
", který vytvoří sendmail.cf
příslušný
souboru senmail.mc
a příkaz "sh Build install-cf
" provede umístění souboru sendmail.cf
do adresáře /etc/mail
.
Příklad souboru sendmail.mc:
divert(-1)
# priklad sendmail.mc
divert(0)
VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp
$')
OSTYPE(linux)
DOMAIN(generic)
MASQUERADE_AS(`lab.fi.muni.cz')
FEATURE(masquerade_entire_domain)
FEATURE(relay_entire_domain)
MAILER(local)
MAILER(smtp)
příkaz divert se používá k odstranění přebytečného textu (část mezi divert(-1)
a divert(0) bude ignorována).
řádky začínající znakem # jsou komentáře.
VERSIONID je nepovinné makro určující verzi konfigurace.
OSTYPE slouží k určení operačního systému - nastaví inkludování spravných
nastavení pro daný systém.
DOMAIN určuje v jaké doméně pobeží náš server - hodnota generic by měla
být dostačující.
MASQURADE_AS říká, aby se náš server tvářil jako že je server uvedený v
parametru - to znamená, že u odchozí pošty bude přepisovat adresy FROM z lokálních
adres na adresu zadanou tímto parametrem (kromě roota).
makro FEATURE slouží k nastavování něktrerých dalších parametrů mailserveru.
makra MAILER(local) a MAILER(smtp) jsou vpodstatě povinná a neměla by být
měněna a musí být na konci souboru.
více k této problematice lze najít v ./cf/README
Celý sendmail.cf je de facto formální automat se sadou pravidel,
podle kterých se řídí. V souboru můžeme nalézt například přepisovací pravidla:
R$+@$+ $:$1<@$2> focus on domain
R$+<$+@$+> $1$2<@$3> moce gaze right
Další možnosti příkazu:
M Definuje agenta pro doruceni posty
D Definuje makro
R Přepisovací pravidlo
O Definice nastavení
H Definice hlavičky
P Priorita
Jak se zpracovává posta:
0 * Parsing
1 * Sender rewriting
2 * Recipient rewriting
3 * Canonicalization
4 * Post cleanup
5 * Local address rewrite (after aliasing)
Dalším souborem nezbytným pro správnou funkci sendmailu je /etc/mail/local-host-names
kde jsou uvedeny adresy počítačů, která má brát sendmail jako lokální -
tzn. pokud na server přijde pošta s cílovou adresou na kěkterý z uvedených
strojů, tak se uloží do lokálního mailboxu.
/etc/mail/aliases slouží k definování lokálních aliasů. Jeho řádky mají
tvar
alias: adresa1, adresa2, ..
přičemž adresaN může být jakákoli i nelokální adresa, příkaz nebo soubor
Aby sendmail mohl pracovat se souborem aliases, musí se tento soubor
převést do databázového tvaru - to zajistí příkaz "newaliases
", který ze souboru /etc/mail/aliases
vytvoří databázový
/etc/mail/aliases.db
Uživatel si může svojí poštu přesměrovat pomocí souboru .forward
ve svém
domovském adresáři - na jednotlivých řádcích tohoto souboru jsou uvedeny adresy,
příkazy (začinají znakem |) nebo soubory, do kterých se má jeho pošta přesměrovat.
Záverečná instalace
Před finální instalací je nutno vytvořit uživatele smmsp a nastavit přístupová
práva jak je popsáno v ./sendmail/SECURITY
Instalace se provede příkazem "sh Build install
" v rozbaleném
adresáři sendmailu .
Spuštění sendmailu
se typicky provádí přikazem "/usr/sbin/sendmail -bd -q1h
".
Parametr -bd říká, aby sendmail bězěl jako démon a parametr -q určuje,
jak často má kotrolovat svoji frontu - v tomto případe každou hodinu
Pokud chceme (např. po pádu) vylít frontu sendmailu, provedeme příkaz
"/usr/sbin/sendmail -q"
Výpisy sendmailu můžeme sledovat v souboru /var/log/maillog
Ochrana pred spammem
se může provést např. tím, že v souboru sendmail.mc zavedeme pravidlo FEATURE(`dnsbl'),
což má za následek ignorování mailserverů z blacklistu mail-abuse.org ..
je nutno se zaregistrovat.
Relaying je defaultně vypnut - k jeho nastavení můžeme použít makra v sendmail.mc
např.: F EATURE(`relay_entire_domain') ,FEATURE(`relay_based_on_MX') , FEATURE(`relay_local_from'),
FEATURE(`relay_mail_from') nebo FEATURE(`access_db') , které zavádí kontrolu
přístupu k našemu mailserveru pomocí souboru /etc/mail/access, apod. (viz
dokumentace v ./cf/README sekce ANTI-SPAM CONFIGURATION CONTROL )