Лучший отвечающий
Exchange Server 2013 как SMTP сервер с аутентификацией

Вопрос
-
Всем привет.
Задача такая.
Есть Exchange Server 2013 + Edge + TMG, все работает отлично. Появилась задача открыть эксч наружу в качестве SMTP сервера для использования его как сервера отправки почты из стороннего программного обеспечения, находящегося вне компании с авторизацией.
Было уже испробовано множество описанных способов типа:
http://geekswithblogs.net/ksellenrode/archive/2014/05/03/156170.aspx
Ни по одному из способов не вышло сделать отправку писем с аутентификацией, если анонимное подключение, то все работает, но так не годится понятное дело.
Что было сделано: Создан ReceiveConnector на порт 587 с параметрами:
Transport Layer Security (TLS)
Basic authenticationOffer basic authentication only after starting TLS
Integrated Windows authentication
Exchange users
на TMG проброшен порт 587 на сервер эксча (не эджа)
При попытке отправить письмо с аутентификацией получаем ошибку:
Send-MailMessage -SmtpServer mail.domain.ru -Credential $credential -From 'info@domain.ru' -To 'xxx@mail.ru' -Subject 'Test email' -Port 587 -UseSsl
Удаленный сертификат недействителен согласно результатам проверки подлинности.
Если без -UseSsl, то:
Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Отклик сервера: 5.7.1 Client was not authenticated
И так при любых манипуляциях из вышеуказанных постов.
Есть мысли на этот счет?
- Изменено Aleksandr Peresichan 13 июля 2018 г. 21:32
13 июля 2018 г. 21:27
Ответы
-
При попытке отправить письмо с аутентификацией получаем ошибку:
Send-MailMessage -SmtpServer mail.domain.ru -Credential $credential -From 'info@domain.ru' -To 'xxx@mail.ru' -Subject 'Test email' -Port 587 -UseSsl
Удаленный сертификат недействителен согласно результатам проверки подлинности.
Здесь возможны 2 варианта решения
1. Посмотрите (например, пользуясь Get-ExchangeCertificate и, затем, оснасткой Сертификаты в mmc, нацеленной на хранилище компьютера сервера Exchange), какой сертификат используется и кем он выдан, и добавьте корневой сертификат цепочки ЦС (или, если сертификат самоподписанный - сам сертификат, без ключа) в список корневых сертифкатов, которым доверяет посылающая программа; или
2. Отключите проверку подлинности сертификата
Как делается то или другое - зависит от посылающей программы. Для Send-MailMessage (как и для любой программы, использующей Windows CryptoAPI) вариант 1 делается добавлением сертификата в харнилище доверенных корневых центров сертификации компьютера или пользователя, под которым работает программа. Вариант 2 для Send-MailMessage не предусмотрен, но в вашей программе он может быть (и даже - может быть единственно возможным :-) )
Слава России!
- Предложено в качестве ответа Vasilev VasilMicrosoft contingent staff 17 июля 2018 г. 8:47
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 20 июля 2018 г. 7:00
14 июля 2018 г. 6:59 -
Применяется тот соединитель, к которому происходит обращение. Выбор порта 587 на MBX как места назначения при отправке вполне разумен - именно на этом порту работает стандартный соединитель для клиентских подключений, создаваемый при установке по умолчанию.
Но ничто не мешает создать другой соединитель - на нужном порту и с нужными настройками безопасности. Только надо иметь в виду, что передавать пароль открытым текстом (базовая проверка подлинности без использования SSL или команды STARTTLS в сессии SMTP) - весьма небезопасно.
Слава России!
- Изменено M.V.V. _ 14 июля 2018 г. 12:38
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 20 июля 2018 г. 7:00
14 июля 2018 г. 7:26
Все ответы
-
Уверены, что на 587 именно новый коннектор почту принимает? Попробуйте другой порт использовать, а не стандартный 587. Ограничьте список отправителей на коннекторе. Попробуйте также через telnet отправить письмо.14 июля 2018 г. 6:40
-
При попытке отправить письмо с аутентификацией получаем ошибку:
Send-MailMessage -SmtpServer mail.domain.ru -Credential $credential -From 'info@domain.ru' -To 'xxx@mail.ru' -Subject 'Test email' -Port 587 -UseSsl
Удаленный сертификат недействителен согласно результатам проверки подлинности.
Здесь возможны 2 варианта решения
1. Посмотрите (например, пользуясь Get-ExchangeCertificate и, затем, оснасткой Сертификаты в mmc, нацеленной на хранилище компьютера сервера Exchange), какой сертификат используется и кем он выдан, и добавьте корневой сертификат цепочки ЦС (или, если сертификат самоподписанный - сам сертификат, без ключа) в список корневых сертифкатов, которым доверяет посылающая программа; или
2. Отключите проверку подлинности сертификата
Как делается то или другое - зависит от посылающей программы. Для Send-MailMessage (как и для любой программы, использующей Windows CryptoAPI) вариант 1 делается добавлением сертификата в харнилище доверенных корневых центров сертификации компьютера или пользователя, под которым работает программа. Вариант 2 для Send-MailMessage не предусмотрен, но в вашей программе он может быть (и даже - может быть единственно возможным :-) )
Слава России!
- Предложено в качестве ответа Vasilev VasilMicrosoft contingent staff 17 июля 2018 г. 8:47
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 20 июля 2018 г. 7:00
14 июля 2018 г. 6:59 -
Я бы отрыл логи и посмотрел полную smtp-сессию. Alexey Klimenko правильно заметил, что может применяться совсем другой соединитель.
14 июля 2018 г. 7:06 -
Применяется тот соединитель, к которому происходит обращение. Выбор порта 587 на MBX как места назначения при отправке вполне разумен - именно на этом порту работает стандартный соединитель для клиентских подключений, создаваемый при установке по умолчанию.
Но ничто не мешает создать другой соединитель - на нужном порту и с нужными настройками безопасности. Только надо иметь в виду, что передавать пароль открытым текстом (базовая проверка подлинности без использования SSL или команды STARTTLS в сессии SMTP) - весьма небезопасно.
Слава России!
- Изменено M.V.V. _ 14 июля 2018 г. 12:38
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 20 июля 2018 г. 7:00
14 июля 2018 г. 7:26