Self hosted E-Mail több domain egy IP-n és email szerver költöztetés.

Sziasztok!

Van egy saját mail szerverem (évek óta) amin fut több domain (pontosabban 4 domain) weboldala is (mind családon belüli, nem vagyok szolgáltató és nem is tervezem). Most jött a kérés, hogy ezeknek a domain-eknek kellene saját levelezést csinálni. A domain regisztrátornál ugyan beállítottam mindent amit az elsődleges mail szerveren is be kellett (az MX-Toolbox szerint jól), de értelemszerűen a reverse nem megy, mivel egy ip-hez egy reverse bejegyzést enged a hostért felelős VPS beállítani. Itt el is hasal az egész, email-t küldeni nem lehet. Szeretnék mind a 4 domainnek (igaz, most csak 3 kell, de ha már belekezdek...) saját email lehetőséget beállítani, mi a módja ennek?

A másik kérdés, hogyan költöztessem át ezt az egészet egy másik szerverre úgy, hogy az eddigi levelezés megmaradjon? Az eddigi rendszer debian 10 volt (egyetlen domain levelezésével), de ezt is szeretném egyúttal frissíteni úgy, hogy a régi szerverről csak a leveleket szeretném átmásolni, a konfig teljesen új lenne a régi alapján (tehát maradna ugyan minden, postfix, postgresql, dovecot, stb...) csak az alaprendszer változna alatta.

Hozzászólások

1 IP-hez csak egy reverse dns bejegyzés (PTR rekord) tartozhat.
A mail szervered hostneve pl mail.valami.hu, akkor a fix IP címed reverse dns-e mail.valami.hu legyen.

Viszont egy servernek simán lehet több A vagy CNAME rekordja (de CNAME itt nem játszik, az EHLO paramétere A rekord kell legyen). Annak idején amikor az SMTP-ről szóló RFC-ket olvasgattam, annyi előírás volt, hogy PTR rekordnak kell lennie, az nem volt benne, hogy a PTR rekornak meg kell egyeznie az A rekorddal (pláne nem az összessel). Nem is nagyon lehetne, egy mail szerver kezelhet (és sok esetben kezel is) több mail domaint.

Egy mail szervernek 1 hosztneve van, mindegy hány domaint levelezését kezeli. Amikor kiküld egy levelet a fogadó mail szerver ellenőrzi a IP címének a PTR rekordját, aminek egyeznie kell a hosztnévvel.

Példa:

telnet mail.t-online.hu 25
Trying 84.2.44.3...
Connected to mail.t-online.hu.
Escape character is '^]'.
220 mail00k.mail.t-online.hu ESMTP You must authenticate before sending mail

Azaz a hosztneve: mail00k.mail.t-online.hu, ami 84.2.44.3.
Az 84.2.44.3 PTR rekordja pedig mail00k.mail.t-online.hu

Azaz ez így korrekt.

Igen, ez a korrekt. (bár természetesen egy mail servernek lehet több hostneve) Viszont ha nem egyezik a PTR és az A, az nem ok arra, hogy a fogadó eldobja a mailt. Azzal együtt sem, hogy vannak így beállított serverek. A megkötés csak annyi, hogy az ehlo hostnév esetén a hostnév A rekordjának léteznie kell, és arra a hostra kell mutasson, amelyik adta az ehlo-t. Ezen kívül még szokás (bár RFC-ben nem találtam meg), hogy léteznie kell PTR rekordnak, azonban ha a PTR rekord tartalma más, mint az ehlo-ban adott hostnév, az nem indok az eldobásra.

Igen, ez érthető. Azonban mivel az e-mail server a külvilággal kommunikál, az meg nem azt nézi, hogy mi a postfix configod, hanem azt, hogy egyrészt mit mond magáról (ez jó esetben a myhostname az ehlo után), és azt veti össze az IP-hez rendelt domain névvel/nevekkel. Tehát mindkettő lényeges.

Újra leírod ugyan azt, amire fentebb kaptál egy olyan választ, hogy olyan nem lehet.

Egy hosztnak egy neve lehet. Nincs olyan, hogy egy hosztnak több neve van. Az, hogy több A rekord is arra az IP-re mutat, attól nem a hosztnak lesz több neve, hanem több néven lehet megszólítani a nagyvilágból. Ez levelező szerver esetén pont nem hasznos, hanem rossz. Pl. webszervernél jó az ilyesmi (több A rekord ugyan arra az IP-re).

Az egy nagyon rossz beidegződés, hogy minden valami.hu-hoz tartozik egy mail.valami.hu is, és az az MX tartalma, meg az SMTP/IMAP szerver neve. A jó módszer, hogy a valami.hu tartomány MX rekordjában az mailszerver.szolgaltato.hu név van, ez a mail szerver neve, az ilyen nevű A rekord erre a mail szerverre mutat és az IP címének a PTR-re ezt a nevet adja vissza, valamint a mail szerver HELO-nál ezen a néven mutatkozik be. Ezt a többszörös egyezést minden levelező szerver ellenőrzni, és kiszórja azokat, akik nem teljesítik..

Egy tartomány levelező szerverének a neve (akár a küldő, akár a fogadó szerverről beszélünk - ez ugye két tök független szolgáltatás, csak sokszor egy szerver csinálja) semmilyen összefüggésben nem kell legyen az adott tartománnyal. A levelező szervernek nem kötelezően kell A rekord a kiszolgált tartományban (csak akkor, ha abból a tartományból való a szerver hosztneve).

A hosting szolgáltatóknál hívják valahogy a levelező szervert, és minden általa kiszolgált tartományon ez a név van felvéve MX rekordba, és ezt a nevet állítják be az ügyfelek küldő/mailbox szervernek.

Pedig nem nehéz. Kéred a szolgáltatót, hogy állítson be egy reverse dns-t... És felveszi, az IP előző tulajdonosának nevét meg ott hagyja... (Mert ugye azt nem mondtad...)

Vagy amikor pingelsz egy hostot, és a reply-oknál az ip mellett váltogatja a hostnevet, az is az.

"Sose a gép a hülye."

Valóban, az RFC nem köti ki, hogy csak egy PTR lehet egy adott IP címre, viszont a gyakorlatban a levelező szerverek egy választ várnak. A DNS szerver random sorrendben adja vissz a válaszokat, a levelező szerver az elsővel dolgozik. Ha épp stimmel, akkor jó, ha épp nem stimmel, valószínű eldobja a kapcsolatot név nem egyezés miatt.

Tapasztalat, nem csak így gondolom.

Van egy saját mail szerverem (évek óta) amin fut több domain (pontosabban 4 domain) weboldala is (mind családon belüli, nem vagyok szolgáltató és nem is tervezem). Most jött a kérés, hogy ezeknek a domain-eknek kellene saját levelezést csinálni. A domain regisztrátornál ugyan beállítottam mindent amit az elsődleges mail szerveren is be kellett (az MX-Toolbox szerint jól), de értelemszerűen a reverse nem megy, mivel egy ip-hez egy reverse bejegyzést enged a hostért felelős VPS beállítani. Itt el is hasal az egész, email-t küldeni nem lehet. Szeretnék mind a 4 domainnek (igaz, most csak 3 kell, de ha már belekezdek...) saját email lehetőséget beállítani, mi a módja ennek?

Csinálsz egy darab mailservert, valamelyik domain alatt, pl mail.domain1.hu, az IP címhez tarozó reverse ezt adja vissza, és minden domainnek ez lesz az MX-e. Nem baj, hogy a domain2.hu nevében a mail.domain1.hu levelezik, az teljesen valid.

A másik kérdés, hogyan költöztessem át ezt az egészet egy másik szerverre úgy, hogy az eddigi levelezés megmaradjon? Az eddigi rendszer debian 10 volt (egyetlen domain levelezésével), de ezt is szeretném egyúttal frissíteni úgy, hogy a régi szerverről csak a leveleket szeretném átmásolni, a konfig teljesen új lenne a régi alapján (tehát maradna ugyan minden, postfix, postgresql, dovecot, stb...) csak az alaprendszer változna alatta.

Hát, akkor úgy, hogy a régiből lemented a leveleket, az újon megcsinálod a konfigot, és a megfelelő helyre visszahelyezed a leveleket :) 

Annyit tennék még hozzá, hogy az SMTP szerveren a hostnév is ugyanaz legyen amit majd az SMTP kapcsolat létrejöttekor mond magáról a szerver. A fenti példában ez a mail.domain1.hu

 

Tehát például:

domain1.hu MX mail.domain1.hu

mail.domain1.hu A 1.2.3.4

1.2.3.4 PTR mail.domain1.hu

domain1.hu TXT "v=spf1 mx -all"

 

domain2.hu MX mail.domain1.hu

domain2.hu TXT "v=spf1 mx -all"

 

Postfix esetén /etc/postfix/main.cf fájlban:

myhostname = mail.domain1.hu

 

A kapcsolódó TLS certben is mail.domain1.hu legyen a domain.

Ezek szerint az MX rekord nincs bevonva a reverse DNS alapú szűrésbe? Elképzelhető, rég néztem utoljára. Én arra szoktam ügyelni, hogy a szerver domain neve az egyezzen azzal amit reverse DNS-re visszakapunk, azzal ami az SMTP elején van, azzal ami a TLS certben van és azzal ami az MX rekordban van. Lehet ettől el lehet térni itt-ott, kérdés érdemes e. A t-online.de pl nem vesz át levelet ha nincs rendben a rDNS.

Nincs semmilyen mx rekord rDNS ellenőrzés. A küldő szerver IP címének reverse DNS-e kell hogy megegyezzen a küldő szerver hosztnevével (ez postfix esetén a myhostname-ben van megadva.) A t-online.de is bizonyára ezt ellenőrzi.

A fogadó szervert nem érdekli a Te MX-ed, neki az a fontos hogy meggyőzödjön arról, hogy megfelelő forrásból (IP címról) érkezik a bejövő email. A sok ellenőrzés egyike a fenti.

Hát, ennek a "jobban néz ki"-nek általában felesleges szívás a következménye annál, akinek ezt üzemeltetni kell...

Mert ugye így a mail.domain2.hu IN A 1.2.3.4 (mint a mail.domain1.hu), és akkor mikor keresi az ember, hogy ki is a domain2 levelző szervere, csak kiköt pár felesleges dig/host/nslookup kör után a mail.domain1.hu hosznál. Magát az MX nevet csak a szerverek látják, ergo tök mindegy mi van beleírva, "jobban néz-e ki". De aki a DNS-t kezeli, annak óriási segítség, hogy látja, az MX-ben lévő levelező szerver valójába nem abban a domain-ben üzemel, hanem másikban...

Egyszerűbben: sokkal könnyebb egyeten néven hívni a mail szervert és mindenhol azt a nevét használni, nem extra A, "kamus" rekordokat.

Vagyis a mailszerver neve (ezazénmailszerverem.valami.hu)   és az általa kezelt cimeknek(domaineknek) között nincs kapcsolat. Bármilyen mailszerver kezelhet bármilyen levelezést, nem kell közös név. És mivel egy mailszervernek egy neve van, ezért lehet/kell  csak  egy ip cimet megadnod. Másképp fogalmazva az ip cimet nem egy tartománynak(valami.hu)  adod, hanem egy konkrét gépnek: ezazénmailszerverem.valami.hu)

Arra figyelj, hogy ha in-place upgrade lesz a Debian 10-en, akkor először 11-re menj, ne kapásból 12-re mert össze fog borulni.

Át akarom költöztetni egy másik szolgáltatóhoz ezen meg maradna a nextcloud egyelőre. Aztán a nextcloudot itthon tárolnám és megszüntetném ezt a vps-t. Az ok csak annyi, hogy openvz-ről kerülne kvm-re több memóriával és tárhellyel ugyanannyi pénzért.

„Niemand ist unnütz! Man kann immer noch als schlechtes Beispiel dienen!”

dzsolt

Boldog új évet mindenkinek!
 

Köszönöm az eddigi segítségeket, most megy tovább a konfigurálás, mert eddig (a terveimben ellentétben) nem foglalkoztam vele!

A DNS bejegyzéseket megcsináltam, most van A, AAAA, MX és TXT bejegyzés a második domain-hez. Az MX a korábbi mail.domain.1-re mutat, a TXT ez alapján: https://hup.hu/comment/3004350#comment-3004350 keigészítve az IP címekkel és azok nélkül is volt már.
Fogadni lehet az új email címen a leveleket, csak küldeni nem tudok, ez a hibajelentés a claws mail kliensből:
 

2024-01-01 09:29:04] SMTP< 450 4.7.1 Client host rejected: cannot find your reverse hostname, [IPV6 cím]
** hiba az SMTP folyamat közben
*** Hiba történt az üzenet küldése közben:
450 4.7.1 Client host rejected: cannot find your reverse hostname, [IPV6 cím]

Az első domainre van rDNS bejegyzés IP4 és IP6 címre is. Merre keresgéljek tovább?

„Niemand ist unnütz! Man kann immer noch als schlechtes Beispiel dienen!”

dzsolt

* 'user@domain.2' fiók: Kapcsolódás az SMTP szerverhez: smtp.domain.1:25...
[2024-01-01 12:41:08] SMTP< 220 mail.domain.1 ESMTP Postfix (Debian/GNU)
[2024-01-01 12:41:08] ESMTP> EHLO saturn
[2024-01-01 12:41:08] ESMTP< 250-mail.domain.1
[2024-01-01 12:41:08] ESMTP< 250-PIPELINING
[2024-01-01 12:41:08] ESMTP< 250-SIZE 52428800
[2024-01-01 12:41:08] ESMTP< 250-VRFY
[2024-01-01 12:41:08] ESMTP< 250-ETRN
[2024-01-01 12:41:08] ESMTP< 250-STARTTLS
[2024-01-01 12:41:08] ESMTP< 250-ENHANCEDSTATUSCODES
[2024-01-01 12:41:08] ESMTP< 250-8BITMIME
[2024-01-01 12:41:08] ESMTP< 250-DSN
[2024-01-01 12:41:08] ESMTP< 250-SMTPUTF8
[2024-01-01 12:41:08] ESMTP< 250 CHUNKING
[2024-01-01 12:41:08] ESMTP> STARTTLS
[2024-01-01 12:41:08] ESMTP< 220 2.0.0 Ready to start TLS
[2024-01-01 12:41:08] ESMTP> EHLO saturn
[2024-01-01 12:41:08] ESMTP< 250-mail.domain.1
[2024-01-01 12:41:08] ESMTP< 250-PIPELINING
[2024-01-01 12:41:08] ESMTP< 250-SIZE 52428800
[2024-01-01 12:41:08] ESMTP< 250-VRFY
[2024-01-01 12:41:08] ESMTP< 250-ETRN
[2024-01-01 12:41:08] ESMTP< 250-AUTH PLAIN
[2024-01-01 12:41:08] ESMTP< 250-ENHANCEDSTATUSCODES
[2024-01-01 12:41:08] ESMTP< 250-8BITMIME
[2024-01-01 12:41:08] ESMTP< 250-DSN
[2024-01-01 12:41:08] ESMTP< 250-SMTPUTF8
[2024-01-01 12:41:08] ESMTP< 250 CHUNKING
[2024-01-01 12:41:08] ESMTP> MAIL FROM:<user@domain.2> SIZE=729
[2024-01-01 12:41:09] SMTP< 250 2.1.0 Ok
[2024-01-01 12:41:09] SMTP> RCPT TO:<user@domain.1>
[2024-01-01 12:41:09] SMTP< 450 4.7.1 Client host rejected: cannot find your reverse hostname, [IPv6 cím]
** hiba az SMTP folyamat közben
*** Hiba történt az üzenet küldése közben:
450 4.7.1 Client host rejected: cannot find your reverse hostname, [IPv6 cím]
[2024-01-01 12:41:09] IMAP> 381 SELECT Queue 
[2024-01-01 12:41:09] IMAP< * OK [CLOSED] Previous mailbox closed. 
[2024-01-01 12:41:09] IMAP< * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) 
[2024-01-01 12:41:09] IMAP< * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. 
[2024-01-01 12:41:09] IMAP< * 1 EXISTS 
[2024-01-01 12:41:09] IMAP< * 0 RECENT 
[2024-01-01 12:41:09] IMAP< * OK [UIDVALIDITY 1702513005] UIDs valid 
[2024-01-01 12:41:09] IMAP< * OK [UIDNEXT 7] Predicted next UID 
[2024-01-01 12:41:09] IMAP< 381 OK [READ-WRITE] Select completed (0.001 + 0.000 secs). 
[2024-01-01 12:41:09] IMAP> 382 UID STORE 6 +FLAGS.SILENT (\Deleted) 
[2024-01-01 12:41:09] IMAP< 382 OK Store completed (0.001 + 0.000 secs). 
[2024-01-01 12:41:09] IMAP> 383 EXPUNGE 
[2024-01-01 12:41:09] IMAP< * 1 EXPUNGE 
[2024-01-01 12:41:09] IMAP< 383 OK Expunge completed (0.001 + 0.000 secs). 
[2024-01-01 12:41:09] IMAP- [fetching UIDs...]
[2024-01-01 12:41:09] IMAP> 384 UID FETCH 1:* (UID) 
[2024-01-01 12:41:09] IMAP< [data - 46 bytes]
[2024-01-01 12:41:10] IMAP> 284 NOOP 
[2024-01-01 12:41:10] IMAP< 284 OK NOOP completed (0.001 + 0.000 secs). 
[2024-01-01 12:41:10] IMAP> 267 NOOP 
[2024-01-01 12:41:10] IMAP< 267 OK NOOP completed (0.001 + 0.000 secs). 

Ez a napló a ClawsMail kliensből.

„Niemand ist unnütz! Man kann immer noch als schlechtes Beispiel dienen!”

dzsolt

Ohh, bakker :D
gondolom amíg a dns bejegyzésekkel kínlódtam addig valahogyan kivettem az smtp auth elől a pipát a levelezőben (vagy sose volt ott, ki tudja már...) és ezért nem. Most már elküldte, működik!

Köszönöm a segítséget, a „pánikban” nem vettem észre a logban semmit ami segített volna! Másrészről sosem gondoltam, hogy egynél több domain levelezését kell valaha beállítanom így az ismereteim hiányosak. Na nem is ebből fogom a kenyérre valót megkeresni, de azért ismételten tanultam valamit és elraktározom ezt az ismeretet is a többihez, hogy legközelebb ne kellejen kérdeznem! Még egyszer köszönöm!!!

„Niemand ist unnütz! Man kann immer noch als schlechtes Beispiel dienen!”

dzsolt

> ezt is szeretném egyúttal frissíteni úgy, hogy a régi szerverről csak a leveleket szeretném átmásolni

imapsync nevű program nekem jó szolgálatot tett