Mailová domena na dvou serverech

Sat1

Mailová domena na dvou serverech
« kdy: 22. 07. 2022, 20:56:04 »
Dobrý den, potýkám se s řešením mailového problému, se kterým už si nevím rady a prosím o pomoc. Máme určité množství mailových schránek na doméně, která je v moci polských "kolegů" a i u nich je mailserver. Z nějakých mě neznámých důvodů je požadavek mít ale maily v ČR, takže jsem na mém oblíbeném ISPConfigu spustil getmail a maily stahuji na náš HW. Aź sem vše OK, ale vyvstal požadavek automatických odpovědí bez Outlooku, Thunderbirdu atd. Za normálních okolností to vyřeší Sieve a Roundcube, kde si to uživatelé krásně nastaví, ale zde to nelze. První "problém" bylo SPF, to se již vyřešilo a Poláci přidali naši adresu do domenového záznamu. Další problém bylo, že postfix správně zahazoval maily, které přišly z této domény "example.com" na jinou naši doménu na tomto stroji "example.cz", protože si myslel, že doména example.com je jeho a zdrojový mail neměl ve svém seznamu. Myslím, že je to volba reject_unlisted_sender , to jsem snadno obešel nastavením doménového koše. Vyvstal ale další problém, a zde už trochu šílím, když chci odeslat mail z example.cz na example.com, tak to samozřejmě skončí v tom doménovém koši, protože si to myslí, že ta doména je jeho a tak maily samozřejmě nepředává dál. Toto však nevyřeší ani odstranění doménového koše a odebrání hodnoty reject_unlisted_sender v configu, stále tu doménu bude považovat za svou.... Aby to celé fungovalo alespoň pro stahovaní pošty z Polska, tak se zprávy z 123@example.com stahují do schránky 123@example-cz.com atd. No jsem z toho nešťastný, naštvaný a totálně znechucený, že jsem raději hned neřekl ne a neposlal žadatele .... k šípku. Zase mám tak blbou vlastnost, že jak něco nakousnu, tak nebudu klidně spát, dokud nevymyslím řešení.  ::)


Re:Mailová domena na dvou serverech
« Odpověď #1 kdy: 22. 07. 2022, 21:56:59 »
Ale ISPConfig umí OOF, je pod názvem Autoresponder.

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #2 kdy: 22. 07. 2022, 22:01:52 »
Tady ale není problém s pravidly, ale s tím, jak přesvědčit postvix, že ta doména example.com je i není jeho.

Re:Mailová domena na dvou serverech
« Odpověď #3 kdy: 22. 07. 2022, 22:14:26 »
Tady ale není problém s pravidly, ale s tím, jak přesvědčit postvix, že ta doména example.com je i není jeho.

To, že ta doména patří tomu serveru určuje pouze MX záznam v DNS té domény nic jiného, těch může být samozřejmě více ale pak si to vybírá náhodný server dle priority na který to pošle a tam už je to na jeho konfiguraci samozřejmě., DNSka fungují jako takový jednoduchý loadbalancer.

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #4 kdy: 22. 07. 2022, 22:16:32 »
To není tak úplně pravda, protože tak to tu doménu má nastavnou, tak se vůbec na MX záznam nedívá a rovnou si ji to samo obsluhuje.


Sat1

Re:Mailová domena na dvou serverech
« Odpověď #5 kdy: 22. 07. 2022, 22:21:31 »
Rád bych se vyhnul transport_maps, protože je tam více domén a nemám s tím žádnou zkušenost, takže nevím zda si nepřidělám další problémy.

Re:Mailová domena na dvou serverech
« Odpověď #6 kdy: 22. 07. 2022, 22:28:58 »
Tohle jsem před lety zdědil ve firmě, kde pracuju. Mezitím už tohle uspořádání padlo (organizační změnou) ale dlouhá léta naši doménu obsluhovaly dva SMTP servery ve dvou kancelářích (postfix). Prakticky to znamená, že musíte mít na obou serverech "překladové seznamy" aliasů pro jednotlivé uživatele, konkrétně
Kód: [Vybrat]
virtual_alias_maps = hash:/etc/postfix/virtualkde si překládáte adresy příjemců z "virtuální" domény na fyzická FQDN serverů (resp. domény třetí úrovně) křížem mezi oběma servery. Např.:

Soubor /etc/postfix/virtual na serveru cz.example.com:
Kód: [Vybrat]
vojcek@example.com   vojcek@pl.example.com
venca@example.com   venca
venca@cz.example.com  venca

Soubor /etc/postfix/virtual na serveru pl.example.com:
Kód: [Vybrat]
vojcek@example.com   vojcek
vojcek@pl.example.com   vojcek
venca@example.com   venca@cz.example.com

Na pravé straně vidíte "cílové" adresy. Může se jednat zas jenom o alias, nebo o lokálního uživatele. Co se se zprávou pro lokálního uživatele děje dál, to už záleží na konfiguraci lokálního doručovatele (= další kousek skládačky, na Vašem problému nezávislý).

V tomtéž souboru můžete zařídit "mailing-listy" = jeden alias vlevo lze rozeslat více příjemcům vpravo, můžete vpravo míchat místní a vzdálené příjemce (v rámci jednoho řádku=pravidla).

Tzn. oba servery považují doménu druhé úrovně za "svou", a až na úrovni aliasů pro jednotlivé uživatele si zprávy navzájem rozhazují. V DNS můžete mít primární MX na jeden server a sekundární MX na druhý.

Související drobností k dořešení může být adresa odesilatele v odchozí poště. Pokud poštu píšete v klientovi na nějakém dalším počítači (desktop/noťas apod. prostě mimo samotný server) tak si samozřejmě předepíšete adresu ve "virtuální" doméně druhé úrovně. Pokud byste zprávy psali v klientovi lokálně na serveru (mutt, (al)pine apod.) tak v defaultním nastavení bude v odchozí adrese vidět doména třetí úrovně (resp. FQDN serveru - u nás to bylo totéž). Buď musíte říct klientovi, aby jako odchozí uváděl "virtuální" adresu s doménou druhé úrovně, nebo se to tuším dá pořešit letmo přepisovacím pravidlem v konfiguraci serveru (postfix).

Nemám tohle schéma ze své hlavy, tuším to u nás vytvořil před mým příchodem kvolaa pokud ho někdo znáte :-)

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #7 kdy: 22. 07. 2022, 22:39:41 »
Děkuji, bohužel primární Polský server je mimo mou kontrolu a ani netuším na čem to běží. Navíc na té doméně jsou desítky, možná i stovky jiných schránek, které nikdy nebudu znát. Proto ani nemohu říct našemu postfixu - tahle adresa je tvoje, tahle ne a předej ji jinam. Je to neskutečná prasečina už od samotné myšlenky, ale už jsem se do ní jednou namočil, tak to chci dodělat. Teď je to snadno řešené, že outlooku/thunderbirdu je IMAP na náš server a SMTP se používá Polské, s tím že kopie odeslané pošty se ukládá do odeslané u nás, takže tam lze nastavit automatickou odpověď a vše je růžové. Jenže to chtějí řešit už na straně serveru, bohužel toho našeho a né Polského. Už mě napadá i kacířská myšlenka, že rozběhnu virtuální linux, na něm nahodím thunderbird se všemi schránkami a budu řešit filtry na něm, ale to je prasečina na druhou.

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Mailová domena na dvou serverech
« Odpověď #8 kdy: 22. 07. 2022, 23:25:59 »
Děkuji, bohužel primární Polský server je mimo mou kontrolu a ani netuším na čem to běží. Navíc na té doméně jsou desítky, možná i stovky jiných schránek, které nikdy nebudu znát. Proto ani nemohu říct našemu postfixu - tahle adresa je tvoje, tahle ne a předej ji jinam.

But jste admin nebo user. Nic mezi tim neni.. evidentne nemate kompetence/autoritu delat zmeny, ktere zamyslite, tak proc to resite? Jestli musite, protoze sef rekl.. tak at vam vybavi prava k te vzdalene strane.

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #9 kdy: 22. 07. 2022, 23:49:39 »
OK, zkusím to tedy trochu upřesnit, protože je v tom očividně zmatek.
Je nějaká doména example.com patřící Polské firmě. Česká firma má s tou Polskou nějakou dohodu (naprosto netuším jejich spojitost a vůbec mě to nezajímá) a na této doméně cca 40 schránek. Jediné co máme jsou loginy k těmto schránkám. K doménovým záznamům nemám přístup a k Polskému mailserveru jen IMAP/POP3/SMTP.
Česká firma chce mít data u sebe a né u Poláků - stahuji getmailem maily na náš server, který mám plně v moci já.
Česká firma odesílá maily přes Polský SMTP a ukládá na český server.
----------- KÁMEN ÚRAZU -----------
Česká firma chce využívat automatické odpovědi, tj. český server musí odesílat maily pro doménu example.com (SPF záznam jsem si s Poláky vyřídíl).
Jakmile ale přidám doménu example.com do konfigu českého serveru, tak ji postfix považuje za lokální a odmítá posílat maily do Polských schránek na doméně example.com protože ta doména je jeho a já ho neumím přesvědčit, že je jeho jen částečně.

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #10 kdy: 23. 07. 2022, 00:09:35 »
Ještě mě napadá jedna věc, která to možná celé pošle do kytek - chová se Sieve ke zpráva získaným přes getmail stejně jako k příchozím, nebo getmail rovnou předává dovecotu? Vlastně jsem to nikdy neřešil, jak to getmail dělá, ale to by asi přeskočil i amavist atd, což by bylo nepraktické.

Re:Mailová domena na dvou serverech
« Odpověď #11 kdy: 23. 07. 2022, 02:06:07 »
Zdravím, možná jsem něco přehlédl, ale napadá mě - nemohli by vám Poláci aliasovat všechny maily pro české usery na @cz.example.com a přidat si i takový MX záznam do domény (když už byli schopni přidat SPF)?
Svému Postfixu byste v konfiguraci nastavil, že je jeho jen @cz.example.com a odpadl by tak asi Váš problém... (chápu správně, že pokud se Out of Office posílá někomu zvenku, je vše o.k., ale problém je, pokud se má OoO poslat někomu ze stejné domény, kdo není Čech, ale Polák?)

Cesta mailu by tedy byla cesky_user@example.com -> přijatý na polské smtp -> přeložený na @cz.example.com a doručený na Váš server... V případě OoO by se posílalo na @example.com, což by se v případě "nečecha" doručilo správně (server by to nepovažoval za svoji doménu) a v případě Čecha by to pomocí mapování na @cz.example.com opět propadlo kam má...

Sat1

Re:Mailová domena na dvou serverech
« Odpověď #12 kdy: 23. 07. 2022, 12:20:53 »
Zdravím, možná jsem něco přehlédl, ale napadá mě - nemohli by vám Poláci aliasovat všechny maily pro české usery na @cz.example.com a přidat si i takový MX záznam do domény (když už byli schopni přidat SPF)?
Ono to tak už vcelku je, jen místo redirectu se používá getmail a stahuji si to do virtuální domeny @example-cz.com sám.
Svému Postfixu byste v konfiguraci nastavil, že je jeho jen @cz.example.com a odpadl by tak asi Váš problém... (chápu správně, že pokud se Out of Office posílá někomu zvenku, je vše o.k., ale problém je, pokud se má OoO poslat někomu ze stejné domény, kdo není Čech, ale Polák?)

Cesta mailu by tedy byla cesky_user@example.com -> přijatý na polské smtp -> přeložený na @cz.example.com a doručený na Váš server... V případě OoO by se posílalo na @example.com, což by se v případě "nečecha" doručilo správně (server by to nepovažoval za svoji doménu) a v případě Čecha by to pomocí mapování na @cz.example.com opět propadlo kam má...
Ono je problém i poslat mail z jiné domény na našem serveru na tu domenu example.com, což dělají poměrně často. Rovnou se přiznám, že dnes mám hlavu úplně mimo provoz, ale nějak nechápu jak bych s tímto řešením odesílal mail jako franta@example.com.

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Mailová domena na dvou serverech
« Odpověď #13 kdy: 23. 07. 2022, 12:54:45 »
Koukam ze je to dost problem i popsat..

Tak jinak - mate jednu spolecnou domenu, na ktere jsou dve skupiny uzivatelu (cz/pl), a vedeni CZ odnoze by rado svoje maily mela hostovane na CZ pude.

Podle me tu zmenu budete muset kooperovat s temi PL spravci (kvuli dns) a vymyslet napr. system, kdy se vytvori smtp frontend (staci i jeden ale muzou byt i cz+pl) a pak dva backendy - jeden cz only, jeden s pl only usery. S tim, ze kdyz na frontend prijde mail, tak se podle seznamu useru preposle na patricny backend a tam se pak udelaji vase pravidla, imap, atd.

Taky nejspis budete muset prejit na @cz. + @pl. prefixy pro backendy v tomto reseni, a aliasovat @domena adresy na ty konkretni, podle toho kdo kam patri na frontendu. Pokud pri odesilani/odpovedi neuvedete zemi, tak si holt mail procestuje na frontend, kde se pak rozhodi na spravnou stranu, pro @cz/@pl lze mit nastaven transport rovnou na IP druhe strany.

Ale usery budete muset mit bud v spolecne DB, nebo synchronizovat pri kazde zmene na vsechny 3 ci 4 instance.

Vyhoda do budoucna by byla, ze to lze skalovat na vicero zemi pomerne jednoduse.. tak si to zkuste prosadit :)
« Poslední změna: 23. 07. 2022, 12:56:53 od RDa »

Re:Mailová domena na dvou serverech
« Odpověď #14 kdy: 23. 07. 2022, 19:17:08 »
Tak já to zkusím ještě jednou a jinak - podle toho, co jste mi dovysvětlil. Že de facto jediný MX pro example.com je stroj v polské správě, ať už se jmenuje jakkoli - já mu budu říkat třeba pl.example.com. Pro něj to je "vlastní" doména, ve které si resolvuje uživatelské aliasy.

Podle mého je špatně, že na stroji cz.example.com považujete doménu example.com za lokální. V konfiguraci Postfixu podle mého nejde tolik o
Kód: [Vybrat]
mydomain, jako spíš o její uvedení v
Kód: [Vybrat]
mydestination a snad
Kód: [Vybrat]
virtual_alias_domains . Navrhuji, abyste ji v mydestination ani virtual_alias_domains neuváděl. V mydomain by to vadit nemuselo. Mluvím  example.com - subdomény jako cz.example.com nevadí. A bavíme se stále o doručování emailu, že.

Neznám getmail. Je na něm oproti třeba fetchmailu něco vážně super, kromě toho že je getmail napsaný v pythonu? Pravda je, že neznám vlastníma rukama ani fetchmail :-) ale přijde mi takový tradičnější. Svého času jsem o něm dost četl - to bylo cca v minulém století...
Každopádně když taháte maily fetchmailem/getmailem z uživatelských schránek přes POP3 nebo IMAP, a chcete je předávat lokálnímu SMTP serveru (Postfix) k doručení, tak jste tím průchodem skrz POP/IMAP schránku přišel o původní SMTP obálku každé jednotlivé zprávy. Vy víte, kterou schránku taháte, znáte její login a heslo, ale netušíte, na jakou adresu příjemce ta zpráva původně z divokého internetu přiběhla. Tzn. pro předání lokálnímu SMTP démonovi si fetchmail/getmail musí nějakou adresu příjemce "syntetizovat". Jestli správně čtu dokumentaci, fetchmail standardně použije lokálního uživatele, pod jehož účtem byl spuštěn - tzn. nikoli třeba login do vzdálené schránky, ani se nesnaží extrahovat adresu příjemce z hlavičky v obsahu zprávy (což by nakonec možná taky uměl, ale je to v několika ohledech problematické). Každopádně: tuhle lokální adresu lze nastavit. Konkrétně fetchmail se zřejmě musí spustit (samostatný proces) pro každého uživatele zvlášť. Přeskočím teď téma, odkud a jak fetchmail spouštět. Důležité je, že můžete fetchmailu na příkazovém řádku předat mj. adresu příjemce, se kterou má staženou zprávu předat lokálnímu SMTP démonovi (pokud nechcete provést rovnou lokální doručení, což by snad taky šlo). V manuálu fetchmailu k tomu vidím argumenty
Kód: [Vybrat]
-D <domain>
nebo specifičtější
Kód: [Vybrat]
--smtpname <user@domain> . To pokud by lokální username nevyhovoval. Všimněte si v manuálu zmínky o RCPT TO: - to je konkrétní příkaz v SMTP protokolu, který uvádí adresu příjemce v "obálce" (tzn. to co skrz POP/IMAP neobdržíte).

Jestli příchozí emaily doručovat skrz SMTP nebo rovnou lokáním doručovatelem, a to buď přímo, nebo třeba skrz procmail, to záleží myslím zcela na Vás, na požadovaných vychytávkách a jejich uspořádání=konfiguraci (ještě to lokálně filtrovat proti virům a spamu apod., což lze myslím v Postfixu i třeba v procmailu).

Pokud se týče odesílání, nemusíte hned konfigurovat tvrdého všeobecného smarthosta stylem:
Kód: [Vybrat]
relayhost = pl.example.com
Jednak existuje diferencovanější možnost, opět nikoli pracná, použít explicitní transport pro konkrétní doménu:
/etc/postfix/main.cf :
Kód: [Vybrat]
transport_maps = hash:/etc/postfix/transport/etc/postfix/transport :
Kód: [Vybrat]
# Specifické pravidlo, ukazuje na server do polska:
example.com       smtp:pl.mydomain.com
# Alternativní zápis při doručování na IP adresu, ať už veřejnou nebo privátní:
#example.com       smtp:[192.168.30.40]
# A nakonec ještě "default" = všechno ostatní ať si Postfix doručí podle standardních pravidel = přímo (nepřehlédněte dvojtečku vpravo)
*                       :
Jo a mimochodem stejně jako mapa virtuálních aliasů (/etc/postfix/virtual) i mapa transportů se musí po úpravě zkonvertovat do binárního "hash" formátu, zde příkazem:
Kód: [Vybrat]
postmap transportOsobně mám na tyhle konverze napsaný makefile...

Ale nakonec a především se domnívám, že specifické odesílání už ani řešit nemusíte! Protože Postfix na cz.example.com tímto už doménu example.com nepovažuje za "svoji" (mydestination), prostě zprávy komukoli @ example.com doručí standardním způsobem, tj. podle MX záznamu v DNS!