So verhindern Sie, dass Sendmail E-Mails von IPv6 anstelle von IPv4 sendet


11

Heute habe ich festgestellt, dass Google Mail alle von meinem Server empfangenen Nachrichten an den Spam-Ordner sendet. Ich habe den Nachrichtenkopf überprüft und Folgendes festgestellt:

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

Es sieht also so aus, als würde Sendmail E-Mails von IP6-Adressen anstelle von IPv4 senden, und es gibt keine SPF- und PTR-Einträge für IPv6. Wie zwinge ich Sendmail, E-Mails von IPv4 zu senden?

Vielen Dank.


4
Da Sie über eine v6-Konnektivität verfügen, ist es besser, wenn Sie die umgekehrte Suche und den MX-Eintrag für Ihren v6-kompatiblen Mailer hinzufügen. Aber das ist nicht was du fragst.
sysadmin1138

Antworten:


10

Deaktivieren Sie IPv6 nicht. Es ist nicht mehr optional und Sie können ohne es nicht mehr mit einigen Leuten kommunizieren.

Korrigieren Sie stattdessen Ihren SPF-Eintrag so, dass er E-Mails weiterleitet, die von Ihrer IPv6-Adresse stammen.


Und was ist, wenn Ihr VPS-Anbieter den SPF-Eintrag für IPv6 nicht festlegen möchte? :(
brodul

2
@brodul Was hat Ihr VPS-Anbieter mit Ihren DNS-Einträgen zu tun?
Michael Hampton

Das Reparieren meines SPF-Datensatzes löst das Problem nicht - da ich E-Mails an GMail weiterleiten werde, wird mein Weiterleitungsserver niemals eine SPF-Prüfung bestehen.
James Roper

3
Google Mail erfordert jetzt auch eine funktionierende Umkehrung für IPv6-Absender. Eine funktionierende umgekehrte Adresse zu haben, liegt definitiv nicht in Ihren Händen und liegt bei Ihrem Server / Netzwerkanbieter.
Vladimir Panteleev

Bist du sicher? Wenn ich mich nicht irre, benötigt Google Mail heutzutage nur einen gültigen SPF-Datensatz (und Sie müssen die KI trainieren, indem Sie ein paar Mal auf "Nicht Spam" klicken)
autra

11

Fügen Sie in Ihrer sendmail.mc Folgendes hinzu:

CLIENT_OPTIONS (`Family = inet ') dnl

Erstellen Sie dann sendmail.cf neu und starten Sie sendmail neu. In Debian führen Sie dazu> sendmailconfig aus. In CentOS führen Sie / etc / mail / make aus, gefolgt vom Neustart des Dienstes sendmail. Andere> Systeme haben andere Möglichkeiten, dies zu tun.

Danke, dass du das gepostet hast, und es hat mich definitiv auf den richtigen Weg gebracht. Ich habe es jedoch versucht, aber es funktionierte immer noch nicht für mich. Als Randnotiz erhielten wir Ablehnungen von Google Mail-Servern, da wir keinen umgekehrten DNS-Eintrag für IPv6 hatten. Dies hängt definitiv mit der Konfiguration unseres VPS zusammen und nicht mit unserer DNS-Konfiguration, da der numerische umgekehrte DNS-Eintrag an denjenigen gehen muss, der den IP-Adressblock besitzt, und das ist mein VPS.

Soweit ich sehen kann, gibt es keine Möglichkeit, sendmail mit IPv6 als Client speziell zu deaktivieren. Die etwas knifflige Lösung bestand darin, die IPv6-Optionen anzugeben, um ein IPv6-Kompatibilitätsformat einer IPv4-Adresse zu verwenden.

Wenn Ihre IPv4-Adresse beispielsweise 1.2.3.4 lautet, geben Sie Folgendes an:

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

Hat mir sehr gut gefallen, und soweit ich sehen kann, wurde dies nirgendwo dokumentiert.


Vielen Dank für Ihre Antwort! Es hat den Trick für mich auf einem Server gemacht, auf dem ich keinen Zugriff auf IPv6 PTR hatte und sendmail hartnäckig war, es für Google Mail zu verwenden.
Luxian

4

In Ihrem sendmail.mcAdd:

CLIENT_OPTIONS(`Family=inet')dnl

sendmail.cfErstellen Sie dann sendmail neu und starten Sie es neu. In Debian tun Sie dies, indem Sie ausführen sendmailconfig. In CentOS laufen Sie /etc/mail/makegefolgt von service sendmail restart. Andere Systeme haben andere Möglichkeiten, dies zu tun.


0

Ich wollte nur mitteilen, dass für mich (jetzt im Jahr 2018) die Angabe von filter-aaaa-on-v4 yes funktioniert hat. in der namens.conf meiner lokalen Bindung per https://kb.isc.org/docs/aa-00576 (mit Ausnahme der dort erwähnten Direktive filter-aaaa-on-v6 existiert sie in meinem Kopf nicht). Wahrscheinlich hätte der Name -4 auch funktioniert. Dies mit sendmail und bind auf centos7 [.5.1804].

Bei allem anderen, was ich versucht habe, einschließlich der Antwort hier, hat Google Mail meine E-Mails mit der gefürchteten Meldung "Diese Nachricht entspricht nicht den IPv6-Versandrichtlinien" gesendet, da ich für meine IPv6-Adresse keine Umkehrung habe (ISP ist schwierig).

Andere Dinge, die nicht funktionierten: Definieren Sie ( confBIND_OPTS',-use_inet6 ') (auch bekannt als ResolverOptions) in submit.mc und sendmail.mc unter https://lists.debian.org/debian-user/2004/09/msg01410.html . Ich weiß nicht warum nicht.

Ändern von /etc/gai.conf (per https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/ ), vermutlich weil sendmail gethostbyname / addr verwendet, nicht getaddrinfo, und gai.conf betrifft nur letztere.

Oh, ich hatte eine andere Lösung: Kompilieren Sie sendmail aus dem Quellcode und deaktivieren Sie v6 auf dieser Ebene. Leider scheint es keine gleichwertige Laufzeitrichtlinie zu geben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.