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

Настройте exim4 для использования Microsoft Exchange в качестве smarthost

Моя компания недавно установила среду Microsoft Exchange, управляемую Active Directory, для консолидации исходящей почты. У нас есть набор промежуточных серверов, которые теперь должны использовать наш MSEXCHG в качестве smarthost для исходящей почты.

Эти серверы расположены в демилитаризованной зоне, поэтому решение, за которое проголосовали Аутентификация на смарт-хосте Exchange 2010? не является альтернативой, поскольку мы не можем позволить серверу в демилитаризованной зоне просто волей-неволей отправлять почту через наш сервер Exchange.

Что мы сделали в MSEXCHG:

Что мы сделали в exim4 (8):

После запуска exim с конфигурацией, описанной выше, я получаю следующие две ошибки TLS в главный журнал:

Затем наш MSEXCHG отказывается отправлять почту, и появляется следующая (окончательная) запись в журнале:

** kiewiet@contoso.com R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<root@contoso-stage.com> SIZE=1538: host ex.contoso.com [192.168.1.8]: 530 5.7.1 Client was not authenticated

Что еще я пробовал:

Итак, обязательный вопрос: как заставить exim использовать нашу среду MSEXCHG в качестве smarthost?

Наша проблема была довольно специфичной для нашей установки. У нас есть несколько серверов Exchange, работающих параллельно с балансировщиком нагрузки, выступающим в качестве точки доступа. LB был неправильно настроен, из-за чего он не предлагал какую-либо панель методов аутентификации. NTLM и GSSAPI даже после успешного STARTTLS рукопожатие.

Углубленное тестирование через swaks jetmore.org (очень рекомендую этот инструмент) показал это.

Имеет ли ваша организация собственный центр сертификации для внутренних серверов? Возможно, вам нужно добавить сертификаты CA для сервера Exchange в хранилище доверенных сертификатов для Exim? Многие продукты не очень хорошо сообщают об этой ошибке (я не знаю, сообщает Exim или нет).

Wireshark (сначала захват на сервере с tcpdump -p -s0 -w /tmp/foo.pcap затем скопируйте на локальную рабочую станцию ​​с помощью Wireshark) должен иметь возможность отображать сертификат сервера, отправленный из Exchange, и если после этого клиент зависает, то распространенной причиной является отсутствие сертификата CA.

Проблема связана с сертификатами TLS. Порядок решения:

Установите openssl (если его нет)

sudo apt-get install openssl

Создавать собственные сертификаты

sudo / usr / share / doc / exim4-base / примеры / exim-gencert

Добавить TLS в основной SMTP

sudo nano /etc/exim4/exim4.conf.localmacros

или выберите файл .conf по умолчанию

main_tls_enable = '1'