Рейтинг:1

SMTP 550 5.1.1, но почтовый ящик существует

флаг ru

Я создаю почтовый ящик на нашем сервере Postfix. У нас есть скрипт, который синхронизирует наш LDAP с нашей веб-почтой (~RoundCube), а затем мы должны выполнить следующую команду на сервере Postfix:

echo -e "[email protected]\tOK" >> /etc/postfix/virtual_mailbox
echo -e "[email protected]\[email protected]" >> /etc/postfix/virtual_alias # если нам нужен псевдоним
postmap /etc/postfix/virtual_mailbox && postmap /etc/postfix/virtual_alias
/etc/init.d/постфиксная перезагрузка

Эта процедура работала до прошлой недели, и мы не можем объяснить/решить проблему.

Отправка тестовой почты через веб-почту во вновь созданный почтовый ящик возвращает:

<[email protected]>: хост 127.0.0.1[127.0.0.1] сказал: 550-Почтовый ящик неизвестен. Либо
    нет почтового ящика, связанного с этим 550-имя, или у вас нет
    разрешение на просмотр. 550 5.1.1 Пользователь неизвестен (в ответ на RCPT TO
    команда)

Однако Postfix отвечает 250 2.1.0 Ок к RCP TO:<[email protected]> команда:

$ nc наш.mail.server.tld 25
220 our.mail.server.tld ESMTP Postfix (CentOS)
HELO домен.tld
250 наш.mail.server.tld
ПОЧТА ОТ: <>
250 2.1.0 Ок
RCPT TO:<[email protected]>
250 2.1.0 Ок
ДАННЫЕ
Тема: тестирование
тестовая электронная почта
.
250 2.0.0 Хорошо: в очереди как 7E8B043

Но в почтовом журнале указано 550 5.1.1 Пользователь неизвестен... (лог анонимный)

# отредактировано по рекомендации Никиты Киприянова 
8 июля 15:07:36 srv postfix/smtp[30469]: > 127.0.0.1[127.0.0.1]:10024: RCPT TO:<[email protected]> ORCPT=rfc822;[email protected]
8 июля 15:07:36 srv postfix/smtp[30469]: < 127.0.0.1[127.0.0.1]:10024: 250 2.1.5 Получатель <[email protected]> OK
8 июля 15:07:37 srv postfix/smtpd[30492]: <localhost[127.0.0.1]: RCPT TO:<[email protected]> ORCPT=rfc822;[email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: extract_addr: input: <[email protected]>
8 июля 15:07:37 srv postfix/smtpd[30492]: smtpd_check_addr: [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: отправить адрес attr = [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: значение входного атрибута: [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: rewrite_clnt: local: [email protected] -> [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: отправить адрес attr = [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: значение входного атрибута: [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: resolve_clnt: `' -> `[email protected]' -> transp=`lmtp' host=`127.0.0.1:24' rcpt=`test@domain .tld' flags= class=virtual
8 июля 15:07:37 srv postfix/smtpd[30492]: ctable_locate: установить ключ входа [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: extract_addr: in: <[email protected]>, результат: [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: ctable_locate: оставить существующий ключ входа [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: milter_macro_lookup: результат "[email protected]"
8 июля 15:07:37 srv postfix/smtpd[30492]: ctable_locate: оставить существующий ключ входа [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: ctable_locate: оставить существующий ключ входа [email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: milter8_rcpt_event: milter inet:127.0.0.1:8891: rcpt <[email protected]> ORCPT=rfc822;[email protected]
8 июля 15:07:37 srv postfix/smtpd[30492]: событие: SMFIC_RCPT; макросы: {rcpt_addr}[email protected] {rcpt_host}=127.0.0.1:24 {rcpt_mailer}=lmtp
8 июля, 15:07:37 srv postfix/lmtp[30505]: > 127.0.0.1[127.0.0.1]:24: RCPT TO:<[email protected]>
8 июля 15:07:37 srv cyrus/lmtp[18927]: проверка_пользователя (user.test) не удалась: почтовый ящик не существует
8 июля 15:07:37 srv postfix/lmtp[30505]: отправить attr original_recipient = [email protected]
8 июля, 15:07:37 srv postfix/lmtp[30505]: отправить атрибут получателя = [email protected]
8 июля, 15:07:37 srv postfix/lmtp[30505]: отправить attr dsn_orig_rcpt = rfc822;[email protected]
8 июля 15:07:37 srv amavis [23265]: (23265-17) Пройдено BAD-HEADER-7 {RelayedInternal}, MYNETS LOCAL [172.16.10.39]: 2828 <> -> <[email protected]>, mail_id : nTFlKNl0Vr0b, попаданий: 5,677, размер: 300, в очереди: C7DB445, 1476 мс
8 июля 15:07:37 srv postfix/smtp[30469]: 73B0143: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, задержка=49, задержки=48/0/ 0/1.5, dsn=2.0.0, статус=отправлено (250 2.0.0 от MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 OK: в очереди как C7DB445)
8 июля 15:07:37 srv postfix/lmtp[30505]: C7DB445: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:24, задержка=0,11, задержки=0,09/0/ 0/0.03, dsn=5.1.1, status=bounced (хост 127.0.0.1[127.0.0.1] сказал: 550-почтовый ящик неизвестен. Либо нет почтового ящика, связанного с этим 550-именем, либо у вас нет прав для его просмотра 550 5.1.1 Пользователь неизвестен (в ответ на команду RCPT TO))

Любая идея об этом поведении? Почему RCPT TO возвращается 250 2.1.5 Ок с netcat, но в конце концов застряли с 550 5.1.1 Пользователь неизвестен ?


# ================================================ ==========================
# тип сервиса private unpriv chroot wakeup maxproc command + args
# (да) (да) (да) (никогда) (100)
# ================================================ ==========================
smtp инет n - n - - smtpd
отправка inet n - n - - smtpd
  -o smtpd_tls_security_level=шифровать
  -o smtpd_sasl_auth_enable=да
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,отклонить
  -o milter_macro_daemon_name = ПРОИСХОЖДЕНИЕ
smtps inet n - n - - smtpd
  -o smtpd_tls_wrappermode=да
  -o smtpd_sasl_auth_enable=да
  -o smtpd_client_restrictions=permit_sasl_authenticated,отклонить
  -o milter_macro_daemon_name = ПРОИСХОЖДЕНИЕ
#628 инет n - n - - qmqpd
пикап fifo n - n 60 1 пикап
очистка unix n - n - 0 очистка
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr unix --n 1000? 1 тлсмгр
переписать unix--n--тривиально-переписать
отказ unix - - n - 0 отказ
отложить unix - - n - 0 отказов
трассировка unix - - n - 0 отказов
проверить unix - - n - 1 проверить
прошить unix n - n 1000? 0 флеш
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
# При ретрансляции почты в качестве резервного MX отключите fallback_relay, чтобы избежать зацикливания MX
реле unix - - n - - smtp
        -o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
ошибка unix - - n - - ошибка
повторите попытку unix - - n - - ошибка
отбросить unix - - n - - отбросить
локальный unix - n n - - локальный
виртуальный unix - n n - - виртуальный
lmtp unix - - n - - lmtp
наковальня unix - - n - 1 наковальня
архив unix - - n - 1 архив

smtp-amavis unix - - n - 8 smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=да
    -o отключить_dns_lookups=да

127.0.0.1:10025 инет n - n - - smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=нет
    -o smtpd_client_restrictions=разрешить_мои сети, отклонить
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=разрешить_мои сети, отклонить
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o мои сети=127.0.0.0/8,<другие_действительные_сети>
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Nikita Kipriyanov avatar
флаг za
Вы можете временно добавить 127.0.0.1 в `debug_peer_list`, для которого демоны Postfix будут выполняться с повышенным уровнем журнала.В (значительно расширенном) журнале будет объяснено, как интерпретируется каждая директива конфигурации, и это должно дать подсказку, где происходит сбой. На данный момент я уверен, как еще это отладить, при условии, что вы используете конфигурацию, которая ранее «привыкла работать».
Sumak avatar
флаг ru
Спасибо за ваш отзыв. Я сделал это и отредактировал свой ответ. Может ли это быть связано с изменениями в наших записях DNS? Мы собираемся перенести наш почтовый сервер, и поставщики услуг, с которыми мы работаем, возможно, уже настроили DNS.
Michael Hampton avatar
флаг cz
Ну это странно. Также опубликуйте файл `main.cf`.
Nikita Kipriyanov avatar
флаг za
Вау, я кое-что заметил. Согласно вашему журналу, 73B0143 успешно получен через SMTP на порту 10025 как C7DB445, но сразу же эта штука пытается внедрить его через LMTP на порт 24, где он возвращается. Какие вещи прослушивают порты 10025 (который принимает через smtp и ретранслирует через lmtp) и 24 (который отклоняет через lmtp)?
Sumak avatar
флаг ru
Это необычно? Боюсь, у нас недостаточно знаний, чтобы интерпретировать этот факт. `smtpd` прослушивает порт 10025 (с параметрами, указанными в конце `master.cf`), а `[khelper]` порт 24.
anx avatar
флаг fr
anx
Вы упомянули текущие миграции... мог ли кто-то разместить пустой LDAP-сервер в домене, откуда Cyrus все еще напрямую получал своих пользователей?
anx avatar
флаг fr
anx
`[khelper]` больше похоже на поток ядра, чем на службу LMTP. Поищите конфигурацию *Cyrus*, скорее всего она слушает `24/tcp`
Рейтинг:0
флаг fr
anx

Postfix просто возвращает то, что ему сообщила служба LMTP, которая пыталась передать почту для доставки. Если расширенный псевдоним правильный, вы должны проверить что сервис, а не (только) Postfix.


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

Следующий шаг диагностики: Сравните список пользователей, доступный для вашего MDA (Сайрус IMAPd, судя по сообщению об ошибке) к фактическому результату ваших виртуальных отображений postfix.

Запросите свои постфиксные карты с помощью следующих команд:

postmap -v -v -q [email protected] hash:/etc/postfix/virtual_mailbox
postmap -v -v -q [email protected] hash:/etc/postfix/virtual_alias

Подобный запрос лучше, чем просто уверенность в том, что вы выполнили команду правильно, потому что дубликаты и опечатки более очевидны. я считать ваша настройка обычно приводит только к один из двух карт.

Запросите список пользователей службы LMTP, используя информацию, которую вы найдете в ее конфигурации, чтобы убедиться, что почтовый ящик действительно существует. Чтобы напрямую запросить LDAP, используйте ldapsearch -U .. -H ldaps://.., для исследования конкретных серверов используйте предоставляемые ими утилиты: для Голубятня, использовать пользователь doveadm.. - за Сайрус использовать cyrusadm информация [имя], ..

Учтите также режимы сбоя, такие как сервер LDAP, на котором вы храните свой список пользователей, был временно или постоянно недоступен для сервера или сценария обслуживания, предназначенного для извлечения этих данных.


Вы могли бы облегчить это и все еще можете облегчить будущую отладку, добавив подходящие syslog_name варианты в вашем master.cf - таким образом вы можете легче сказать, какая из ваших (очевидно, несколько похожих) служб зарегистрировала какие строки.

отправка inet n - n - - smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=шифровать
 -о...
...
smtps inet n - n - - smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=да
 -о...
...
127.0.0.1:10025 инет n - n - - smtpd
 -o syslog_name=постфикс/описание
 -о...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.