SNI как эквивалент для starttls

Я пытаюсь разместить два отдельных домена на одном IP-адресе. Я хочу иметь возможность определить из команды STARTTLS, какой сертификат запрашивался, и переслать на другой почтовый сервер в зависимости от домена.

Это кажется невозможным из RFC, но есть ли какой-нибудь другой способ добиться этого на одном IP-адресе?

2 ответа

Нет , SMTP предназначен для отслеживания всего пути обмена сообщениями электронной почты в сообщении электронной почты, и каждое соединение будет прерываться и ретранслировать сообщение электронной почты. Вы должны использовать транспортные карты (для postfix), чтобы контролировать пункт назначения по адресу электронной почты, а не по имени хоста MTA.

Если вы получаете электронную почту для обоих доменов локально, то ваш почтовый сервер должен обработать это, если этот один IP-адрес перенаправляет электронную почту на два других сервера внутри, тогда транспортные карты - это то, что вы ищете с точки зрения постфиксного сервера.

Если это сервер ретрансляции исходящих сообщений (SMTPS), вам потребуется обработать аутентификацию для обоих доменов на этом сервере, поскольку вы не можете "прокси", как вы это делаете с nginx/haproxy и SNI.

Согласно документации, Postfix отправляет информацию SNI в рукопожатии TLS после STARTTLS Команда, по крайней мере, в случае, когда записи TLSA публикуются в DNS:

Когда для удаленного SMTP-сервера получены пригодные для использования записи TLSA, SMTP-клиент Postfix отправляет расширение SNI TLS в своем приветственном сообщении SSL-клиента. Это может помочь удаленному SMTP-серверу выполнить свое обещание предоставить сертификат, соответствующий его записям TLSA.

Я не уверен, что этого достаточно, но это говорит о том, что SNI можно и нужно использовать с STARTTLS; если некоторые отправители этого не делают, я бы посчитал их сломанными.

Кроме того, в этом проекте IETF указывается, что SNI должен использоваться:

Клиент использует статус проверки DNSSEC запроса SRV в своих проверках подлинности сертификата сервера. (Статус проверки TLSA не влияет на проверку идентичности сертификата сервера.) Он ДОЛЖЕН использовать расширение индикации имени сервера (TLS SNI) или его функциональный эквивалент в соответствующем протоколе приложения...

Вам не нужен SNI для этого. Большинство MTA поддерживают маршрутизацию на основе домена. Например, у postfix есть карта транспорта. Вы бы сделали карту примерно так:

foo.com     smtp:[mail.foo.com]
bar.com     smtp:[mail.bar.com]
Другие вопросы по тегам