Cách dừng Sendmail gửi thư từ IPv6 thay vì IPv4


11

Hôm nay tôi nhận thấy rằng Gmail gửi tất cả các tin nhắn nhận được từ máy chủ của tôi đến thư mục Spam. Tôi đã kiểm tra tiêu đề thư và tìm thấy như sau:

Authentication-Results: mx.google.com;
       spf=neutral (google.com: 2001:4ba0:cafe:........ is neither permitted nor denied by best guess record for domain of root@myserver.com) smtp.mail=root@myserver.com

Vì vậy, có vẻ như Sendmail đang gửi thư từ địa chỉ IP6 của IPv4 và không có bản ghi SPF và PTR cho IPv6. Làm cách nào để buộc Sendmail gửi thư từ IPv4?

Cảm ơn.


4
Vì bạn CÓ kết nối v6, sẽ tốt hơn nếu bạn có thể thêm tra cứu ngược và bản ghi MX cho trình gửi thư tương thích v6 của bạn. Nhưng, đó không phải là những gì bạn đang hỏi.
sysadmin1138

Câu trả lời:


10

Đừng tắt IPv6. Nó không còn là tùy chọn nữa và bạn sẽ không thể giao tiếp với một số người mà không có nó.

Thay vào đó, hãy sửa bản ghi SPF của bạn để nó chuyển thư có nguồn gốc từ địa chỉ IPv6 của bạn.


Và nếu nhà cung cấp VPS của bạn không muốn thiết lập bản ghi SPF cho IPv6. :(
brodul

2
@brodul Nhà cung cấp VPS của bạn phải làm gì với bản ghi DNS của bạn?
Michael Hampton

Khắc phục bản ghi SPF của tôi không giải quyết được vấn đề - vì tôi đang chuyển tiếp thư tới GMail, vì vậy máy chủ chuyển tiếp của tôi sẽ không bao giờ vượt qua kiểm tra SPF.
James Roper

3
Gmail hiện cũng yêu cầu đảo ngược hoạt động đối với người gửi IPv6. Có một địa chỉ đảo ngược hoạt động chắc chắn nằm ngoài tầm tay của bạn và tùy thuộc vào nhà cung cấp máy chủ / mạng của bạn.
Vladimir Panteleev

Bạn có chắc không? Nếu tôi không nhầm, gmail chỉ yêu cầu bản ghi SPF hợp lệ hiện nay (và bạn phải đào tạo AI của họ bằng cách nhấp vào "Không phải thư rác" một vài lần)
autra

11

Trong sendmail.mc của bạn thêm:

CLIENT_OPTIONS (`Gia đình = inet ') dnl

Sau đó xây dựng lại sendmail.cf và khởi động lại sendmail. Trong Debian bạn làm điều này bằng cách chạy> sendmailconfig. Trong CentOS, bạn chạy / etc / mail / make theo sau là dịch vụ sendmail khởi động lại. Khác> hệ thống có những cách khác để làm điều này.

Cảm ơn bạn đã đăng bài này, và nó chắc chắn đã đưa tôi đi đúng hướng. Tuy nhiên, tôi đã thử điều này, nhưng nó vẫn không hiệu quả với tôi. Một lưu ý phụ, chúng tôi đã nhận được sự từ chối từ các máy chủ thư của Google vì chúng tôi không có mục DNS ngược cho IPv6. Điều này chắc chắn có liên quan đến cấu hình VPS của chúng tôi chứ không phải cấu hình DNS của chúng tôi, vì mục nhập DNS ngược số phải đến bất kỳ ai sở hữu khối địa chỉ IP và đó là VPS của tôi.

Dù sao, theo như tôi có thể thấy, không có cách nào để tắt cụ thể sendmail bằng IPv6 như máy khách. Độ phân giải hơi khó mà tôi tìm đến là chỉ định các tùy chọn IPv6 để sử dụng định dạng tương thích IPv6 của địa chỉ IPv4.

ví dụ: nếu địa chỉ IPv4 của bạn là 1.2.3.4, hãy chỉ định:

CLIENT_OPTIONS (`Family = inet6, Addr = :: ffff: 1.2.3.4 ') dnl

Làm việc rất hấp dẫn đối với tôi, và theo như tôi thấy, điều này chưa được ghi nhận ở bất cứ đâu.


Cảm ơn rất nhiều cho câu trả lời của bạn! Nó đã lừa tôi trên một máy chủ nơi tôi không có quyền truy cập vào IPv6 PTR và sendmail rất cứng đầu khi sử dụng nó cho Gmail.
Luxian

4

Trong sendmail.mcphần thêm của bạn :

CLIENT_OPTIONS(`Family=inet')dnl

Sau đó xây dựng lại sendmail.cfvà khởi động lại sendmail. Trong Debian bạn làm điều này bằng cách chạy sendmailconfig. Trong CentOS bạn chạy /etc/mail/maketheo sau service sendmail restart. Các hệ thống khác có những cách khác để làm điều này.


0

Chỉ muốn chia sẻ điều đó với tôi (bây giờ là năm 2018), điều làm việc là chỉ định bộ lọc-aaaa-on-v4 có; trong tên liên kết cục bộ của tôi có tên là.conf, mỗi https://kb.isc.org/docs/aa-00576 (ngoại trừ chỉ thị bộ lọc-aaaa-on-v6 được đề cập không tồn tại trong tâm trí của tôi). Có lẽ tên -4 cũng sẽ làm việc. Điều này với sendmail và liên kết trên centos7 [.5.1804].

Với mọi thứ khác tôi đã thử, bao gồm cả câu trả lời ở đây, gmail đã gửi thư của tôi với "tin nhắn này không đáp ứng các nguyên tắc gửi IPv6", bởi vì, thực sự, tôi không có địa chỉ ipv6 ngược lại (rất khó).

Những thứ khác không hoạt động: xác định ( confBIND_OPTS',-use_inet6 ') (còn gọi là ResolverOptions) trong submit.mc và sendmail.mc, mỗi https://lists.debian.org/debian-user/2004/09/msg01410.html . Tôi không biết tại sao không.

Thay đổi /etc/gai.conf (mỗi https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/ ), có lẽ vì sendmail sử dụng gethostbyname / addr, không phải getaddrinfo, và gai.conf chỉ ảnh hưởng đến cái sau.

Ồ, tôi đã có một giải pháp khác: biên dịch sendmail từ nguồn và vô hiệu hóa v6 ở cấp độ đó. Thật không may, dường như không có chỉ thị thời gian chạy tương đương.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.