Постфикс: Адрес получателя отклонен: Неверный HELO/EHLO

Постфикс: Адрес получателя отклонен: Неверный HELO/EHLO

Похоже, проблема в том, что MS Outlook 2007 по какой-то странной причине не отправляет SMTP AUTH только для одного конкретного домена.

Я запускаю сервер iRedMail (он использует стандартный Debian 7/wheezy, Postfix 2.9.6-2) для своего домена и нескольких десятков клиентских доменов. Проблема в том, что у меня есть клиент, который не может отправить письмо мне самому (не только на свой адрес электронной почты, но и на весь домен) - оно отклоняется из-за, reject_non_fqdn_helo_hostnameно клиент использует SMTP AUTH и правильно настроил его, поэтому он должен обойти проверку FQDN. Похоже, что MUA не использует SMTP AUTH только для моего адреса электронной почты и адреса электронной почты моих коллег.

Кто-нибудь видел это раньше? Как обойти эту проблему? Любой вклад будет высоко оценен!

Может это связано с MUA? Она использует Outlook (не Express)?

Взгляните на следующие фрагменты журналов, показывающие различные ситуации. Все было поймано в той же конфигурации/те же MUA/IP, ...:

1) это нормально: мой клиент отправляет электронную почту на сторонний сервер; используя SMTP AUTH

28 мая 13:02:13 email2 postfix/smtpd[1191]: подключение из <censored>
28 мая 13:02:13 email2 postfix/smtpd[1191]: 28A5D35E61DC: client=<censored>, sasl_method=LOGIN, sasl_username=<[email protected]>
28 мая 13:02:26 email2 postfix/cleanup[1435]: 28A5D35E61DC: message-id=<006c01ce5b92$d33805e0$79a811a0$@cz>
28 мая 13:02:44 email2 postfix/qmgr[376]: 28A5D35E61DC: from=<[email protected]>, размер=4392922, nrcpt=7 (очередь активна)
28 мая 13:02:44 email2 postfix/smtp[1580]: 28A5D35E61DC: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=32, delays=31/0/0/0.88, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: помещен в очередь как B061435E61DE)
28 мая 13:02:47 email2 postfix/qmgr[376]: 28A5D35E61DC: удалено

2) это нормально: мой клиент отправляет электронную почту на локальный аккаунт (ее coleque); она использует SMTP AUTH

28 мая 13:06:18 email2 postfix/smtpd[2519]: подключение из <censored>
28 мая 13:06:18 email2 postfix/smtpd[2519]: 49CE735E61D4: client=<censored>, sasl_method=LOGIN, sasl_username=<[email protected]>
28 мая 13:06:18 email2 postfix/cleanup[429]: 49CE735E61D4: message-id=<007201ce5b93$5df069c0$19d13d40$@cz>
28 мая 13:06:19 email2 postfix/qmgr[376]: 49CE735E61D4: from=<[email protected]>, размер=10875, nrcpt=1 (очередь активна)
28 мая 13:06:19 email2 postfix/smtp[2295]: 49CE735E61D4: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.6, delays=1.2/0/0/0.43, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: помещен в очередь как CC61F35E61D7)
28 мая 13:06:19 email2 postfix/qmgr[376]: 49CE735E61D4: удалено

3) проблема, электронное письмо отправлено на мой аккаунт (тот же сервер, но другой домен), НЕ используя SMTP AUTH???:

28 мая 13:04:38 email2 postfix/smtpd[1433]: подключение из <censored>
28 мая 13:04:38 email2 postfix/smtpd[1433]: NOQUEUE: reject: RCPT from <censored>: 554 5.7.1 <my_email>>: Адрес получателя отклонен: Неверный HELO/EHLO; Должно быть полное доменное имя или адрес, а не «xxx»; from=<[email protected]> to=<мой_адрес> proto=ESMTP helo=
28 мая 13:04:41 email2 postfix/smtpd[1433]: отключение от <censored>

Часть конфигурации постфикса:

smtpd_sender_restrictions = разрешение_моихсетей,
                            отклонить_аутентифицированный_отправитель_несоответствие_логина,
                            permit_sasl_authenticated
smtpd_recipient_restrictions = reject_unknown_sender_domain,
                               отклонить_неизвестный_домен_получателя,
                               отклонить_не_полное_доменное_отправитель,
                               отклонить_не_полное_имя_получателя,
                               отклонить_неуказанного_получателя,
                               проверка_политики_службы inet:127.0.0.1:7777,
                               проверка_политики_службы inet:127.0.0.1:10031,
                               разрешение_моихсетей,
                               permit_sasl_authenticated,
                               reject_unauth_destination
smtpd_helo_restrictions = разрешение_моихсетей,
                          permit_sasl_authenticated,
                          reject_non_fqdn_helo_hostname,
                          reject_invalid_helo_hostname,
                          check_helo_access pcre:/etc/postfix/helo_access.pcre

См. выводпостконференцияикот main.cfg

решение1

HELO/EHLO происходитдоаутентификация SMTP. Если ваш сервер настроен с reject_non_fqdn_helo_hostname = yes, он будет отклонять любые соединения с недействительным именем хостадопереходим к части SMTP AUTH.

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

решение2

Вы smtpd_recipient_restrictionsв порядке, если предположить, что все ваши клиенты ведут себя хорошо. Поскольку это не так (не отправляют правильный HELO), вы должны иметь по крайней мере что-то вроде

smtpd_recipient_restrictions = reject_unknown_sender_domain, 
                               reject_unknown_recipient_domain, 
                               permit_sasl_authenticated, 
                               reject_non_fqdn_sender, 
                               reject_non_fqdn_recipient, 
                               reject_unlisted_recipient, 
                               check_policy_service inet:127.0.0.1:7777, 
                               check_policy_service inet:127.0.0.1:10031, 
                               permit_mynetworks, 
                               reject_unauth_destination

Даже лучше:

smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/access-recipient-rfc,
    check_client_access cidr:/etc/postfix/access-client,
    check_helo_access hash:/etc/postfix/access-helo,
    check_sender_access hash:/etc/postfix/access-sender,
    check_recipient_access hash:/etc/postfix/access-recipient,
    permit_mynetworks,
    permit_sasl_authenticated, 
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client ix.dnsbl.manitu.net,
    # greylisting
    check_policy_service inet:127.0.0.1:10023,
    # policyd-weight
    check_policy_service inet:127.0.0.1:12525,
    reject_unauth_destination,
    reject_unverified_recipient,
    permit

Кроме того, вы должны интегрировать все ограничения в smtpd_recipient_restrictions. ПосколькуHELO поставляется до аутентификации SASL, бесполезно разрешать аутентификацию SASL в smtpd_helo_restrictions.

В целом, хорошей практикой будет использовать только smtpd_recipient_restrictions, поскольку вы можете сделать все там, это избавит вас от повторения действий, а сетевые издержки на соединения, которые были бы завершены после helo, не будут существенными.

решение3

Проблема была в policyd (cluebringer)... на первый взгляд в журнале этого не было видно, что отклонение было не из-за ограничения постфикса, а из-за policyd.

Фон

У меня в группе cluebringers internal_domains был только мой основной домен (после установки), а всех новых доменов там не было... Чтобы решить эту проблему, я решил очистить internal_domains, и теперь все работает так, как и ожидалось.

Спасибо за все что ты сделал для меня!

Связанный контент