Smerovani posty pouze pro nektere uzivatele.

Rehor Petr petr.rehor na decros.cz
Pondělí Duben 23 19:25:04 CEST 2001


Bacha, je to dlouhy.

> Ano, mate pravdu, exchange se nehlasi ke sve vlastni IP adrese.
> Kdyz do virtusertable zadam
> @mojedomena.cz    %1@[192.168.1.1]

...

> a poslu mail na user na mojedomena.cz, tak se zprava presmeruje 
> na user@[192.168.1.1] Potud je to OK. Jenze Exchange, trebaze
> ma IP adresu 192.168.1.1 a spravne nadefinovaneho uzivatele
> user vubec nepozna, ze je cilovym pocitacem! Proste si mysli,
> ze domena [192.168.1.1] neni jeho vlastni a posle zpravu zpet
> na smarthosta, tedy na linux.
> Jakmile ale zadam do seznamu e-mailovych adres uzivatele user 
> dalsi e-mailovou adresu ve tvaru user@[192.168.1.1], Exchange
> zpravu bez problemu prijme. Zdalo by se, ze to je v pohode, ze
> akorat vsem uzivatelum pridam alias, kde jako jmeno domeny bude
> figurovat [192.168.1.1]
> Jenze tech uzivatelu je jednak pomerne dost, a hlavne by se 
> toto vsechno muselo udelat i u vsech dalsich aliasu vsech
> uzivatelu!
> Takze jestli uzivatel tonda ma aliasy Tonda.Petricek a tpetricek
> a petricek, tak by se tam musely vlozit dalsi aliasy s domenou
> [192.168.1.1].
> No, a to uz je prace na dlouhe zimni vecery. A je jedno jestli
> je tam IP nebo nazev stroje, protoze kdyz do virtusertable dam
> polozku  @mojedomena.cz %1 na exchange.mojedomena.cz
> a stroj exchange.mojedomena.cz je spravne zaveden v DNS, tak 
> to Exchange zase nechce prijmout, protoze nezna uzivatele
> user na exchange.mojedomena.cz ale pouze user na mojedomena.cz
>
> A pritom kdyz jsem zkousel poslat zpravu na sendmail ve tvaru 
> uzivatel@[ip-linuxu], tak sendmail poznal, ze ip-linuxu je jeho
> vlastni ip a mail normalne dorucil. Tak nevim, bud mam neco blbe
> na exchange nastavene nebo se ma MS jeste mnoho ucit.

K reseni vaseho problemu (uz jsem to jednou posilal, ale zkusim
vysvetlit v cem je zakopany pes) je treba pochopit jak pracuje
sendmail a Exchange server a jaky je rozdil mezi virtusertable
a mailertable.

Sendmail je server-centricky - akceptuje maily pro IP adresy
a jmena vsech interfejsu plus jmena, ktere jsou pridany do
local-host-names (drive sendmail.cw). Tato jmena jsou spolecna
pro vsechny lokalni uzivatele. Muzete tedy posilat maily na
jakekoliv jmeno nebo IP adresu stroje. Zase neni uplne trivialni
udelat virtualni hosting, kdy muze nastat pripad, ze ve dvou
ruznych domenach jsou uzivatele se stejnym jmenem.

Exchange server je naopak uzivatel-centricky - ma pro kazdeho
uzivatele samostatny seznam mailovych adres. Jak je u MS zvykem,
ma Exchange server mizene nastroje pro jejich spravu. Centralne
umi spravovat pouze defaultni adresy (ty ktere jsou pouzity pro
odesilane zpravy), ktere lze hromadne zmenit. Bohuzel nelze
(standardnimi nastroji) pridat vsem uzivatelum dalsi mailovou
adresu. Nejsnazsi cesta je vyexportovat uzivatele do CSV souboru,
perlem nebo necim podobnym s timto souborem neco udelat a pak ho
zase naimportovat zpatky (a modlit se aby to dobre dopadlo ;-)

Virtusertable se pouziva pro prepis mailove adresy prijemce, ktera
je v obalce mailu. Z toho plyne, ze pokud pouzijete virtusertable
pro presmerovani mailu pro celou domenu, prepisete mailovou adresu
prijemce v obalce a pak nechate sendmail aby se rozhodl jak tuto
zpravu doruci. Cilovy mailserver proto musi akceptovat prepsane
mailove adresy (ve vasem pripade adresu uzivatel@[IP.IP.IP.IP]),
coz neni problem pro sendmail, ale je to nesnadny ukol pro Exchange
server, ve kterem musite udrzovat pro kazdeho uzivatele dve mailove
adresy.

Mailertable se pouziva pro vynuceni smerovani veskere posty pro
vybrane domeny - tedy nepouziji se informace, ktere jsou DNS.
Pri teto operaci se nemeni adresa prijemce uvedena v obalce,
ale natvrdo se urci jakym zpusobem (mailerem) a kteremu pocitaci
se mail preda. Cilovemu mailserveru jsou predany maily s puvodnimi
adresami v obalce - a to je presne ten zpusob ktery vyhovuje
Exchange serveru. Mailertable samozrejme funguje pouze pro
nelokalni maily.

ZAVER: Pokud chcete sendmail pouzivat jako mail relay pro vasi
domenu, nedavejte jeji jmeno domeny do local-host-names (takze
bude lokalne dorucovat pouze maily pouze ve tvaru
uzivatel na host.domena.cz), nakonfigurujte si mailertable aby maily
pro vasi domenu byly presmerovany na Exchange server pomoci jeho
IP adresy nebo jmena, ktere si date do /etc/hosts (protoze v
externim DNS obvykle zaznamy pro interni pocitace nebyvaji).
V Exchange serveru si udelate pro kazdeho uzivatele jednu mailovou
adresu ve tvaru uzivatel na domena.cz.

Pokud potrebujete v ramci vasi domeny delat nejake presmerovani
a zda se vam, ze prostredky sendmailu jsou uzasnejsi nez v Exchange
serveru (tam muzete pouzit aliasy uzivatelu, distribucni seznamy
a externi uzivatele), tak muzete pouzit virtusertable, jenom musite
v sendmail.mc rizct, ze chcete aby se i pro domena.cz virtusertable
pouzil.

-----

Prakticky (maximalisticky) priklad:

sendmail.mc:

	FEATURE(`mailertable')dnl
	FEATURE(`virtusertable')dnl
	FEATURE(`virtuser_entire_domain')dnl
	VIRTUSER_DOMAIN(`domain.cz')dnl

mailertable:

	domain.cz				esmtp:[192.168.1.1]
	extraburty.domain.cz		esmtp:[192.168.1.2]

virtusertable:

	root na domain.cz			administrator na domain.cz
	hostmaster na domain.cz		administrator na domain.cz
	postmaster na domain.cz		administrator na domain.cz
	mailer-daemon na domain.cz		administrator na domain.cz
	achjo na domain.cz			achne na extraburty.domain.cz

-----

No a takhle se to da udelat minimalisticky (jmeno domeny nesmi
byt v local-host-names):

sendmail.mc:

  LOCAL_NET_CONFIG
  R$*<@$m.>$*		 $: $>95 < [192.168.1.1] > $1 < @ $m. > $2
  R$*<@extraburty.$m.>$* $: $>95 < [192.168.1.2] > $1 < @ $m. > $2

> No nic, dekuji vsem za ochotu pomoci mi pri reseni tohoto 
> zapekliteho problemu a musim konstatovat, ze toto uz neni
> problem sendmailu, ale Exchange, takze do teto konference uz
> to asi nepatri.
> Zacinaji se asi vyplnovat slova pana Lukese, ktery rika, ze 
> kdyz "zavadime Exchange, tak si ani nic jineho nez problemy
> nezaslouzime" :-)

Jak rika jeden muj kolega, staci sundat si rukavice :-)

Reseni je v podstate velmi jednoduche, staci do nej vlozit
trochu vlastniho potu a sadla a prijit na to jak celej ten
kram funguje.

Petr Rehor

---------------------------------------------------------------------
DECROS s.r.o.          J.S.Baara 40, Ceske Budejovice, Czech Republic
Tel: +420-38-7312808   Fax: +420-38-7311480      http://www.decros.cz


Další informace o konferenci Sendmail