Я использую почтовый сервер с CentOS 7 + Exim 4.92 + Dovecot 2.2.36 и RoundCubeMail в качестве веб-интерфейса, и у меня возникает следующая проблема: когда я отправляю или получаю электронные письма, которые не являются admin @, info @ или dev @ и т. Д. У меня следующая ошибка:
2020-04-05 05:37:52 H=mail.mydomain.com (IP) [IP] sender verify fail for <bender@mydomain.com>: Unknown user
2020-04-05 05:37:52 H=mail.mydomain.com (IP) [IP] F=<bender@mydomain.com> A=dovecot_login:bender@mydomain.com rejected RCPT <admin@mydomain.com>: Sender verify failed
Здесь я попытался отправить электронное письмо с bender@mydomain.com на admin@mydomain.com. Но если я отправляю электронное письмо от администратора к информации или от разработчика к информации, все идет хорошо: электронные письма отправляются и принимаются, ошибок не возникает.
Если я отправлю письмо на адрес bender@mydomain.ru, я получу ответное сообщение:
Ошибка доставки почты: возвращение сообщения отправителю
Это сообщение было создано автоматически программой доставки почты.
Отправленное вами сообщение не может быть доставлено одному или нескольким получателям. Это постоянная ошибка. Не удалось выполнить следующий адрес (а):
bender@mydomain.com Неизвестный пользователь Reporting-MTA: dns; mail.mydomain.com
Действие: не удалось
Конечный получатель: rfc822; bender@mydomain.com
Статус: 5.0.0
Все почтовые ящики созданы с помощью VESTA CP и реально существуют, пароль файл находится в /home/user/conf/mail/mydomain.com/ и содержит такие записи, как:
bender:{MD5}$1$XXX:user:mail::/home/user:0
Хост почтового сервера: mail.mydomain.com
Запись MX: mail.mydomain.com
В конфигурационном файле exim есть аутентификация через dovecot:
dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
Dovecot's 10-auth.conf файл содержит следующие записи:
disable_plaintext_auth = no
auth_verbose = yes
auth_mechanisms = plain login
!include auth-passwdfile.conf.ext
Dovecot's auth-passwdfile.conf.ext:
passdb {
driver = passwd-file
args = scheme=MD5-CRYPT username_format=%n /etc/exim/domains/%d/passwd
}
userdb {
driver = passwd-file
args = username_format=%n /etc/exim/domains/%d/passwd
}
/etc/exim/domains/mydomain.com - символическая ссылка точно на /home/user/conf/mail/mydomain.com/
Я могу успешно войти в веб-интерфейс RoundCube со всеми этими почтовыми аккаунтами.
Я потратил 3 дня, пытаясь найти ответ в Интернете и попытался изменить файлы конфигурации exim / dovecot, но ничего не помогло. И я застрял. Я предполагаю, что электронные письма, такие как admin / info / dev, являются некоторыми надежными стандартами или существуют где-то в предыдущем файле passwd / config, но я не нашел их на своем сервере, и в любом случае, если я изменю хеш имени пользователя или пароля в / home /user/conf/mail/mydomain.com/passwd Я даже не могу войти в RoundCubeMail и отправить электронное письмо. Я новичок в почтовых серверах, поэтому даже понятия не имею, куда копать, я пробовал все, что мог, со своими знаниями.
P.S. exim и dovecot поставляются с VESTA CP, но я удалил и установил их вручную из-за зависимостей mysql при обновлении до последней версии.
Конфигурация вашей голубятни настроена на использование виртуальные пользователи база данных, т.е. пользователи вашей электронной почты не являются системными пользователями вашего сервера. С другой стороны Exim настроен только для доставки почты пользователям локальной системы.
Вам необходимо настроить его для использования базы данных пользователей Dovecot (см. Документация Dovecot). Следовательно:
localuser
роутерДобавьте маршрутизатор для проверки пользователей Dovecot сразу после localuser
роутер:
dovecot_local_users:
driver = accept
domains = +local_domains
# Requires fixing permission, so that Exim can read it
local_parts = lsearch;/etc/exim/domains/${domain}/passwd
transport = dovecot_delivery
Добавить transport
в любом месте транспортного раздела (как описано в вышеупомянутой ссылке):
dovecot_delivery:
driver = pipe
# The path to the dovecot-lda binary may differ on your system
command = /usr/local/libexec/dovecot/dovecot-lda -d $local_part@$domain -f $sender_address
message_prefix =
message_suffix =
log_output
delivery_date_add
envelope_to_add
return_path_add
# Set the appropriate user and group, which your mailboxes use.
#user =
#group = mail
#mode = 0660
temp_errors = 64 : 69 : 70: 71 : 72 : 73 : 74 : 75 : 78
Протестируйте конфигурацию маршрутизации с помощью:
/usr/sbin/exim4 -bt address_to_test
редактировать: The lsearch;/etc/exim/domains/${domain}/passwd
требует, чтобы вы дали Exim4 доступ к голубятняс passwd
файлы. Это может быть угрозой безопасности, поскольку этот файл содержит настоящие пароли. Так что вы можете:
Прокомментируйте local_parts
состояние. Нет passwd
потребуется доступ к файлу, но ваш сервер примет любой имя пользователя во время SMTP
сеанс и затем сгенерировать сообщение о недоставке для несуществующих имен пользователей. Поскольку большинство Return-Path
адреса в спам-сообщениях подделываются, это доставит сообщение по неправильному адресу.
Создайте и сохраните второй файл, который будет содержать только имена пользователей виртуальных пользователей:
user1:
user2:
user3:
и дать это как аргумент lsearch
.
Кстати, вам следует подумать об изменении схемы пароля в Dovecot (см. Документация Dovecot) во что-то более современное, линейное SHA512-CRYPT используется в /etc/shadow
файлы современных дистрибутивов.