iRedMail: Domain alias not working with some external mails (diacritics/punycode)

После успешной настройки сервера iRedMail для моего основного домена, я попытался добавить мой вторичный домен в качестве псевдонима, выполнив следующие шаги: https://docs.iredmail.org/sql.add.alias.domain.html

Это не помогло, поэтому я дополнительно добавил вторичный домен в /etc/postfix/main.cf:

virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual

Примечание: я не удалял существующие записи mysql в разделе virtual_alias_maps.

И ввел отображение в /etc/postfix/virtual и выполнил "postmap /etc/postfix/virtual" после этого:

@domain2.tld     @domain1.tld

Это работает внутри сервера. user1@domain1.tld может отправлять на user2@domain2.tld и пользователь2 получит почту в свой почтовый ящик. Внешние письма также продолжают приходить при отправке на user@domain1.tld.

К сожалению, это не работает с внешней почтой на вторичный домен. В моем /var/logs/mail.log я нахожу следующие строки:

postfix/smtpd[5541]: NOQUEUE: reject: RCPT from mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 <user1@domain2.tld>: Recipient address rejected: Server configuration problem; from=<username@gmail.com> to=<user1@domain2.tld> proto=ESMTP helo=<mail-oi1-x231.google.com>

И:

postfix/smtpd[5644]: warning: problem talking to server 127.0.0.1:12340: Connection timed out

На порту 12340 dovecot прослушивает:

dovecot    513      root   67u  IPv4  17087      0t0  TCP 127.0.0.1:12340 (LISTEN)

В моем dovecot log я неоднократно нахожу следующую строку:

dovecot: quota-status: Error: quota-status: Client sent invalid recipient address: Invalid character in path

После дальнейшего тестирования с различными внешними почтовыми хостерами я понял, что 2 из 4 писем приходят при отправке на вторичный домен. GMail и Hotmail не дошли, а exchange моей компании и какой-то другой веб-провайдер дошли.

И на этом я застрял. Я подозреваю одно из двух: Либо я просто пропустил необходимую конфигурацию, что кажется весьма вероятным, поскольку я никогда раньше не настраивал почтовый сервер на Debian, либо ошибка dovecot вызвана моим вторичным доменом. Вторичный домен содержит умляут (ä/ö/ü), что, как я хорошо знаю, может вызвать некоторые проблемы. Поэтому я также владею доменом в его варианте в формате punycode. Поэтому всякий раз, когда я добавлял свой вторичный домен с умляутом в конфигурацию, я также добавлял его версию в формате punnycode, полагая, что это решит любые проблемы в этом отношении.

iRedMail/postfix/dovecot/whateverelseisinvolved, похоже, прекрасно работают с punnycode/умлаутами как таковыми, просто, похоже, это зависит от отправителя, поскольку только половина писем теряется (отправитель не получает ошибку). Есть предположения, почему так происходит или какие журналы я могу проверить, чтобы разобраться в этом? Может быть, я просто не настроил что-то очевидное?

Любой толчок в правильном направлении будет высоко оценен.

С уважением, Snot

==== Основная информация ====

  • Версия iRedMail: 1.4.0 MARIADB edition
  • Имя и версия дистрибутива Linux/BSD: Debian GNU/Linux 10 (buster) - 10.10
  • Используемая БД: MySQL (MariaDB)
  • Веб-сервер: Nginx

==== Редактировать ====

Что касается базовой установки; После чистой установки Debian 10 я следовал шагам в этом руководстве https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server

Любой специфический конфиг, который отличается от руководства, был упомянут в посте. Я дополнительно выпустил сертификат, который включает основной домен и вторичный домен в punnycode.

Вот различные журналы при загрузке:

/var/log/mail.log:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s amavis[573]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix
Aug 14 14:24:39 s amavis[1915]: Net::Server: Group Not Defined.  Defaulting to EGID '121 121'
Aug 14 14:24:39 s amavis[1915]: Net::Server: User Not Defined.  Defaulting to EUID '113'
Aug 14 14:24:39 s amavis[1915]: No ext program for   .F, tried: unfreeze, freeze -d, melt, fcat
Aug 14 14:24:39 s amavis[1915]: No ext program for   .zoo, tried: zoo, unzoo
Aug 14 14:24:39 s amavis[1915]: No decoder for       .F   
Aug 14 14:24:39 s amavis[1915]: No decoder for       .zoo 
Aug 14 14:24:39 s amavis[1915]: Using primary internal av scanner code for clamav-socket
Aug 14 14:24:39 s amavis[1915]: Found secondary av scanner clamav-clamscan at /usr/bin/clamscan

/var/log/dovecot/dovecot.log:

Aug 14 14:24:26 s dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global

grep postfix /var/log/syslog:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix

Я отключил функции quota и включил SMTPUTF8 в моем postfix main.cf, никаких заметных изменений, кроме дополнительной строки при загрузке в mail.log:

Aug 14 14:59:46 s amavis[571]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"

К сожалению, поведение все еще такое же. После дальнейшего анализа логов я понял, что похоже, что письма от провайдеров, которые приходят, отправляются через punycode (даже если я специально отправлял их на домен с умляутом/не-ASCII-символом). GMail, с другой стороны, фактически отправляет почту на домен, содержащий умлаут (не punycode, даже если я специально использую формат punycode в почтовом адресе получателя). Таким образом, мне нужно либо научить мой сервер обрабатывать не-ASCII символы, либо научить Google отправлять через punycode. Или научить мой сервер переводить умляуты в punycode. Вариант 2, очевидно, не подходит, так что остается 1 или 3.

mail.log запись от не-GMail хостера mail:

postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=<user@domain1.tld>, orig_to=<user@domain2InPunycode.tld>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays=0.1/0/0.01/3.9, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4Gn0zm04JHzLxc0)

mail.log запись от GMail mail:

Aug 14 15:06:44 s postfix/smtpd[2281]: warning: problem talking to server 127.0.0.1:12340: Connection timed out
Aug 14 15:06:44 s postfix/smtpd[2281]: NOQUEUE: reject: RCPT from mail-ot1-x32b.google.com[2607:f8b0:4864:20::32b]: 451 4.3.5 <user@dömain2.tld>: Recipient address rejected: Server configuration problem; from=<gmailuser@gmail.com> to=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>
1
задан 13 August 2021 в 16:02
1 ответ

Поскольку я до сих пор не вижу полного решения (перезапись адреса в Postfix может сработать, но это будет печальный конец этой истории), я собираю свои шаги диагностики в ответ:

  • Получите эффективный, например дамп с помощью команд postfix -n и postfix -M, если почтовый сервер обеспечивает четкое понимание того, как работают различные службы (в первую очередь amavis). интегрированный.

  • Отдельно протестируйте не-ASCII в локальной части, в неадресных заголовках и в доменных именах (там как A-Label, закодированный с помощью Punycode, чтобы начать как xn--, и как Unicode, непосредственно содержащий не -ASCII-буквы)

  • Отключите SMTPUTF8 в Postfix. Dovecot еще не полностью поддерживает обработку почты, которая может быть получена таким образом, и это не обязательно и не обязательно полезно для решения проблем в amavis.

  • У amavis есть настройка $log_level (в Debian, предположительно в /etc/amavis/conf.d/), которая может быть обнулена как часть вашего iRedMail дистрибутив.

  • Если у вас есть возможность переключить это, запуск amavis в качестве фильтра перед очередью m (вместо фильтра smtp f после очереди) может выявить или не выявить более полезная ошибка или поведение.

  • amavis исправила некоторые проблемы с SQL+Unicode, характерные для mariadb после версии 2.11, которую вы используете, полезная ошибка может быть в журнале базы данных или может быть исключена путем сравнения одного и того же стека, настроенного с функционально идентичным бэкендом postgres (postgres не использует функции/ошибки Unicode MySQL и MariaDB)

0
ответ дан 5 September 2021 в 02:44

Теги

Похожие вопросы