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

Exim + Dovecot отправляет или получает электронное письмо с ошибкой: Неизвестный пользователь

Я использую почтовый сервер с 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 файлы современных дистрибутивов.