Вопрос или проблема
Я настроил 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. Желательно со временем мигрировать основные протоколы, используемые программным обеспечением MUA, к неявному TLS для консистентности, а также по дополнительным причинам, обсуждаемым в Приложении A. Тем не менее, для максимального использования шифрования для отправки, желательно поддерживать оба механизма для отправки сообщений через 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) слишком легко становится объектом атаки “человек посередине”.
.
Ответ или решение
Вопрос о различиях между smtps (порт 465) и submission (порт 587) в Postfix часто возникает у ИТ-специалистов, которые настраивают почтовые серверы для безопасной отправки сообщений. Чтобы разобраться в этом, необходимо учитывать эволюцию интернет-стандартов и их текущую реализацию.
Теория
Исторически сложилось так, что порт 465 использовался для SMTP-соединений, защищённых с использованием SSL. Этот способ называется "smtps" и предполагает использование SSL/TLS сразу при установке соединения (так называемый Implicit TLS). Однако использование порта 465 было отменено с появлением механизма STARTTLS, который предоставляет возможность обновления незашифрованного соединения до защищённого после первоначального установления. Это решение связано с удобством и гибкостью реализации на порту 587, который используется для "submission" — процесса отправки электронных писем от клиентов на серверы.
Пример
Согласно RFC 6409 и более новым RFC 8314, порт 587 рекомендуется для использования клиентами при отправке сообщений. На нем предусмотрена поддержка STARTTLS, позволяющая сначала установить обычное соединение и лишь затем договариваться о шифровании. Это предоставляет дополнительную гибкость и совместимость с системами, не поддерживающими автоматическое TLS. Кроме того, RFC 8314 определяет, что в целях безопасности и для предотвращения злоупотреблений на почтовых серверах следует поддерживать и прямое шифрование на порту 465 (Implicit TLS), и механизм STARTTLS на порту 587 в течение определенного переходного периода.
Применение
В настоящее время лучшей практикой для настройки Postfix является поддержка обоих вариантов: как смтпс на порту 465, так и подача на порт 587 с использованием STARTTLS. Это объясняется следующими причинами:
-
Безопасность соединений: Порт 465 предлагает более безопасную альтернативу за счет использования прямого TLS, что устраняет риск атак на стадии переговоров STARTTLS, таких как "Downgrade Attack". Таким образом, использование порта 465 может быть важно для клиентов, для которых критично немедленное шифрование всех данных.
-
Совместимость и переходный период: Многие существующие системы и приложения еще используют порт 587 и механизм STARTTLS, поэтому поддержка обоих вариантов обеспечит более плавный переход к полной безопасности и не вызовет проблем несовместимости с существующей клиентской базой.
-
Гибкость настроек политики безопасности и аутентификации: На порту 587 через STARTTLS можно гибко управлять политиками для аутентификации пользователей и противодействия спам-атакам, что особенно важно для корпоративных окружений.
На фоне вышеописанных обстоятельств, текущие руководящие принципы RFC 8314 предлагают для почтовых серверов поддерживать оба протокола. Это позволяет гарантировать максимальную безопасность, а также гибкость и совместимость в условиях перехода к более защищенному сетевому окружению.
Заключение
Подытоживая, следует отметить, что для настройки Postfix еще на ближайшие несколько лет целесообразно поддерживать и smtps на порту 465, и submission с поддержкой STARTTLS на порту 587. Это обеспечит гибкость, безопасность и широкую совместимость, что критично в современном мире, где безопасность данных является приоритетной задачей для любого ИТ-специалиста.