Вопрос или проблема
Я настроил Postfix так, чтобы клиенты электронной почты использовали порт 465
(smtps
) для исходящей почты. Я не совсем понимаю разницу между smtps
(порт 465
) и submission
(порт 587
)
Какая “лучшая практика” при настройке Postfix для того, чтобы клиенты безопасно отправляли почту? Просто использовать smtps
? Или использовать и submission
, и smtps
?
Этот ответ основан на RFC 6409 и более не корректен, см. новый RFC 8314.
Порт 465 использовался для SMTP подключений, защищенных SSL. Однако использование этого порта для SMTP было прекращено с появлением STARTTLS: “Отзыв TCP порта smtps“. В наше время вы больше не должны использовать порт 465 для SMTPS. Вместо этого используйте порт 25 для приема почты для вашего домена от других серверов, или порт 587 для приема электронной почты от клиентов, которые должны отправлять письма через ваш сервер в другие домены, а значит, и другие серверы.
Дополнительно, порт 587 предназначен для отправки почты – и отправка почты предназначена для изменения сообщения и/или предоставления аутентификации:
- предлагая и требуя аутентификации для клиентов, пытающихся отправить почту
- предоставляя механизмы безопасности для предотвращения отправки нежелательной массовой почты (спам) или зараженной почты (вирусы и т.д.)
- модификация письма в соответствии с потребностями организации (перезапись части “от”)
Отправка на порт 587 должна поддерживать STARTTLS и, таким образом, может быть зашифрована. См. также RFC 6409.
Краткое содержание
Новая рекомендация – поддерживать как submissions/smtps, так и submission с STARTTLS на время, отказавшись от последнего, как только он перестанет использоваться. (Те же рекомендации также применимы к POP3 vs POP3S и IMAP vs IMAPS.)
Детали
Лучшая практика изменилась с RFC 8314 Раздел 3.3:
Когда устанавливается TCP-соединение для службы “submissions” (по умолчанию порт 465), сразу начинается установление TLS. […]
Механизм STARTTLS на порту 587 внедрен относительно широко
из-за ситуации с портом 465 (обсуждается в Разделе 7.3). Это
отличается от IMAP и POP служб, где Имплицитный TLS более широко
распространен на серверах, чем STARTTLS. Желательно со временем
перейти к Имплицитному TLS для основных протоколов, используемых
ПО MUA, ради согласованности, а также по другим причинам,
обсуждаемым в Приложении A. Однако для максимизации использования шифрования
при отправке желательно поддерживать оба механизма для Message
Submission через TLS в переходный период в несколько лет. В
результате, клиенты и серверы ДОЛЖНЫ реализовать как STARTTLS на
порту 587, так и Имплицитный TLS на порту 465 в этот переходный период.
Следует отметить, что нет значительных различий в свойствах
безопасности между STARTTLS на порту 587 и Имплицитным TLS на порту
465, если реализации выполнены правильно, и если как клиент, так и
сервер настроены требовать успешного согласования TLS перед
отправкой сообщения.
Указанное Приложение A затем углубляется в решение предпочесть имплицитный TLS для всех SMTP, POP3 и IMAP по следующим основным пунктам
- Мы хотим только иметь зашифрованные соединения везде в любом случае, так что нет смысла поддерживать версию всех этих протоколов, совместимую с прошлыми версиями, когда на практике эта совместимость не используется
- Известны случаи эксплуатации фазы согласования STARTTLS из-за идентичных проблем в нескольких реализациях
Как описано в RFC8314 Раздел 7.4, «Хотя STARTTLS на порту 587 был внедрен, он не заменил внедренное использование Имплицитного TLS отправки на порту 465.»
465/tcp (прямой TLS) в настоящее время имеет сильное интернет-распространение для SMTP MTA из-за того, что 578/tcp (STARTTLS) слишком легко перехватывается с помощью man-in-the-middle.
Ответ или решение
Относясь к вопросу о различиях между "smtps" (порт 465) и "submission" (порт 587) с точки зрения ИТ-эксперта, важно учитывать историю, специфику и современные руководства по практике использования этих портов для передачи электронной почты.
Теория:
Сначала разберемся с терминологией. Протокол SMTP (Simple Mail Transfer Protocol) и его защищенные версии играют ключевую роль в отправке электронной почты. В традиционном варианте SMTP использует порт 25, который не обеспечивает безопасность передачи. Для обеспечения безопасности были введены два подхода: "smtps" и "submission" с использованием STARTTLS.
-
SMTPS (порт 465): Изначально этот порт использовался для SMTP через SSL, который обеспечивал защищенное соединение путем установки TLS (Transport Layer Security) туннеля сразу после установки TCP-соединения. Идея заключалась в том, чтобы обеспечить зашифрованное соединение с самого начала. Однако позже, использование SMTPS на этом порте было официально признано устаревшим.
-
Submission (порт 587): Этот порт был добавлен для разделения функций обычного протокола SMTP на прием и отправку пользовательских сообщений. Концепция заключается в использовании команды STARTTLS для обновления существующего незащищенного подключения к защищенному. Authenticated Mail Submission был специально разработан для обеспечения аутентификации и предотвращения спама путем установления обязательных проверок и применения различных механизмов безопасности.
Пример:
Исторически, смещение от использования порта 25 к портам 465 и 587 вызвало путаницу. Когда IETF перестал поддерживать SMTPS, многие системы начали переходить исключительно на 587 с STARTTLS. Однако развитие стандартов и появление RFC 8314 ввело новое понимание, где оба порта, 465 и 587, рекомендованы для использования, но с разной конфигурацией безопасности.
- RFC 8314 утверждает, что хотя STARTTLS на порту 587 широко используется, он должен быть дополнен поддержкой "Implicit TLS", как это реализовано на порте 465, для обеспечения безопасности "по умолчанию", минимизируя риск MITM (man-in-the-middle) атак.
Применение:
Для системных администраторов, отвечающих за настройку почтовых серверов, в том числе Postfix, ключевым будет следование современным практикам, чтобы обеспечить наибольшую степень безопасности и совместимости. Здесь вступают в силу рекомендации RFC 8314:
-
Использование обоих портов: Настоятельно следует обеспечить поддержку как порта 587 с механизмом STARTTLS, так и порта 465 с механикой Implicit TLS. Это обеспечит максимально возможное покрытие и соответствие разным клиентским программам, которые могут иметь специфические требования аудита безопасности.
-
Минимизация рисков: Поскольку port 587 может быть подвержен атакам MITM в случае ошибок в реализации STARTTLS, обеспечение поддержания соединения Implicit TLS на порте 465 может существенно повысить уровень безопасности передачи данных.
-
Переходный период: Обеспечение гибкости путём поддержания обоих видов соединений дает время сервис-провайдерам и администраторам продвигать постепенный переход к более безопасным стандартам.
Таким образом, с позиции "best practices" текущая практика включает в себя поддержку обоих портов, что добавляет гибкость в реализации и поддержку различных клиентов. Это предоставляет клиентам возможность безопасно отправлять сообщения с использованием различных механик шифрования, минимизируя риск ошибок и атак. Это необходимый компромисс в период изменения глобальных стандартов безопасности электронной почты.