Настройте 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