Điểm:3

Làm cách nào để thiết lập cài đặt DNS với tên miền ở giữa cho DKIM và SPF?

lá cờ us

Tôi đang làm việc trên một công cụ giúp người dùng gửi email. Tôi dự định sử dụng MTA (Tác nhân chuyển thư) ở phần cuối như AWS-SES hoặc Sendgrid, v.v. Để email đến thành công trong hộp thư đến công thức, người dùng sẽ phải thiết lập DKIM/SPF bằng cách định cấu hình DNS cài đặt của các miền tương ứng của họ.

Bây giờ nếu tôi lấy SES làm ví dụ, tôi biết họ có một API cho phép tôi để thêm "Danh tính" và tìm nạp lại tất cả các bản ghi DNS cần thiết cho nó bằng API. Tôi chắc chắn rằng Sendgrid và các MTA khác có API tương tự cho phép thêm danh tính và trả lại bản ghi DNS để người dùng đăng ký.

Tôi hiển thị cài đặt DNS DKIM được trả lại cho người dùng và họ thêm cài đặt đó vào nhà cung cấp DNS của họ và sau đó khi họ gửi email, công thức sẽ nhận chính xác (không có bất kỳ nội dung "thông qua amazonses.com" nào trong tiêu đề)

Bây giờ để lấy ví dụ - giả sử rằng công cụ tôi đang xây dựng được lưu trữ trên chillybilly.xyz và một trong những người dùng sử dụng công cụ của tôi, họ có một miền gọi là frankthetank.xyz mà họ muốn sử dụng để gửi email qua nền tảng của tôi .

Khi người dùng cố xác minh miền của họ thông qua nền tảng của tôi, tôi sẽ nhấn vào API được đề cập ở trên trong AWS SES - và hiển thị nội dung như thế này cho người dùng:

nhập mô tả hình ảnh ở đây

Sau đó, họ có thể thêm các bản ghi CNAMES và TXT này để DKIM/SPF thành công và có thể bắt đầu gửi email. Nhưng nếu bạn nhìn kỹ, họ có thể thấy tôi đang sử dụng SES vì giá trị của các bản ghi CNAMES và TXT đó. Và đó là điều tôi muốn tránh, thay vào đó tôi muốn có những thứ được gọi là gì đó như 7nuk24xywyawocu6ctqjxmjasiaiq3vq.dkim.chillybilly.xyz cái này sẽ hiển thị thương hiệu của tôi, nhưng trong nền, nó vẫn trỏ đến đúng tên SES.

Bây giờ tôi biết rằng điều đó là có thể bởi vì khi tôi đăng ký ConvertKit, họ đã cho tôi xem một thứ như sau:

nhập mô tả hình ảnh ở đây

Hai giá trị trong đó, như bạn có thể thấy, đang hướng tới converkit.com NHƯNG khi tôi chạy chúng thông qua tra cứu 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

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Tôi có thể thấy rằng trong nền, nó trỏ tới các bản ghi MX và TXT thuộc về Sendgrid. Làm thế nào tôi có thể đạt được điều này? (Tôi tin rằng các nguyên tắc tương tự cũng sẽ áp dụng cho SES hoặc bất kỳ MTA nào khác)


CHỈNH SỬA: Tôi đã thử một số thứ - Và tôi đã đặt CNAME, MX và TXT trong chilllybilly.xyz (miền của dự án của tôi) và tôi đã chỉ hai CNAME cho nó từ frankthetank.xyz được gọi là spf.frankthetank.xyzdkim.frankthetankxyz

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

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

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

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy, tôi đã có thể đạt được kết quả rất giống với những gì ConvertKit đang làm với Sendgrid. Nhưng nó không được xác minh theo cách này. :(

Sự khác biệt duy nhất mà tôi thấy khi kiểm tra các tra cứu DNS đó (các liên kết ở trên) là các CNAME cũng hiển thị trong phần tra cứu đối với tôi, nhưng không phải trong trường hợp convertkit. Vì vậy, tôi nghĩ rằng tôi gần với một giải pháp, nhưng không chắc mình đang thiếu gì, có ý tưởng nào không? :)

anx avatar
lá cờ fr
anx
Họ sẽ biết bạn thuê ngoài cho nhà cung cấp nào.. khi họ nhìn thấy thư do nhà cung cấp đó gửi?
Rohan avatar
lá cờ us
Không, đó là toàn bộ vấn đề. Để xóa thương hiệu nhà cung cấp và đặt thương hiệu của chúng tôi. Với nội dung DKIM/SPF, điều đó xảy ra, nó cho biết được ký bởi miền của khách hàng nên không còn ghi "thông qua amazonses.com" hoặc đại loại như thế nữa.
Điểm:3
lá cờ ru

SPF đầu tiên: nếu bạn thay thế vd. bản ghi SPF gửi đi của sendgrid, được bao gồm trong bản ghi SPF của bạn, với thương hiệu của riêng bạn, bạn đồng thời đảm nhận công việc theo dõi tất cả những điều động mà sendgrid có thể thực hiện đối với tên và địa chỉ của máy chủ gửi thư đi của họ. Bạn không muốn làm điều đó, vì vậy nếu bạn đang gửi qua sendgrid, bạn cần bao gồm SPF của sendgrid. Vì vậy, vì bạn sử dụng sendgrid, không có cách nào bạn có thể loại bỏ "bao gồm: sendgrid.net" trong bản ghi SPF của mình mà không gây đau đớn cho chính mình.

DKIM cũng tương tự, ví dụ amazonses đang tạo CNAME cho các bản ghi tồn tại trong DNS của Amazon. Nếu bạn muốn thay thế nó bằng bản ghi của riêng bạn (bạn có thể, không vấn đề gì), bạn phải đặt các bản ghi đó vào DNS của riêng mình. Đó không phải là vấn đề, tuy nhiên, bằng cách nào đó bạn phải chuyển khóa ký cho bất kỳ ai ký các email đó và đó có thể là một vấn đề. Với giải pháp của Amazon, họ tạo khóa và cung cấp cho bạn liên kết đến khóa chung mà họ đã đặt trong DNS của mình phù hợp với khóa riêng tư mà họ ký vào email của bạn.

Tuy nhiên, nếu bạn muốn xóa "nhãn hiệu" khỏi máy chủ thư của Amazon hoặc sendgrid thì cách duy nhất là mua chúng, bởi vì điều đó được thực hiện bởi DNS ngược và chúng sẽ KHÔNG BAO GIỜ trỏ các máy chủ gửi đi của chúng tới các tên trong không gian tên DNS của bạn.

Rohan avatar
lá cờ us
Được rồi, bạn có thể giải thích thêm về phần "mua chúng" không? Có nghĩa là có một cấp độ khác đối với SES và SG mà tôi có thể đăng ký và họ sẽ cung cấp cho tôi các máy chủ gửi thư chuyên dụng của riêng tôi? Và sau đó, bạn đang nói rằng tôi sẽ phải sử dụng "DNS đảo ngược" (tôi cũng cần kiểm tra và tìm hiểu về điều đó ngay bây giờ), để thực hiện những gì tôi đang đặt ra để hoàn thành? Tùy chọn "mua chúng" - Có giống như tùy chọn "IP chuyên dụng" trong SES - Giống như bạn khởi động các IP đó và sau đó sử dụng chúng - Đó có phải là cách tôi có thể đạt được điều này không? Có lẽ nó cho phép tôi kiểm soát nhiều hơn toàn bộ? Vẫn còn mới và học hỏi, cảm ơn :)
lá cờ ru
Việc "mua chúng" giống như một trò đùa. Vấn đề là, ít nhất các địa chỉ IPv4 hơi hiếm, vì vậy tôi sẽ không nín thở để họ cung cấp cho bạn một máy chủ chuyên dụng (hoặc thậm chí là IP) để gửi từ đó. Và DNS ngược chắc chắn được kiểm tra bằng cách nhận máy chủ thư, cũng như SPF và DKIM và trong một số trường hợp thậm chí là DMARC (sự kết hợp của cả hai). Tất nhiên, không ai ngăn cản bạn chạy dịch vụ thư của riêng mình, nhưng điều đó đi kèm với một số ràng buộc nhất định. Tôi không quen thuộc với các dịch vụ của Amazon, nhưng ngay cả gmail và M365 (Microsoft) cũng sẽ sử dụng các cửa hàng và DNS của riêng họ để cho phép điều đó.
lá cờ ru
Đó cũng là để bảo vệ quyền kiểm soát của chính họ đối với các máy chủ đó. Hãy nghĩ về điều đó trong bối cảnh của những người gửi thư rác, họ muốn có một dịch vụ có nhiều tính năng để gửi thư rác từ miền của họ, nhưng cả Microsoft và Google đều có bộ lọc thư gửi đi để ngăn chặn điều đó.
Rohan avatar
lá cờ us
`Việc "mua chúng đi" giống như một trò đùa.` Tôi nhận ra điều đó vài phút sau :'D `vì vậy tôi sẽ không nín thở để họ cung cấp cho bạn một máy chủ chuyên dụng (hoặc thậm chí là IP) để gửi từ đó` - Nhưng họ có, họ có các tùy chọn IP chuyên dụng mà tôi có thể trả nhiều tiền hơn, tôi sẽ liên kết đến một tài liệu trong nhận xét tiếp theo :) Tôi thậm chí có thể tạo nhóm của riêng mình từ các IP này tùy thuộc vào việc tôi có muốn tách biệt các email gửi đi của mình dựa trên danh mục hay không. Điều tôi vẫn đang cố gắng hiểu là liệu họ có cho phép tôi thực hiện Reverse DNS mà bạn đã nói với các IP chuyên dụng không :)
Rohan avatar
lá cờ us
https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html
Rohan avatar
lá cờ us
Vấn đề lớn duy nhất với việc sử dụng các IP chuyên dụng thay vì các nhóm IP dùng chung lớn mà họ có - Đó là tôi sẽ phải khởi động các IP chuyên dụng của mình và giữ ấm chúng trong suốt thời gian để duy trì bất kỳ kiểu gửi nào mà tôi muốn đạt được, điều đó có nghĩa là sẽ làm được nhiều việc hơn và các thuật toán để duy trì :)
Rohan avatar
lá cờ us
Đã thêm bản chỉnh sửa, hãy cho tôi biết nếu bạn có bất kỳ ý tưởng nào :)
Điểm:1
lá cờ us

SG có một tùy chọn gọi là auto_security bên trong Xác thực miền API. Tôi nghĩ cuối cùng thì tùy chọn này cho phép SG quản lý/xoay các khóa DKIM và các bản ghi khác bằng cách sử dụng bản ghi DNS của họ.Do đó, khi bạn đặt tùy chọn này thành true, chúng sẽ trả về bản ghi CNAME thay vì bản ghi MX và TXT. Và các bản ghi MX/TXT được quản lý phía sau hậu trường bởi SG.

nhập mô tả hình ảnh ở đây

Phần thuận tiện về bản ghi CNAME là các bản ghi CNAME khác có thể dễ dàng hướng tới chúng. Vì vậy, tôi chỉ Chillybilly.xyz -> Bản ghi SG CNAME mà tôi đã trở lại từ SG, và tôi đã chỉ bản ghi frankthetank.xyz -> bản ghi chilllybilly.xyz CNAME và do đó tạo ra một loại phần mềm trung gian ở giữa.

xin vui lòng không phải rằng chillybilly.xyz là miền của ứng dụng của tôi và frankthetank.xyz là miền của khách hàng. Đó là giả định mà chúng tôi đang thực hiện trong khi giải quyết vấn đề này.

Bây giờ tất nhiên như một trong những câu trả lời đã chỉ ra rằng điều này sẽ tăng tra cứu DNS do có một lớp khác ở giữa, chúng tôi vẫn cần đánh giá xem việc làm này có thực sự phù hợp với chúng tôi hay liệu nó sẽ tăng thời gian gửi email khi mở rộng quy mô cuối cùng. Nhưng giải pháp không hoạt động. Tôi nghĩ đó là một triển khai duy nhất của SG. Tôi không thể làm cho nó hoạt động với AWS SES. Tôi sẽ sớm có một cuộc gọi với họ - Nếu tôi biết điều gì tốt hơn, tôi sẽ chỉnh sửa câu trả lời này :)

Điểm:1
lá cờ tl

Vì vậy, bạn chỉ có thể thực hiện các bản ghi CNAME trỏ đến bản ghi nguồn ban đầu hoặc chỉ cần đặt SPF chính xác như ví dụ về bộ chuyển đổi nhưng trong miền của bạn.

hoặc có phần mềm trung gian thực hiện quy trình xác minh miền trong sendgrid/AWS, tạo bản ghi DNS trên miền của bạn, sau đó bạn thông báo cho khách hàng của mình CNAME đối với bản ghi DNS mới mà bạn đã tạo, sau đó hoàn tất xác minh sau khi khách hàng nhấp vào nút để nói rằng họ đã làm điều này

điều này sẽ không dừng các tiêu đề email hoặc theo dõi các bản ghi DNS để tìm nhà cung cấp ban đầu nhưng đối với một người bình thường thì đây là rất có thể khỏe.

Tuy nhiên, tôi muốn báo trước điều này - các lớp che giấu thực sự gây hại cho lớp DNS.

Ví dụ: SPF có giới hạn tra cứu 10 được mã hóa cứng rõ ràng trong RFC - Sendgrid tự viết về nó - https://docs.sendgrid.com/ui/account-and-settings/spf-limitations

  • RFC gốc. Bạn có nguy cơ cao gặp phải sự cố này nếu bạn thực hiện bất kỳ hình thức che giấu SPF nào

tra cứu DNS bổ sung sẽ tăng thời gian phản hồi cho bất kỳ tra cứu dựa trên DNS nào trong luồng gửi thư và/hoặc ứng dụng của bạn - điều này có thể gây ra nhiều nỗi đau ở nhiều cấp độ, đặc biệt là khi MTA đang xử lý theo thời gian thực, bất kỳ sự chậm trễ nào cũng có khả năng ảnh hưởng rất lớn.

Để đưa một số phép toán vào vấn đề này, hãy tưởng tượng một email mất 20 mili giây để được xử lý và gửi qua MTA với DNS - đây là ví dụ tốt nhất cho trường hợp giả định logic này đúng. Bạn có thể gửi khoảng 180 nghìn email mỗi giờ. Nếu chúng tôi cần tăng gấp đôi con số này bằng cách thêm ít nhất 1 lần tra cứu dns thì con số này sẽ giảm một nửa xuống còn 90.000 email mỗi giờ. Nếu bạn phụ thuộc vào khối lượng, bây giờ bạn sẽ cần gấp đôi lượng phần cứng để duy trì cùng một thông lượng.

Rohan avatar
lá cờ us
Cảm ơn câu trả lời chi tiết :) Nhưng điểm mà bạn nói "có phần mềm trung gian ...". Đây là phần mà tôi cần giúp đỡ thực sự. Cách "thực tế" để tạo CNAME cho khách hàng của tôi trỏ tới các bản ghi DNS trong miền của tôi mà cuối cùng sẽ dẫn đến AWS. Làm thế nào để tôi đạt được điều này? Có hướng dẫn nào bạn có thể chỉ cho tôi không? Đặc biệt là phần mà tôi có thể tạo một phần mềm trung gian cho các bản ghi MX và TXT, đó là nơi tôi nhầm lẫn
Rohan avatar
lá cờ us
Đã thêm bản chỉnh sửa, hãy cho tôi biết nếu bạn có bất kỳ ý tưởng nào :)
Rohan avatar
lá cờ us
Này Anthony, bạn có thể kiểm tra CHỈNH SỬA mà tôi đã thêm và xem liệu nó có cung cấp thêm ý tưởng nào không? Tôi vẫn chưa tìm ra giải pháp thiết thực cho vấn đề. Cảm ơn :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.