Puncte:3

Cum se configurează setările DNS cu un domeniu la mijloc pentru DKIM și SPF?

drapel us

Lucrez la un instrument care îi ajută pe utilizatori să trimită e-mailuri. Intenționez să folosesc un MTA (Mail Transfer Agent) în back-end, cum ar fi AWS-SES sau Sendgrid etc. Pentru ca e-mailurile să ajungă cu succes în căsuțele de recepție cu rețete, utilizatorii vor trebui să configureze DKIM/SPF prin configurarea DNS-ului. setările domeniilor lor respective.

Acum, dacă iau SES de exemplu, le știu am un API care îmi permite pentru a adăuga o „identitate” și a prelua toate înregistrările DNS necesare pentru aceasta folosind API-ul. Sunt sigur că Sendgrid și alte MTA au API-uri similare care permit adăugarea de identități și returnarea înregistrărilor DNS pentru ca utilizatorul să le aplice.

Îi arăt utilizatorului setările DKIM DNS returnate și le adaugă furnizorului lor de DNS, iar după aceea, atunci când trimit e-mailuri, rețetele le primesc corect (fără chestii „via amazonses.com” în anteturi)

Acum, de dragul unui exemplu - să presupunem că instrumentul pe care îl construiesc este găzduit pe chillybilly.xyz și unul dintre utilizatorii care folosește instrumentul meu, are un domeniu numit frankthetank.xyz pe care doresc să-l folosească pentru a trimite e-mailuri prin platforma mea .

Când utilizatorul încearcă să își verifice domeniul prin platforma mea, voi accesa acel API menționat mai sus în AWS SES - și voi arăta ceva de genul acesta utilizatorului:

introduceți descrierea imaginii aici

După care pot adăuga aceste înregistrări CNAMES și TXT pentru DKIM/SPF de succes și pot începe să trimită e-mailuri. Dar dacă te uiți cu atenție, ei pot vedea că folosesc SES din cauza valorilor acelor înregistrări CNAMES și TXT. Și asta este ceva ce vreau să evit, în schimb vreau să le numesc așa ceva 7nuk24xywyawocu6ctqjxmjasiaiq3vq.dkim.chillybilly.xyz care ar arăta branding-ul meu, dar în fundal va indica în continuare cel corect SES.

Acum sunt conștient că așa ceva este posibil pentru că atunci când m-am înscris la ConvertKit, mi-au arătat ceva de genul:

introduceți descrierea imaginii aici

Cele două valori de acolo, după cum puteți vedea, indică spre converkit.com DAR când le rulez printr-o căutare DNS:

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

introduceți descrierea imaginii aici introduceți descrierea imaginii aici introduceți descrierea imaginii aici

Pot vedea că în fundal indică înregistrările MX și TXT care aparțin Sendgrid. Cum pot realiza acest lucru? (Cred că aceleași principii se vor aplica și pentru SES sau orice alt MTA)


EDITAȚI | ×: Am încercat câteva lucruri - Și am setat CNAME, MX și TXT în chillybilly.xyz (domeniul proiectului meu) și i-am indicat două CNAMES din frankthetank.xyz numit spf.frankthetank.xyz și dkim.frankthetankxyz

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.frankthetank.xyz&rtype=ALL&dns=google

introduceți descrierea imaginii aici introduceți descrierea imaginii aici

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.frankthetank.xyz&rtype=ALL&dns=google

introduceți descrierea imaginii aici

După cum puteți vedea, am reușit să obțin rezultate foarte asemănătoare cu ceea ce face ConvertKit cu Sendgrid. Dar nu se verifică în acest fel. :(

Singura diferență pe care o văd când verific acele căutări DNS (link-urile de mai sus) este că și CNAME-urile apar în căutare pentru mine, dar nu și în cazul convertkit-ului. Deci cred că sunt aproape de o soluție, dar nu sunt sigur ce îmi lipsește, vreo idee? :)

anx avatar
drapel fr
anx
Ei vor ști la ce furnizor externalizați... când vor vedea un e-mail livrat de acel furnizor?
Rohan avatar
drapel us
Nu, asta e ideea. Pentru a elimina brandingul furnizorului și a pune-o pe a noastră. Cu chestiile DKIM/SPF, asta se întâmplă, scrie semnat de domeniul clientului, așa că nu mai spune „prin amazonses.com” sau ceva de genul acesta.
Puncte:3
drapel ru

Primul SPF: dacă înlocuiți de ex. Înregistrarea SPF de ieșire a sendgrid, care este inclusă în înregistrarea dvs. SPF, cu propria dvs. marcă, v-ați asumat în același timp sarcina de a urmări toate lucrurile dinamice pe care sendgrid le-ar putea face cu numele și adresele serverului de e-mail de ieșire. Nu doriți să faceți asta, așa că, dacă trimiteți prin sendgrid, trebuie să includeți SPF-ul sendgrid. Deci, din moment ce utilizați sendgrid, nu există nicio modalitate de a scăpa de acel „include: sendgrid.net” din înregistrarea SPF fără a vă provoca durere.

DKIM este similar, exemplul Amazons creează CNAME pentru înregistrările care există în DNS-ul Amazon. Dacă vrei să-l înlocuiești cu al tău (ceea ce poți, fără nicio problemă), trebuie să pui acele înregistrări în propriul tău DNS. Ceea ce nu este o problemă, totuși, trebuie să transferați cumva cheia de semnare oricui semnează acele e-mailuri și asta ar putea fi o problemă. Cu soluția Amazon, ei creează cheia și vă oferă linkul către cheia publică pe care au pus-o în DNS-ul lor, care se potrivește cu cheia privată cu care vă semnează e-mailul.

Cu toate acestea, dacă doriți să eliminați „brandingul” de pe serverele de e-mail ale Amazon sau sendgrid, singura modalitate este să le cumpărați, deoarece acest lucru se face prin DNS invers și nu vor indica NICIODATĂ serverele lor de ieșire către nume din spațiul dvs. de nume DNS.

Rohan avatar
drapel us
Bine, poți, te rog, să detaliezi mai multe despre partea „cumpără-le”? Înseamnă că există un alt nivel la SES și SG la care mă pot abona și îmi vor oferi propriile servere dedicate de trimitere a e-mailurilor? Și apoi, spui că va trebui să folosesc „DNS invers” (trebuie să verific și să învăț și despre asta acum), pentru a face ceea ce îmi propun să realizez? Opțiunea „cumpărați-le” - Este ca și cum ați avea opțiunea „IP-uri dedicate” în SES - Ca și cum ați încălzi acele IP-uri și apoi le utilizați - Așa pot realiza acest lucru? Poate îmi dă mai mult control asupra întregii chestii? Încă nou și învață, mulțumesc :)
drapel ru
„Cumpara-le” a fost mai degraba o gluma. Ideea este că cel puțin adresele IPv4 sunt oarecum rare, așa că nu mi-aș ține respirația ca să vă ofere un server dedicat (sau chiar IP) de la care să trimiteți. Și DNS invers este cu siguranță verificat prin primirea serverelor de mail, precum și SPF și DKIM și în unele cazuri chiar DMARC (combinația celor două). Desigur, nimeni nu vă împiedică să vă rulați propriul serviciu de e-mail, dar asta vine cu anumite șiruri atașate. Nu sunt familiarizat cu ofertele Amazon, dar chiar și Gmail și M365 (Microsoft) își vor folosi propriile puncte de vânzare și DNS pentru a permite asta.
drapel ru
De asemenea, este pentru a-și proteja propriul control asupra acelor servere. Gândiți-vă la asta în contextul spammerilor, le-ar plăcea să aibă un serviciu cu mult oomf pentru a-și trimite spam-ul de pe propriile domenii, dar atât Microsoft, cât și Google au instalat filtrarea e-mailurilor de ieșire pentru a preveni tocmai asta.
Rohan avatar
drapel us
„„Cumpara-le” a fost mai degrabă o glumă.” Mi-am dat seama că câteva minute mai târziu :'D `deci nu mi-aș ține respirația ca ei să-ți ofere un server dedicat (sau chiar IP) de la care să trimiți` - Dar ei au, au opțiuni de IP dedicate pentru care pot plăti mai mulți bani, voi trimite la un document în următorul comentariu :) Pot chiar să-mi creez propriile pool-uri din aceste IP-uri, în funcție de dacă vreau să-mi păstrez e-mailurile de ieșire separate în funcție de categorii. Ceea ce încă încerc să înțeleg este dacă îmi vor permite să fac chestia cu Reverse DNS despre care ai vorbit cu IP-urile dedicate :)
Rohan avatar
drapel us
https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html
Rohan avatar
drapel us
Singura problemă mare cu utilizarea IP-urilor dedicate în loc de pool-urile mari de IP-uri partajate pe care le au - este că va trebui să-mi încălzesc IP-urile dedicate și să le țin cald pe tot parcursul pentru a susține orice tipare de trimitere pe care vreau să le obțin, așa că înseamnă mai multă muncă. și algos de întreținut :)
Rohan avatar
drapel us
Am adăugat o modificare, spune-mi dacă ai idee :)
Puncte:1
drapel tl

Deci, puteți face doar înregistrări CNAME care indică înregistrarea sursă originală sau pur și simplu puneți SPF-ul corect, cum ar fi exemplul convertkit, dar sub domeniul dvs.

sau aveți un middleware care trece prin procesul de verificare a domeniului în sendgrid/AWS, creând înregistrările DNS pe domeniul dvs., pe care apoi le spuneți clientului dvs. la CNAME la noile înregistrări DNS pe care le-ați creat și apoi finalizează verificarea odată ce clientul face clic pe un butonul pentru a spune că au făcut asta

acest lucru nu va opri antetele de e-mail sau urmărirea înregistrărilor DNS pentru a găsi furnizorul original, dar pentru o persoană obișnuită, acest lucru este probabil amenda.

Cu toate acestea, vreau să avertizez acest lucru - straturile de ofuscare doare de fapt la nivelul DNS.

De exemplu, SPF are o limită explicită de 10 căutări codificate în RFC - Sendgrid scriu ei înșiși despre asta - https://docs.sendgrid.com/ui/account-and-settings/spf-limitations

  • RFC original. Aveți un risc ridicat de a atinge această problemă dacă faceți orice fel de ofuscare pentru SPF

căutările DNS suplimentare vor crește timpii de răspuns pentru orice căutare bazată pe DNS în fluxul de livrare a e-mailului și/sau în aplicația dvs. - acest lucru ar putea cauza multă durere la multe niveluri, mai ales că MTA-urile sunt procesate în timp real, orice întârziere are un impact uriaș potențial asupra impactului.

Pentru a pune niște calcule în acest lucru, imaginați-vă că un singur e-mail durează 20 ms pentru a fi procesat și trimis printr-un MTA cu DNS - acesta este exemplul cel mai bun caz presupunând această logică Valabil. Puteți trimite aproximativ 180.000 de e-mailuri pe oră. Dacă trebuie să dublăm acest lucru adăugând cel puțin 1 căutare suplimentară dns, aceasta se reduce la jumătate la 90.000 de e-mailuri pe oră. Dacă te bazezi pe volum, ar trebui să arunci acum de două ori mai multă cantitate de hardware pentru a menține același debit.

Rohan avatar
drapel us
Mulțumesc pentru răspunsul detaliat :) Dar punctul în care spui „aveți un middelware...”. Aceasta este partea în care chiar am nevoie de ajutor. Modul „practic” de a crea un CNAME pentru clientul meu care indică înregistrările DNS din domeniul meu, care în cele din urmă conduc la AWS. Cum pot realiza asta? Există ghiduri către care mi-ați putea indica? În special partea în care pot crea un middleware pentru înregistrările MX și TXT, acolo am făcut confuzie la
Rohan avatar
drapel us
Am adăugat o modificare, spune-mi dacă ai idee :)
Rohan avatar
drapel us
Hei Anthony, poți să verifici EDITUL pe care l-am adăugat și să vezi dacă mai dă idei? Inca nu am gasit o solutie practica la problema. Mulțumiri :)
Puncte:1
drapel us

SG are o opțiune numită automată_securitate în Autentificați un domeniu API. Ceea ce cred că această opțiune în spate este că îi permite SG să gestioneze/roti cheile DKIM și alte înregistrări folosind înregistrările lor DNS.În consecință, atunci când faceți această opțiune adevărată, ele returnează înregistrări CNAME în loc de înregistrări MX și TXT. Și înregistrările MX/TXT sunt gestionate în culise de SG.

introduceți descrierea imaginii aici

Partea convenabilă despre înregistrările CNAME este că alte înregistrări CNAME pot indica cu ușurință către ele. Așa că am arătat chillybilly.xyz -> înregistrări SG CNAME că m-am întors de la SG și am arătat înregistrări frankthetank.xyz -> înregistrări CNAME chillybilly.xyz și creând astfel un fel de middleware între ele.

Te rog nu asta chillybilly.xyz este domeniul aplicației mele și frankthetank.xyz este domeniul clientului. Aceasta este presupunerea pe care operăm în timp ce rezolvăm problema.

Acum desigur ca unul dintre răspunsuri a subliniat că acest lucru va crește căutarea DNS din cauza unui alt strat intermediar, trebuie totuși să evaluăm dacă acest lucru are sens pentru noi sau dacă va crește timpii de livrare a e-mailurilor atunci când creștem în cele din urmă. Dar soluția funcționează. Cred că este o implementare numai SG, deși cred. Nu am reușit să o fac să funcționeze cu AWS SES. Am un apel cu ei în curând - Dacă știu ceva mai bine, voi edita acest răspuns :)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.