Cara menghentikan Sendmail mengirim surat dari IPv6, bukan IPv4

11

Hari ini saya perhatikan bahwa Gmail mengirim semua pesan yang diterima dari server saya ke folder Spam. Saya memeriksa header pesan dan menemukan yang berikut:

Authentication-Results: mx.google.com;
       spf=neutral (google.com: 2001:4ba0:cafe:........ is neither permitted nor denied by best guess record for domain of [email protected]) [email protected]

Jadi, tampaknya Sendmail mengirim surat dari alamat IP6 alamat IPv4 dan tidak ada catatan SPF dan PTR untuk IPv6. Bagaimana cara saya memaksa Sendmail untuk mengirim email dari IPv4?

Terima kasih.

tfe
sumber
4
Karena Anda MEMILIKI konektivitas v6, akan lebih baik jika Anda dapat menambahkan reverse lookup dan MX record untuk mailer Anda yang kompatibel dengan v6. Tapi, bukan itu yang Anda tanyakan.
sysadmin1138

Jawaban:

10

Jangan nonaktifkan IPv6. Ini bukan pilihan lagi dan Anda tidak akan dapat berkomunikasi dengan beberapa orang tanpa itu.

Sebagai gantinya, perbaiki catatan SPF Anda sehingga melewati surat yang berasal dari alamat IPv6 Anda.

Michael Hampton
sumber
Dan bagaimana jika Anda penyedia VPS tidak ingin mengatur catatan SPF untuk IPv6. :(
brodul
2
@ Brodul Apa hubungan penyedia VPS Anda dengan catatan DNS Anda?
Michael Hampton
Memperbaiki catatan SPF saya tidak menyelesaikan masalah - karena saya meneruskan surat ke GMail, sehingga server penerusan saya tidak akan pernah melewati pemeriksaan SPF.
James Roper
3
Gmail sekarang juga membutuhkan pembalikan yang berfungsi untuk pengirim IPv6. Memiliki alamat terbalik yang berfungsi jelas keluar dari tangan Anda dan sampai ke penyedia server / jaringan Anda.
Vladimir Panteleev
Apakah kamu yakin Jika saya tidak salah, gmail hanya memerlukan catatan SPF yang valid saat ini (dan Anda harus melatih AI mereka dengan mengklik "Bukan Spam" beberapa kali)
autra
11

Di sendmail.mc Anda tambahkan:

CLIENT_OPTIONS (`Family = inet ') dnl

Kemudian bangun kembali sendmail.cf dan mulai kembali sendmail. Di Debian Anda melakukan ini dengan menjalankan> sendmailconfig. Di CentOS Anda menjalankan / etc / mail / make diikuti oleh layanan sendmail restart. > Sistem lain memiliki cara lain untuk melakukan ini.

Terima kasih telah memposting ini, dan itu pasti membuat saya di jalur yang benar. Namun, saya mencoba ini, tetapi masih tidak berhasil untuk saya. Sebagai catatan, kami mendapat penolakan dari server email Google karena kami tidak memiliki entri DNS terbalik untuk IPv6. Ini jelas terkait dengan konfigurasi VPS kami, dan bukan konfigurasi DNS kami, karena entri reverse DNS numerik harus ditujukan kepada siapa pun yang memiliki blok alamat IP, dan itu VPS saya.

Bagaimanapun, sejauh yang saya bisa lihat, tidak ada cara untuk secara khusus mematikan sendmail menggunakan IPv6 sebagai klien. Resolusi yang agak rumit yang saya datangi adalah untuk menentukan opsi IPv6 untuk menggunakan format kompatibilitas IPv6 dari alamat IPv4.

mis. jika alamat IPv4 Anda 1.2.3.4, tentukan:

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

Membuat pesona bagi saya, dan sejauh yang saya bisa lihat, ini belum didokumentasikan di mana pun.

David
sumber
Terima kasih banyak atas jawaban Anda! Itu melakukan trik untuk saya di server di mana saya tidak memiliki akses ke IPv6 PTR dan sendmail keras kepala untuk menggunakannya untuk Gmail.
Luxian
4

Di sendmail.mcadd Anda :

CLIENT_OPTIONS(`Family=inet')dnl

Kemudian bangun kembali sendmail.cfdan mulai ulang sendmail. Di Debian Anda melakukan ini dengan menjalankan sendmailconfig. Di CentOS Anda menjalankan /etc/mail/makediikuti oleh service sendmail restart. Sistem lain memiliki cara lain untuk melakukan ini.

adamo
sumber
0

Hanya ingin membagikan itu untuk saya (sekarang pada tahun 2018), yang berhasil adalah menentukan filter-aaaa-on-v4 ya; di bind lokal saya bernama.conf, per https://kb.isc.org/docs/aa-00576 (kecuali arahan filter-aaaa-on-v6 yang disebutkan tidak ada dalam pikiran saya). Mungkin nama -4 akan bekerja juga. Ini dengan sendmail dan ikat pada centos7 [.5.1804].

Dengan semua yang saya coba, termasuk jawabannya di sini, gmail memantulkan email saya dengan pesan "pesan ini tidak memenuhi pedoman pengiriman IPv6", karena, memang, saya tidak memiliki pembalik untuk alamat ipv6 saya (ISP sulit).

Hal-hal lain yang tidak berfungsi: define ( confBIND_OPTS',-use_inet6 ') (alias ResolverOptions) di submit.mc dan sendmail.mc, per https://lists.debian.org/debian-user/2004/09/msg01410.html . Saya tidak tahu kenapa tidak.

Mengubah /etc/gai.conf (per https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/ ), mungkin karena sendmail menggunakan gethostbyname / addr, bukan getaddrinfo, dan gai.conf hanya memengaruhi yang terakhir.

Oh, saya memang punya satu solusi lain: kompilasi sendmail dari sumber dan nonaktifkan v6 pada level itu. Sayangnya sepertinya tidak ada direktif runtime yang setara.

karlb
sumber