У меня есть сервер CentOS 5.x, на котором запущена sendmail, которая не может согласовать TLS с НЕКОТОРЫМИ различными серверами получателей. Я изучаю это.
Между тем, я заметил, что sendmail НЕ будет беспокоиться об использовании стандартных незашифрованных методов доставки, если возникают ошибки установления связи TLS. Это нормальное поведение?
Я ожидал, что эта логика будет на месте, если (и только если) я явно потребую ее для доменов. Например, если я добавил параметры TLS_SRV в / etc / mail / access. В данном случае нет. По сути, Sendmail использует только «оппортунистический TLS».
Вся информация, с которой я столкнулся до сих пор, предполагает, что эта проблема является ожидаемым поведением и жестко запрограммирована ...
Согласно http://www.sendmail.org/m4/starttls.html#disable_starttls :
По умолчанию по возможности используется STARTTLS. Однако есть несколько сломанных MTA, которые не реализуют STARTTLS должным образом. Чтобы иметь возможность отправлять (или получать от) эти MTA, можно использовать набор правил try_tls (srv_features), который работает вместе с картой доступа. Записи для карты доступа должны быть помечены тегом Try_TLS (Srv_Features) и относиться к имени хоста или IP-адресу подключающейся системы.
Если база данных доступа не используется, соединение разрешено во всех случаях, как входящее, так и исходящее, за исключением случаев, когда значение в $ {verify} - ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, и в этом случае соединение не разрешено.
Обе эти заметки предполагают, что функция try_tls - единственный вариант пропуска TLS, когда другая сторона утверждает, что поддерживает его. Я понимаю, что это вариант, но он громоздкий, поскольку означает, что мне придется вручную делать исключения в любое время, когда у исходящего домена возникают проблемы.
Есть ли другой способ получить откат sendmail?
В соответствии с эта тема, резервная функция tls_failures
был реализовано в этом патче. Очевидно, это будет использовать простой текст автоматически после определенного количества сбоев установления связи TLS.
Примечание: этот патч интегрирован в 8.16 (по крайней мере, доступен как снимок)
На данный момент 8.16 еще нет выпущенный, так что пока вам придется использовать /etc/mail/access
или /etc/mail/access_db
так как Сет предложил, и обязательно восстановите .db
с помощью makemap hash /etc/mail/access < /etc/mail/access
Что касается рисков безопасности использования tls_failures
глобально; учитывая, что это оппортунистический TLS Во-первых, я думаю, что отказ от использования этой новой опции поможет только в некоторых действительно второстепенных случаях, когда почтовый сервер получателя временно перенастраивается, а затем исправляется.
Вы можете отключить TLS для определенных хостов. Например:
# Try_TLS:gmail.com NO
Я также указываю вам на http://www.sendmail.org/m4/starttls.html
По умолчанию по возможности используется STARTTLS. Однако есть несколько сломанных MTA, которые не реализуют STARTTLS должным образом. Чтобы иметь возможность отправлять (или получать от) эти MTA, можно использовать набор правил try_tls (srv_features), который работает вместе с картой доступа. Записи для карты доступа должны быть помечены тегом Try_TLS (Srv_Features) и относиться к имени хоста или IP-адресу подключающейся системы. Случай по умолчанию можно указать, используя только тег. Например, следующие записи в карте доступа:
Try_TLS:broken.server NO
Srv_Features:my.domain v
Srv_Features: V
отключит STARTTLS при отправке на broken.server (или любой хост в этом домене) и запросит сертификат клиента во время подтверждения TLS только для хостов в my.domain. Допустимые записи в RHS для Srv_Features перечислены в «Руководстве по установке и эксплуатации Sendmail».