Настройте exim для аутентификации пользователей, а затем ретранслируйте SMTP-почту через smarthost, используя разные аутентификации

Я пытаюсь использовать Exim для работы в качестве SMTP-сервера, который пересылает почту как смарт-хост в нашу службу Mandrill. (Смысл этого в том, чтобы использовать Exim для аутентификации наших пользователей на почту IMAP и аутентификации их на нашем сервере LDAP, полагаясь на Mandrill для доставки.)

У меня изначально был exim, настроенный на smarthost, и настройки Mandrill были в файле.client в папке Exim. Это работало правильно, и я мог использовать telnet или MUA для отправки почты, и он был правильно передан Mandrill.

Затем я включил TLS и аутентификацию и запретил пользователям, не прошедшим аутентификацию, использовать exim. Это также работало правильно - TLS работает, и я могу подключиться и аутентифицироваться. Но что-то в этой аутентификации сломало ретранслятор smarthost - я подозреваю, потому что exim передает мои "локальные" учетные данные аутентификации LDAP в Mandrill вместо указанных.client учетных данных, которые я указал. Ошибка в моем файле mainlog выглядит так:

2014-04-24 06:54:53 Ошибка SMTP 1WchYz-0007Db-3E от удаленного почтового сервера после RCPT TO:: host smtp.us-east-1.mandrillapp.com [54.237.217.91]: 454 4.7.1: Реле доступ закрыт

Как я могу настроить exim для аутентификации входящих пользователей, но использовать другой набор учетных данных для аутентификации в SMTP-ретрансляторе?

1 ответ

Решение

Две аутентификации независимы.

Вы разрешаете exim аутентификацию на исходящих соединениях с помощью аутентификатора клиента. Вам нужно будет настроить строку в exim passwd.client файл для каждого сервера, на котором вы должны пройти аутентификацию. Справочная страница для exim_passwd_client описывает формат файла паролей.

Входящая аутентификация выполняется с помощью аутентификатора сервера. Они, вероятно, закомментированы в конфигурации по умолчанию. Справочная страница для exim_passwd описывает файл passwd. Следует рассмотреть возможность включения TLS на порте отправки (587), чтобы пользователи могли отправлять сообщения. Следующие макросы в звездочке файла должны включить входящую аутентификацию.

auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
daemon_smtp_ports = 25 : 587

Чтобы позволить аутентифицированным пользователям отправлять исходящую почту, вам нужно будет принять подключения в определенных точках. Где ваша конфигурация имеет правило для обработки локальных отправителей, таких как:

accept
   hosts = +relay_from_hosts
   control = submission/sender_retain

Добавьте правило как:

accept
   authenticated = *
   control = submission/sender_retain
Другие вопросы по тегам