Sendmail

Josef Cacek, xcacek@fi.muni.cz


Obsah


Sendmail

Nejroz���en�j��m Mail Transfer Agentem (MTA) v Internetu je bezesporu program sendmail. Je to velice variabiln� program, poskytuj�c� bohat� mo�nosti konfigurace. P�i doru�ov�n� po�ty dok�e vyvol�vat i dal�� programy, d�ky �emu� jej lze pou��t pro vytvo�en� po�tovn� br�ny do jin�ho p�enosov�ho syst�mu (nap�. UUCP). Nejnov�j�� verze je
Sendmail 8.11.1.

/etc/sendmail.cf

Program samotn� lze naj�t v adres��i /usr/lib. ��d� se konfigura�n�m souborem /etc/sendmail.cf Zn�m� moudrost pr� ��k� "Pokud jste nikdy neupravovali sendmail.cf, nejste skute�n� spr�vce Linuxu. Jestl��e jste to d�lali v�c ne� jednou, jste bl�zen!" (Kniha Sendmail, kter� se zab�v� pouze sendmailem m� cca 800 stran.)

Jedn� se o textov� soubor, slo�en� z jednotliv�ch p��kaz�, z nich� ka�d� je na samostatn� ��dce. Pr�zdn� ��dky a ��dky za��naj�c� # se ignoruj�. V�t�ina akc� je definov�na prost�ednictv�m jedno- a� dvoup�smenn�ch zkratek.

P��kaz je definov�n prvn�m p�smenem na ��dku. Nejv�t�� ��st souboru tvo�� p�episovac� pravidla, kter� zahajuje p�smeno R. Tyto p��kazy umo��uj� upravovat adresy a rozhodovat, co se m� s dopisem st�t. Maj� formu:

R<Lev� strana>TAB<Prav� strana>TAB<Koment��>

Pravidlo se pou�ije, jen kdy� adresa vyhovuje <Lev� stran�>, pak <Prav� strana> ur�uje co se m� s dopisem ud�lat. M��e nap�. pouze zm�nit adresu,ale m��e tak� ukon�it zpracov�n� dopisu a p�edat ho n�jak�mu Maileru k odesl�n�. Mailery se definuj� p��kazy M.

Kl��ovou roli v konfiguraci hraje, kdy dojde k pou�it� jednotliv�ch pravidel - k ur�en� slou�� rozd�len� do sad. Ka�d� sada je identifikov�na ��slem a za��n� p��kazem S��slo. Kon�� bu� za��tkem dal�� sady nebo koncem souboru. Sada je jak�msi podprogramem, je-li pou�ita na zpracov�vanou adresu, za�nou se aplikovat jej� jednotliv� p��kazy (p�episovac� pravidla). Ka�d� se pou��v� tak dlouho, dokud zpracov�van� adresa vyhovuje lev� stran�. Realizace prav� strany m��e zp�sobit vyvol�n� dal�� sady pravidel, kdy� obsahuje konstrukci $>��slo.

Cel� zpracov�n� dopisu za��n� n�kolika standardn�mi sadami. Sendmail nejprve zpracov�v� c�lovou adresu. Na n� se pou�ije sada �. 3, kter� p�evede adresu do kanonick�ho tvaru. Pot� se uplatn� sada 0, kter� m� ur�it doru�ovatele dopisu (tato sada b�v� m�n�na nej�ast�ji, proto�e stanov� kudy a kam dopis odejde).

Standardn� sady pravidel pro sendmail:

Sada Ur�en�
0    ur�en� doru�ovatele
1    zpracov�n� adresy odesilatele
2    zpracov�n� adresy p��jemce
3    kanonizace adresy
4    z�v�re�n� �prava adresy
5    zpracov�n� odesilatele v hlavi�k�ch dopisu (jen IDA)
6    zpracov�n� adres�ta v hlavi�k�ch dopisu (jen IDA)
P��klad p�episovac�ho pravidla sendmailu:
R$+@$D    $#ether$@netware.fi.muni.cz$:$1@netware.$D

IDA sendmail

IDA je roz���en� programu sendmail, usnad�uj�c� konfiguraci. Z�kladn�m p��nosem je zde rozlo�en� informac� do n�kolika soubor� s jednoduchou strukturou. Za tento "komfort" zaplat�me omezen�m mo�nost�, ale v�t�inou p��pad� vy�e��me bezprobl�mov�.

V�choz� podoba konfigura�n�ch soubor� je textov�, ta je kompilov�na do bin�rn�. Z�kladem je soubor zpracovan� procesorem m4. B�v� pojmenov�n [po��ta�].m4. Obsahuje definice hodnt jednotliv�ch parametr� (prom�nn�ch), ovliv�uj�c�ch �innost programu. Tento soubor se m�n� jen z��dka. V�t�ina zm�n se t�k� d�l��ch soubor� (tabulek). ��dn� �pravy se neprov�d� v souboru sendmail.cf.


Z�kladn� konfigura�n� soubor

A�koliv m�me velk� sortiment prom�nn�ch, kter� ovliv�uj� chov�n� IDA sendmailu, hlavn� konfigura�n� soubor b�v� jednoduch�. Standardn� se po��t� s podporou lok�ln� po�ty a protokol� SMTP a UUCP (pop�. DECNET)

Prvn� skupina prom�nn�ch slou�� k identifikaci zdej��ho po��ta�e:
DEFAULT_HOST a DEFAULT_DOMAIN - uv�d�j� jm�no a dom�nu po��ta�e. V norm�ln�ch p��padech se nedefinuj� program je schopen si p��slu�n� informace naj�t s�m.
PSEUDONYMS - uv�d� dal�� jm�na tohoto po��ta�e nap�.:
  define(PSEUDONYMS,posta.fi.muni.cz mail.fi.muni.cz localhost)
ALTERNATENAMES - podobn� prom�nn� PSEUDONYMS, ale jm�na zde uveden� nejsou jm�ny tohoto po��ta�e, ale po��ta�� pro kter� se po�ta ukl�d� na n� po��ta�
UUCPNAME - jm�no zdej��ho po��ta�e pro UUCP po�tu (kdy� nepou��v�me, nemus�me definovat)

Dal�� typ prom�nn�ch stanov�, kde budou ulo�eny jednotliv� konfigura�n� tabulky:
MAILERTABLE - Mailery pro jednotliv� adresy
PATHTABLE - Neobvykl� cesty
GENERICFROM - p�episov�n� adres odesilatel�

M��eme tak� vyu��t mo�nosti obstar�vat po�tu pro dom�nu na jednom po��ta�i (mail relay) pak se n�m hod� tyto prom�nn�:
HIDDENDOMAIN - jm�no dom�ny pro kterou ve kter� chceme maskovat po��ta�e HIDDENDOMAINHOST - ud�v� jak�m jm�nem m� b�t nahrazen libovoln� po��ta� dom�ny, nen�-li definov�no, pak se pou�ije p��mo hodnota HIDDENDOMAIN
HIDDENNET, HIDDENNETHOST - stejn� jen ne pro celou dom�nu, ale pouze pro skupinu po��ta�� (uvedenou v HIDDENNET)
Ukr�van� jm�no by m�lo b�t registrov�no v DNS (minim�ln� by m�l existovat MX z�znam?

Dal�� prom�nn�:
RELAY_HOST, RELAY_MAILER - adresa a p��slu�n� Mailer, kam se pos�l� po�ta se kterou si sendmail neporad�
ALIASES - jm�no souboru, obsahuj�c� definici alias�
POSTMASTERBOUNCE - adresa, na kterou se doru�� kopie ka�d�ho dopisu, jeho� doru�ov�n� skon�ilo chybou
LOADQUEUE - ud�v� zat��en� syst�mu, p�i kter�m sendmail p�est�v� doru�ovat dopisy a m�sto toho je jen �ad� do fronty (implicitn� 11)
LOADAVEREJ - zat��en� p�i kter�m sendmail odm�t� vn�j�� pokusy o nav�z�n� spojen� (implicitn� 7)
FORCE_NAME - definuje se p�i pou��v�n� DNS (norm�ln� stav), na hodnot� nez�le��.

Posledn�m p��kazem souboru by v�dy m�lo b�t:
include(Sendmail.mc)
co� zajist� vytvo�en� souboru sendmail.cf

Po zpracov�n� konfigura�n�ho souboru programem m4, dostaneme na std v�stup sendmail.cf.


Konfigura�n� tabulky

Tyto tabulky (zvan� DBM datab�ze) jsou z�kladn�m kamenem IDA sendmailu. Jejich c�lem je p�evod kl��e na hodnotu. Maj� jednotn� tvar:
<hodnota> <kl��> [<kl��> ...]
Z textov� podoby do bin�rn� jsou p�ev�d�ny programem dbm.

Jm�na soubor� jsou definov�na v hlavn�m konfigura�n�m souboru. Uv�d�j� se bez p��pony nap�. /etc/mail/mailertable. Ve skute�nosti v�ak v dan�m adres��i existuj� dva soubory s p��ponami .dir a .pag. Vytvo��me je pomoc� p��kazu:
dbm -d mailertable make mailertable.conf
P�edpokl�d�me, �e zdrojov� text je v souboru mailertable.conf. Volba -d ��k�, kter� datab�ze se m� vytvo�it.

MAILERTABLE ��d� zpracov�n� po�ty, ur�uje, kter�m Mailerem a kam se p�ed�vaj� ur�it� dopisy. P�i implicitn�m chov�n� IDA sendmailu, je-li po�ta ur�ena na tento po��ta�, p�ed� se Maileru local. Pro ostatn� adresy se pou�ije Mailer TCP (dotaz na MX z�znam a odesl�n� protokolem SMTP). Pomoc� MAILERTABLE lze do tohoto mechanizmu p�id�vat roz���en� a vyj�mky. Kl��em je v tomto souboru dom�nov� jm�no, hodnota je tvo�ena trojic�:
<Mailer><odd�lova�><po��ta�>


<Mailer>  Funkce
 local    -ulo�� do schr�nky lok�ln�ho u�ivatele
 prog     -spust� program a dopis mu po�le na vstup
 TCP      -doru�� protokolem SMTP
 UUCP     -doru�� klasick�m UUCP
 UUCP-A   -doru�� protokolem UUCP, ale pou��v� RFC822 adresy
 error    -ohl�s� odesilateli dopisu chybu

<odd�lova�> V�znam ; - adresa beze zm�ny ! - z adresy se od��zne dom�na (pro UUCP a local) : - z adresy se od��zne dom�na, jen pokud ve zbyl� ��sti z�stane n�jaka dom�na

<po��ta�> specifikuje na kter� stroj m� Mailer odeslat dopis.

PATHTABLE slou�� pro ru�n� sm�rov�n� po�ty. Definuje cesty, kter�mi maj� b�t d�le dopravov�ny dopisy. Zpravidla se pou��v� jen ve spojen� s UUCP.

DOMAINTABLE p�ev�d� p��padn� zkratky a p�ezd�vky na dom�nov� jm�na. Jestli�e IDA sendmail dostane ke zpracov�n� dom�nov� jm�no, pod�v� se nejprve do DOMAINTABLE a pot� do DNS, zda se nejedn� o p�ezd�vku. Pokud ano, ��d� se d�l jen kanonick�m jm�nem.

UUCPXTABLESlou�� k p�evodu dom�nov�ch jmen po��ta�� na jm�na protokolu UUCP.

GENERICFROM obsahuje pravidla pro p�episov�n� adres odesilatel� v dopisech. Umo��uje zam�n�n� dom�ny a jm�na u�ivatele za jm�na symbolick� (nap� pnovak@anxur.fi.muni.cz za Pavel.Novak@muni.cz). P�ezd�vky (aliasy) funguj� obousm�rn�, o p�evod na konkr�tn� adresu se star� soubor ALIASES. �dr�ba dvou sobor� je pr�ce nav�c a tak IDA sendmail obsahuje i program xalparse, kter� umo��uje z jednoho datov�ho souboru automaticky vyrobit oba zmi�ovan�.


Aliasy

Standardn� sendmail pou��v� pro definici p�ezd�vek soubor aliases (v�t�inou v /etc), IDA zav�d� roz�i�uj�c� soubor (zpravidla xaliases). Ten je p�edlo�en programu xalparse, kter� z n�ho vytvo�� jednak klasick� aliases, jednak tabulku GENERICFROM.

Soubor xaliases m� tvar ��dku:
<p�ezd�vka>: <odd�lova�><adresa>
Na obou stran�ch mohou st�t seznamy, odd�len� ��rkami

<odd�lova�> V�znam
  >         - dopis sm�rovan� na <p�ezd�vku> poslat na <adresu>;
              (vytvo�� polo�ku v aliases)
  <         - adresu v hlavi�ce From nahradit <p�ezd�vkou>;
              (vytvo�� polo�ku v GENERICFROM)
  <>        - oboje
 chyb�      - jako >
Na vytvo�en� soubor xaliases je t�eba pou��t program xalparse:
xalparse xaliases aliases genericfrom
Aby se sendmail za�al ��dit nov�m /etc/aliases je pot�eba spustit newaliases.