Как остановить Sendmail отправку почты с IPv6 вместо IPv4

11

Сегодня я заметил, что Gmail отправляет все сообщения, полученные с моего сервера, в папку «Спам». Я проверил заголовок сообщения и обнаружил следующее:

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

Итак, похоже, что Sendmail отправляет почту с адреса IP6 вместо IPv4, и нет записей SPF и PTR для IPv6. Как заставить Sendmail отправлять почту с IPv4?

Спасибо.

т.у.т.
источник
4
Поскольку у вас есть подключение v6, было бы лучше, если бы вы могли добавить обратный поиск и запись MX для вашего v6-совместимого почтовика. Но это не то, что вы спрашиваете.
sysadmin1138

Ответы:

10

Не отключайте IPv6. Это больше не является обязательным, и вы не сможете общаться с некоторыми людьми без него.

Вместо этого исправьте запись SPF, чтобы она передавала почту, исходящую с вашего адреса IPv6.

Майкл Хэмптон
источник
А что если ваш поставщик VPS не хочет устанавливать запись SPF для IPv6. :(
Бродул
2
@brodul Как ваш провайдер VPS имеет отношение к вашим DNS-записям?
Майкл Хэмптон
Исправление моей записи SPF не решает проблему - потому что я пересылаю почту в GMail, поэтому мой сервер пересылки никогда не пройдет проверку SPF.
Джеймс Ропер
3
Теперь для Gmail также требуется рабочий реверс для отправителей IPv6. Наличие рабочего обратного адреса определенно не в ваших руках и зависит от вашего сервера / сетевого провайдера.
Владимир Пантелеев
Вы уверены? Если я не ошибаюсь, в настоящее время gmail требует только действительную запись SPF (и вы должны обучить их ИИ, нажав пару раз «Не спам»)
autra
11

В ваш sendmail.mc добавьте:

CLIENT_OPTIONS ( `Семейный = инет ') DNL

Затем пересоберите sendmail.cf и перезапустите sendmail. В Debian вы делаете это, запустив> sendmailconfig. В CentOS вы запускаете / etc / mail / make и перезапускаете службу sendmail. Другие> системы имеют другие способы сделать это.

Спасибо за сообщение, и это определенно заставило меня на правильном пути. Однако я попробовал это, но это все еще не работало для меня. Как примечание, мы получали отказы от почтовых серверов Google, потому что у нас не было обратной записи DNS для IPv6. Это определенно связано с конфигурацией нашего VPS, а не с нашей конфигурацией DNS, потому что числовая обратная запись DNS должна идти тому, кто владеет блоком IP-адресов, а это мой VPS.

В любом случае, насколько я вижу, нет способа специально отключить sendmail, используя IPv6 в качестве клиента. Немного хитрое решение, к которому я пришел, состояло в том, чтобы указать параметры IPv6 для использования формата совместимости IPv6 для адреса IPv4.

например, если ваш IPv4-адрес - 1.2.3.4, укажите:

CLIENT_OPTIONS ( `Семейный = inet6, Addr = :: FFFF: 1.2.3.4' ) DNL

Это сработало для меня, и, насколько я понимаю, это нигде не было задокументировано.

Дэвид
источник
Большое спасибо за ответ! Это помогло мне на сервере, где у меня не было доступа к IPv6 PTR, и sendmail был упрям, чтобы использовать его для Gmail.
Luxian
4

В вашем sendmail.mcдобавлении:

CLIENT_OPTIONS(`Family=inet')dnl

Затем пересоберите sendmail.cfи перезапустите sendmail. В Debian вы делаете это, запустив sendmailconfig. В CentOS вы запускаете, /etc/mail/makeа затем service sendmail restart. Другие системы имеют другие способы сделать это.

Adamo
источник
0

Просто хотел поделиться этим для меня (сейчас в 2018 году), что работало, указав filter-aaaa-on-v4 yes; в моей локальной привязке named.conf, по адресу https://kb.isc.org/docs/aa-00576 (кроме упомянутой директивы filter-aaaa-on-v6, в моей голове не существует). Вероятно, с именем -4 тоже подойдет. Это с sendmail и привязкой к centos7 [.5.1804].

Со всем остальным, что я пробовал, включая ответ здесь, gmail отклонил мою почту со страшным «это сообщение не соответствует правилам отправки IPv6», потому что, действительно, у меня нет обратного для моего адреса ipv6 (isp затруднен).

Другие вещи, которые не работали: определить ( confBIND_OPTS',-use_inet6 ') (иначе ResolverOptions) в submit.mc и sendmail.mc, согласно https://lists.debian.org/debian-user/2004/09/msg01410.html . Я не знаю, почему нет.

Изменение /etc/gai.conf (согласно https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/ ), предположительно, потому что sendmail использует gethostbyname / addr, а не getaddrinfo, и gai.conf влияет только на последнее.

О, у меня было еще одно решение: скомпилировать sendmail из исходного кода и отключить v6 на этом уровне. К сожалению, не существует эквивалентной директивы времени выполнения.

karlb
источник