|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
bootable [55]
commercial [7] no-commercial [42] unclassified [20] [7]
Software (10844)
|
Sendmail - úplné základyPodíváme se společně na MTA sendmail. Popíšeme si jeho kompilaci a podíváme se na způsob jakým se pomocí m4 makrojazyka konfiguruje.
SendmailProgram Sendmail je opravdová legenda. Je to nejstarší MTA (Mail Transport Agent), který je používán dodnes. Byl napsán v roce 1983 a dlouho byl jediným programem pro posílání pošty. Vzhledem ke své neuvěřitelné flexibilitě konfigurace podporoval snad všechny otevřené mail protokoly. Byl používán pro SMTP, ESMTP, UUCP, HylaFax, DECnet, QuickPage . Historie sendmailu je hezky popsána na wikipedii. Sendmail je sice dodnes nejpoužívanější MTA, ale je postupně vytlačován programy Postfix, Exim, Microsoft Exchange a Qmail.
Nejčastěji je sendmail nahrazován programem postfix a častým důvodem pro nahrazování je údajná špatná bezpečnost sendmailu. Není to tak docela pravda, Secunia report pro Postfix 2 2003-2011 ukazuje 4 zranitelnosti stejně jako Secunia report pro Sendmail 8. Musíme však přiznat, že nalezené bezpečnostní problémy v sendmailu byly závažnější. Druhým důvodem pro nahrazování sendmailu je jeho obtížnější konfigurace. To je pravda a navíc situaci poměrně komplikuje nedostatek detailních návodů na internetu. Většina návodů pro sendmail, které najdete, je poměrně povrchní a ne vždy správná. Doporučuji si sehnat dvě výborné knížky o Sendmailu: sendmail cookbook a sendmail, Fourth Edition. Kompilace SendmailuSendmail musíme mít přeložený s podporou pro SASL2, STARTTLS a případně LDAP. Dnes už povětšinou sendmail kompilovat nemusíme, protože to za nás již udělali distributoři. Volby s kterými byl náš sendmail přeložen si zobrazíme pomocí sendmail -d0,1 -bv root. Pokud chcete postup jak přeložit sendmail z oficiálních zdrojáků, tak mi to napište do diskuze. FreeBSDVe FreeBSD je sendmail obsažen v základním systému, ale bez voleb LDAP a SASL2. Pokud chceme sendmail s těmito volbama máme dvě možnosti: nainstalovat si port mail/sendmail-ldap nebo si přeložit znovu sendmail co je v základním systému. Já preferuji druhou volbu. Nejdřív musíme nainstalovat sasl2 a ldap knihovny cd /usr/ports/security/cyrus-sasl2 make install clean cd /usr/ports/net/openldap24-sasl-client make install clean Do /etc/make.conf přidáme
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2 -DLDAPMAP SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2 -lldap -llber a pak přeložíme a nainstalujeme nový sendmail, kterým přepíše stávající. Pokud bychom instalovali sendmail z portu tak budeme mít v systému sendmaily dva, což zvyšuje pravděpodobnost chyby tím, že některý z email programů zavolá starý sendmail. cd /usr/src/lib/libsmutil # make cleandir depend && make # cd ../libsm # make cleandir depend && make # cd /usr/src/usr.sbin/sendmail # make cleandir depend && make && make install UbuntuV Ubuntu máme situaci o poznání jednoduší. Nemusíme totiž ručně nic kompilovat. Stačí nám nainstalovat balíček sendmail včetně závislostí a získáme sendmail s podporou OpenLDAP 2.4, OpenSSL a SASL2.
Sendmail není oficiálně podporován společností Canonical. M4 KonfiguraceKonfugurační soubory sendmailu se nachází tradičně v adresáři /etc/mail. Snad všechny existující distribuce toto dodržují. V tomto adresáři najdete .mc .cf a .db soubory. Soubory .cf a .db jsou generovány. Sendmail se konfiguruje především pomocí makrojazyka M4. Na soubor s koncovkou .mc spustíme m4 preprocesor, který nám vygeneruje finální konfigurační soubor sendmail.cf. Makrojazyk M4 se používá ve všech osmičkových a možná i starších verzích sendmailu. S jinou než osmičkovou řadou se za posledních 20 let nepotkáme, osmičková řada vznikla forkem z 4.4 BSD v roce 1993. Přímá editace konfiguračního souboru sendmail.cf se vzhledem ke své relativně dost velké složitosti nedoporučuje. Je lepší si vytvořit svá .m4 makra a ty pak volat z .mc souboru. Také se to snadněji udržuje a aktualizace konfigurace na novou verzi sendmailu je pak jednoduší. V dnešních distribucích se již nemusíme o volání m4 preprocesoru starat. Distributor nám připravil Makefile, který po editaci konfiguračních souborů sendmailu zařídí vše potřebné a spustí jednak m4 preprocesor i vytvoří databázové hashtabulky ze vstupních textových souborů. UbuntuV Ubuntu je situace jednoduchá. Poeditujeme co je libo a v /etc/mail spustíme příkaz make, který spustí docela sofistikovaný Makefile, protože kromě aktualizace konfiguračních souborů vypíše i změněné soubory a upozorní nás abychom nezapomněli spustit /etc/init.d/sendmail reload. FreeBSDVe FreeBSD máme situaci o trochu složitější. Pokud v /etc/mail spustíme make tak dojde sice k vytvoření hash databází a konfiguračního souboru ale konfigurační soubor nebude nainstalován a proto bude v platnosti pořád stará konfigurace. K nainstalování nové konfigurace musíme zadat make install a restartovat sendmail pomocí make restart nebo /etc/rc.d/sendmail restart. Nově vytvořené hash databáze ale budou aktivní, netřeba je instalovat a restartovat sendmail. Základy M4 makrojazykaKonfigurační .mc soubor sendmailu obvykle začíná příkazem divert(-1) a poté následuje copyright. Vše co následuje po divert(-1) se nezkopíruje do výstupního souboru protože m4 má 10 front číslovaných 0-9. Tyto fronty jsou pak vzestupně seřazeny ve výstupním proudu. Vypnutí výstupu ale neznamená že jsou další m4 příkazy ignorovány - můžeme dále definovat a používat makra, bude jen potlačen jejich případný tiskový výstup. Po copyrightu který může být v libovolném formátu, který není zároveň příkazem m4 pak následuje divert(0), což vypne ignorování výstupu a jedeme již naostro. Komentáře se v m4 makrojazyku označují zkratkou dnl a končí koncem řádku včetně ukončovacího znaku řádku - obvykle CR. Pokud chceme zabránit aby po příkazech makrojazyka m4 se přidala do výstupního souboru prázdná řádka tak příkaz ukončíme komentářem: divert(-1) Sendmail je nejflexibilnejsi MTA co znam divert(0)dnl Prázné řádky ve výstupním souboru ve většině případů nevadí a tak končit příkazy makrojazyka komentářem není dnes již bezpodmínečně nutné, ačkoliv to stále budete velmi často vídávat v různých návodech. Nejčastějším příkazem m4 který budeme potřebovat je příkaz define kterým definujeme m4 makra. Sice si s ním můžeme definovat jakákoliv makra a pak je používat v následujících řádkách konfigurace, ale tato možnost se v praxi používá naprosto minimálně. My budeme definovat jen makra předem známých jmen jejichž existence je pak testována hlavním m4 skriptem pro vytváření konfigurace. Prvním argumentem příkazu define je jméno makra, druhým je obsah makra. Jelikož m4 umí vytvářet makro v makru, což v našem případě není žádoucí chování je potřeba říci m4 aby jméno a obsah makra vzal tak jak je a nezpracovával ho. Tohoto docílíme umístěním řetězce do `' (obrácená uvozovka a normální uvozovka). define(`confCW_FILE', `-o /etc/mail/local-host-names') Je potřeba zvolit v terminálu vhodný font v kterém můžeme snadno tyto dvě uvozovky od sebe odlišit. Pokud je použijeme špatně tak m4 nezobrazí žádnou chybovou hlášku, ale vygenerovaný konfigurační soubor bude chybný. Tato chyba v konfiguraci se navíc špatně hledá. Pokud nechceme generovat sendmail.cf pomocí připraveného makefile ale ručně tak toho dosáhneme takto: /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 \ sendmail.mc > sendmail.cf Příklad na spuštění m4 předpokládá že máme sendmail konfigurační makra umístěná v adresáři /usr/share/sendmail/cf. Tento adresář používá pro uložení konfigurace jak FreeBSD tak Ubuntu.
Related article
Provozujeme linuxový server (1) - hardware I Provozujeme linuxový server (2) - server housing Provozujeme linuxový server (3) - volba distribuce I Provozujeme linuxový server (4) - volba distribuce II Provozujeme linuxový server (5) - výběr filesystému Provozujeme linuxový server (6) - rozdělení disku, kvóty Provozujeme linuxový server (7) - hardware II Provozujeme linuxový server (8) - hardware III Munin - monitorování serverů Lighttpd - lehký webserver XMail - mailserver k pohledání Jemný úvod do monitorování výkonu pevných disků a diskových polí Sendmail - základní konfigurace Sendmail - Jak na záložní mailserver Sendmail - přepisování odesílatele Previous Show category (serial) Next
|
Szukanie oprogramowania
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |