Назад | Перейти на главную страницу

Возможно ли иметь сервер электронной почты, который одновременно является совместимым и безопасным?

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 вещи:

  • MTA (агент почтового транспорта), который передает электронные письма от отправителя к получателю, обычно используя TCP-порты 25, 465 и 587.
  • MDA (агент доставки почты), который позволяет пользователям загружать / синхронизировать свои электронные письма, обычно используя TCP-порты 110 и 995 для POP3 (S) и 143 и 993 для IMAP (S).

RFC говорит о A publicly-referenced SMTP server, что означает MTA.

MTA обычно прослушивает 3 разных порта TCP для SMTP (S):

  • 25: простой SMTP, который может поддерживать STARTTLS, и это ЕДИНСТВЕННЫЙ порт, используемый для доставки электронной почты от MTA к другому MTA
  • 465: SMTP через TLS, используется пользователями для отправки электронной почты.
  • 587: простой SMTP, который может поддерживать STARTTLS, который пользователи могут использовать для отправки своих писем.

Для STARTTLS, если мы возьмем пример Postfix, у вас может быть 3 разных конфигурации:

  • никто: сервер не будет использовать STARTTLS
  • может: сервер предложит и будет использовать гибкое шифрование (STARTTLS), если доступно
  • зашифровать: сервер разорвет соединение, если STARTTLS не может быть использован

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

Чтобы ускорить этот шаг, Google в своем отчет о прозрачности отображает процент электронных писем, которые шифруются при передаче. Они даже пошел дальше, теперь отображается красный замок, когда они не были зашифрованы.

Однако слишком много серверов по-прежнему не поддерживают STARTTLS, а это означает, что вы можете столкнуться со слишком большим количеством проблем, потребовав его через порт 25. Как следствие, я могу предложить вам следующую конфигурацию:

  • SMTP порт 25: "может", как клиент, так и сервер
  • SMTPS порт 465: откройте для своих пользователей
  • SMTP-порт 587: не особо нужно
  • POP3 порт 110: не особо нужно
  • POP3S порт 995: откройте для своих пользователей
  • IMAP порт 143: не особо нужно
  • IMAPS порт 993: откройте для своих пользователей