Jak a proč přepisovat adresy odesílatelů
11.8.2011 00:00 | Radim Kolář | přečteno 8019×
Po provozování sekundárního mail serveru a nastavování relay, což jsme probírali v minulých dílech, je přepisování adres další aktivitou se kterou se denodenně při administraci sendmailu setkáváte.
Adresy se přepisují z nejrůznějších důvodů: při provozování virtuálních serverů, při přepisu intranet adres na internetové, přepisování adres aby vypadaly hezky a při transparentním přeposílání pošty. Nejčastějším důvodem k přepisu adres je přepis z intranetu na internet.
Sendmail umí zpracovávat pro přenost přes SMTP dva druhy adres - lokální adresy a doménové adresy. Doménová adresa se vyznačuje tím, že obsahuje @ se jménem cílové domény napriklad: maly@jarda.cz kdežto lokální adresa bude jen jarda. Jelikož při přepisování přepisujeme jak lokální tak doménovou část tak je dobré sendmail nastavit tak, aby vždy používal doménovou adresu pokud ji odesílací program automaticky nedoplní. Toto doplnovani se zapne pomoci
FEATURE(`always_add_domain')
Sendmail standardně přepisuje jen adresy v SMTP obálce, nikoliv unitř mailu. To má za následek, že mail sice dojde na místo určení správně ale když jej otevřeme v poštovním programu tak uvidíme původní adresy odesilatele v Reply-To a From. To nejenže uživatele mate protože neví od koho mu to vlastně přišlo, ale i mu to znemožňuje odpovídat na naše zprávy protože od něj na ně email není možné poslat. Pokud chceme přepisovat i hlavičky tak zadáme
FEATURE(`masquerade_envelope')
Poslední důležitou věcí je mít správně nastavené hostname. Nemyslím tím jen aby bylo uvedené v local-host-names ale aby obsahovalo hostname i doménu. Sendmail sice problémy s hostname bez domény nemá, ale knihovna z bindu co obsluhuje resolver ano a sendmail pak vrací že toto jméno neexistuje i když je uvedeno v /etc/hosts. Pokud žádnou doménu nemáte tak výrazně doporučuji používat doménu localdomain namísto domény providera.
hsn@ubuntu10:/etc/mail$ hostname ubuntu10.localdomain
Toto je nejjednoduší případ přepisu. Máme server s intranetovou adresou @ubuntu10 a chceme adresu odesílatele nastavit pro všechny uživatele na @example.com. Intranetové uživatele budeme mapovat na internetové 1:1. Toto mapování budeme používat v případě když vlastníme nějakou internetovou doménu.
Dá se udělat několika způsoby - my si vybereme ten nejsnadnější.
MASQUERADE_DOMAIN(`ubuntu10.localdomain') MASQUERADE_AS(`example.com')
Je to opravdu tak jednoduché. Žádné speciální FEATURE není nutné.
Dalším důvodem pro přepis adres je aby adresa vypadala hezky. Kdyz posíláme emaily ze serveru tak obsahují nejen jméno domény, ale i serveru. Toto omezeni se obvykle netýká grafických poštovních programů - ty standardně umožňují uživateli si adresu odesílatele nastavit jak je libo. Chceme aby odcházející emaily měly jako odesílatele místo nehezkého kuba@srv1.domena.cz hezčí kuba@domena.cz. Použijeme opět naše známé 1:1 mapování
MASQUERADE_DOMAIN(`srv1.domena.cz') MASQUERADE_AS(`domena.cz')
Posledním příkladem, který si dnes ukážeme, bude selektivní přepisování odesílatelů. Používá se v případě, že svůj domácí server připojíme do internetu a nevlastníme žádnou doménu, ale jen emailová konta. Tento způsob přepisování je tedy běžný u domácích serverů s ADSL, případně mobilním internetem.
V tomto konkrétním případě chceme k vybraným lokálním uživatelům přiřadit vzdálené emailové schránky tak aby pošta jimi odesílaná do internetu vypadala jako že byla odeslána z jejich vzdálených schránek. Příchozí poštu z těchto schránek budeme pak stahovat běžným poštovním programem který podporuje protokol IMAP nebo postarší a již dnes nedoporučovaný POP3. Můžeme stahovat třeba Thunderbirdem, fetchmailem nebo imapsync.
FEATURE(`genericstable') GENERICS_DOMAIN(`ubuntu10.localdomain')
mapa odesílatelů je uložena v /etc/mail/genericstable a vypadá následovně:
root maly@jarda.cz pavel pavel@maly.cz