Stáhneme si zdrojové texty sendmail-8.12.1
tar -xzvf sendmail-8.12.1.tgz
přepneme se do adresáře sendmail
cd sendmail-8.12.1/sendmail
Za povšimnutí rozhodně stojí, že se automaticky rozhodlo o jaký systém se jedná. U mne
./Build
/root/sendmail-8.12.1/obj.Linux.2.4.2-2.i686/sendmail
Přepneme se do adresáře cf, kde jsou předpřipraveny soubory, pomocí kterých vytvoříme základní konfigurační soubor.
cd ..; cd cf/cf
Vybereme soubor, který je nejbližší našemu operačnímu systému. V našem případě je to generic-linux.mc
, který nakopírujeme do sendmail.mc, tedy
cp generic-linux.mc sendmail.mc
Teď budeme upravovat soubor sendmail.mc. Tento soubor je alfa a omega celé instalace. V něm se nastavují všechny možnosti sendmailu. Rozhodně není na škodu si přečíst README v adresáři cf, ve kterém jsou všechny možnosti detailně popsány.
FEATURE(`blacklist_recipients')dnl umožnuje zavedení anti-spam listu v access db MASQUERADE_AS(`lab.fi.muni.cz') veškerá odchozí pošta bude neco@lab.fi.muni.cz FEATURE(`masquerade_envelope') maškarádovat můžeme i obálku define(`LOCAL_RELAY', `hostname') pro jména bez @hostname tu mame RELAY define(`MAIL_HUB', `pc2.lab.fi.muni.cz') xpavlic4@pc2.lab.fi.muni.cz pošleme na pc2 pokud jsou poslední dvě definovány, pak je to FEATURE(`stickyhost') root, xpavlic4 bude poslán na LOCAL_RELAY, zbytek aisa define(`SMART_HOST', `aisa.fi.muni.cz') aplikuje se na gates@microsoft.com Příklad: jsme na stroji mastodon.CS.Berkeley.EDU a je zapnuto FEATURE(`stickyhost') email sent to.... eric eric@mastodon.CS.Berkeley.EDU LOCAL_RELAY set to mail.CS.Berkeley.EDU (delivered locally) mail.CS.Berkeley.EDU (no local aliasing) (aliasing done) MAIL_HUB set to mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU (aliasing done) (aliasing done) Both LOCAL_RELAY and mail.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU MAIL_HUB set as above (no local aliasing) (aliasing done)A proti spammerům:
Relaying je vypnut defaultne. Muzeme zapnout pomocí FEATURE(`promiscuous_relay'). FEATURE(`dnsbl') blacklist založený na DNS, nutnost registrace na http://mail-abuse.org
Nakonec vygenerujeme soubor sendmail.cf
$ pwd /root/sendmail-8.12.1/cf/cf $ ./Build sendmail.mc
Po konečné fázi upravení bysme měli udělat nějaké symbolické linky v adřesářích /etc/rc.d/nekde, což je ale velice pracné a navíc bysme museli napsat ještě skript pro /etc/init.d/sendmail. Tady zjistíme, že instalovat ze zdrojovych souboru je pro normalní smrtelníky nesmysl a proto vše smažeme a nainstalujeme rpm balicky sendmail-xxx.rpm a sendmail-cf-xxx.rpm.
Balíček sendmail-X.X.X.rpm nainstaluje samotnou binárku /usr/lib/sendmail, manuálove stránky, a obecný konfigurační soubor. Balíček sendmail-cf-X.X.X.rpm nainstaluje do adresáře /usr/share/sendmail-cf různé konfigurační soubory, které můžeme použít při detailnější konfiguraci.
rpm -ql sendmail | more
rpm -ql sendmail-cf |more
Jak to pracuje?
Konfigurační soubor sendmail.cf
Celý sendmail se řídí podle souboru /etc/mail/sendmail.cf. Jeho editace je jen pro skutečné hardcore linuxáky. Celý soubor 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
M Definuje agenta pro doruceni posty /procmail, /bin/sh D Definuje makro R Přepisovací pravidlo O Definice nastavení H Definice hlavičky P Priorita
0 * Parsing 1 * Sender rewriting 2 * Recipient rewriting 3 * Canonicalization 4 * Post cleanup 5 * Local address rewrite (after aliasing)