RFC 2847 состояния
Открытый SMTP-сервер НЕ ДОЛЖЕН требовать использования расширения STARTTLS для локальной доставки почты. Это правило предотвращает повреждение расширением STARTTLS функциональной совместимости инфраструктуры SMTP Интернета. Общедоступный SMTP-сервер - это SMTP-сервер, который работает на порту 25 Интернет-узла, указанного в записи MX (или записи A, если запись MX отсутствует) для имени домена справа от адреса электронной почты в Интернете. .
Итак, чтобы соответствовать RFC, я должен учесть возможность того, что другой агент может попытаться подключиться к моему почтовому серверу без использования TLS, а затем отправить пароли в виде обычного текста, верно?
Если я нарушу это правило и разрешу только зашифрованные соединения электронной почты (то есть порты 454, 993 и 995, но не другие), смогут ли другие почтовые службы вообще отправлять сообщения на мой сервер?
Вы можете настроить свой сервер так, чтобы он принимал исходящую электронную почту от ваших пользователей через другой порт (587) и разрешал TLS только там. На стандартном порту 25 запретите вход любого пользователя в систему, чтобы кто-то случайно не использовал его и не отправил свой пароль в открытом виде.
Насколько я понимаю, это не нарушает RFC, поскольку в нем говорится о том, как другие серверы поговорите со своим сервером, чтобы доставить электронную почту вашим пользователям. На вашей стороне, обращенной к пользователю, вы на самом деле не связаны какими-либо RFC и можете применять любую политику, которую хотите, например, принудительное применение TLS, поскольку оно поддерживается всеми основными клиентами.
Если я нарушу это правило и разрешу только зашифрованные соединения электронной почты (то есть порты 454, 993 и 995, но не другие), смогут ли другие почтовые службы вообще отправлять сообщения на мой сервер?
Нет, не будут. Доставка почты между почтовыми серверами осуществляется путем поиска почтового сервера, ответственного за домен получателя, с помощью поиска DNS для записи MX. Эта запись содержит имя хоста, и затем с этим хостом будет связываться через порт 25. Невозможно каким-либо образом настроить другой порт, т.е. если на порту 25 нет сервера, доставка не удастся.
Для лучшей совместимости вы должны разрешить незашифрованные соединения для обычной почты, поскольку некоторые клиенты не поддерживают STARTTLS
.
Для почтового клиента пользователя (куда отправляется пароль) вы должны требовать наилучшего возможного шифрования.
Следует различать 2 вещи:
RFC говорит о A publicly-referenced SMTP server
, что означает MTA.
MTA обычно прослушивает 3 разных порта TCP для SMTP (S):
Для STARTTLS, если мы возьмем пример Postfix, у вас может быть 3 разных конфигурации:
Теперь настоящая проблема: в настоящее время слишком много MTA плохо настроены и не поддерживают STARTTLS, это означает, что его требование на вашем сервере может привести к тому, что некоторые из ваших писем не будут доставлены, или ваш сервер не сможет получать электронные письма от отправителей, использующих MTA не поддерживает STARTTLS.
Чтобы ускорить этот шаг, Google в своем отчет о прозрачности отображает процент электронных писем, которые шифруются при передаче. Они даже пошел дальше, теперь отображается красный замок, когда они не были зашифрованы.
Однако слишком много серверов по-прежнему не поддерживают STARTTLS, а это означает, что вы можете столкнуться со слишком большим количеством проблем, потребовав его через порт 25. Как следствие, я могу предложить вам следующую конфигурацию: