Команда Helo отклонена: необходимо полное имя хоста Ошибка

10

Мой почтовый сервер занесен в черный список из-за спама. Я переконфигурировал постфикс. После этого Мои клиенты получают эту ошибку, они не могут отправлять электронные письма.

404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname

В Mail.log:

postfix/smtpd[9853]: NOQUEUE: reject: RCPT from unknown[xx.xx.xx.xx]: 
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname; 
from=<info@domain.com> to=<mail@mail.com> proto=ESMTP helo=<PLLAMNAZIFE>

В моем main.cf:

   # rules restrictions
smtpd_client_restrictions =
        permit_sasl_authenticated 
smtpd_helo_restrictions =
        permit_mynetworks,
        reject_non_fqdn_helo_hostname,
        reject_invalid_helo_hostname,
        permit
smtpd_sender_restrictions =
smtpd_recipient_restrictions = 
        permit_sasl_authenticated, 
        reject_unauth_pipelining,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain,
        permit_mynetworks, 
        reject_unauth_destination, 
        reject_invalid_hostname, 
        reject_non_fqdn_sender, 
        reject_unknown_sender_domain,
        reject_rhsbl_client blackhole.securitysage.com, 
        reject_rhsbl_sender blackhole.securitysage.com, 
        reject_rbl_client zen.spamhaus.org, 
        reject_rbl_client bl.spamcop.net, 
        reject_rbl_client blackholes.easynet.nl, 
        reject_rbl_client cbl.abuseat.org, 
        reject_rbl_client proxies.blackholes.wirehub.net, 
        reject_rbl_client dnsbl.njabl.org

smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
RedLEON
источник

Ответы:

17

Это сообщение об ошибке появляется потому, что почтовый клиент отправляет только пустое имя хоста («PLLAMNAZIFE»), а не полное имя хоста (например, «PLLAMNAZIFE.example.com») в HELO/ EHLOчасть SMTP-транзакции и ваш сервер Postfix. настроен на отклонение такой почты.

Многие почтовые клиентские программы не отправляют правильно отформатированные, полные, правильные имена хостов в HELO/ EHLO. Поскольку вы должны принимать такую ​​почту от платящих клиентов и практически не можете контролировать, какой почтовый клиент они используют (и поскольку HELOчеки на самом деле не очень полезны для блокировки спама), вероятно, лучше отключить эти HELOчеки.

Чтобы отключить HELOпроверки, удалите следующие две строки из конфигурации Postfix:

    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,

Еще лучше, удалите все smtpd_helo_restrictions = ...правило и smtpd_helo_required = yes.

саз
источник
благодарю вас. Я отключил эти строки, и теперь это работает. Я могу отправить с Mozilla Thunderbird на моем компьютере. Но мой клиент не может отправлять почту с Outlook на своем компьютере. Есть ли способ исправить эту проблему с помощью HELO check config?
RedLEON
если вы удалили проверки «helo» и ваши клиенты по-прежнему не могут отправлять почту, то это, скорее всего, другая проблема, с другой причиной отклонения в журнале почты.
Cas
Они могут отправить сейчас. Но я хочу настроить свой сервер как безопасный
RedLEON
2
с чего вы взяли, что проверки с помощью helo повышают безопасность?
Cas
8

Вы можете обойти ограничения HELO для аутентифицированных пользователей, вставив permit_sasl_authenticatedперед отклонением правила в smtpd_helo_restrictionsсписке:

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit
Стас
источник
1

Переменная имени хоста для вашего почтового сервера недействительна.

Попробуйте изменить значение myhostnameполя /etc/postfix/main.cfсо значения по умолчанию на имя вашего хоста (например, yourwebsite.comили mail.yourwebsite.com)

Джейсон Шварц
источник
0

Это заняло у меня целую вечность

Я использую сервер Centos и получаю отскочившую электронную почту с сообщением об ошибке «Команда Helo отклонена: необходимо полное имя хоста»

Я закончил тем, что включил «Ссылка / etc / mailhelo для исходящего SMTP HELO [?]» Это было расположено в «exim config manager», затем «Домены и IPS» на VPS-сервере.

Затем я использовал putty и удалил на сервер и запустил эту команду "sudo nano / etc / mailhelo"

В этом файле я создал домены example.com: example.com sub.example.com: example.com example.net: example.net addon.example.net: example.net *: hostname.example.com

(согласно http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/EximDifferentIps )

Я проверил отправку электронной почты и все выглядит хорошо

Мэтт Берд
источник
0

Клиент отклоняет не ваш почтовый сервер, а внешний SMTP-сервер, который отклоняет сообщение от вашего SMTP-сервера. Проблема заключается в том, что ваш SMTP-сервер не отправляет свое полное доменное имя в сообщении helo при взаимодействии с другими серверами.

Обычно это можно решить путем добавления общедоступного IP-адреса к файлу hosts с полным доменным именем в файл / etc / hosts. Нравится:

1.1.1.1 host.domain.com host

127.0.0.2 host.domain.com host

Где 1.1.1.1 - официальный IP.

У меня была эта проблема, и не помогло то, что DNS работал в обоих направлениях вперед / назад на общедоступном IP, и у меня был только мой собственный сервер имен в /etc/resolv.conf. Даже имя хоста -f вернуло правильное. Мне все еще пришлось поместить ip и имя хоста в / etc / hosts, чтобы sendmail фактически использовал полное доменное имя, а не просто короткое имя хоста.

Если вы подключаетесь к серверу через порт 25, убедитесь, что на линии 220 указано полное доменное имя, а не только хост. Нравится:

220 host.domain.com ESMTP Sendmail 8.15.2 / 8.15.2 / SuSE Linux 0.8; Понедельник, 9 июля 2018 18:19:48 +0200

Йонас Квинге
источник
0

Иногда на сервере происходит «сбой». Вызвано, например, почтовыми атаками.

Сначала попробуйте перезагрузить сервер. Чем отключить почту на сервере и через 15 секунд снова включить.

Иногда отклоняется команда HELO, потому что почта не может загрузить новые определения антивируса; как AmaVis, который используется на серверах Apple. Перезапуск и выключение / включение почтового приложения на сервере решает эту проблему. Приветствия.

Дэнни
источник
0

Я получал не доменное имя при запуске hostname -f. Таким образом, я гуглил без домена в "hostname -f" . Оказалось, что мне нужно отредактировать /etc/hostname(я на Debian), чтобы решить проблему. После этого оба hostname -fи heloиспользовали полное имя хоста.

Jarekczek
источник
0

Если вы хотите отклонить HELO с неверными именами хостов, но при этом разрешить пользователям отправлять сообщения, даже если их клиенты не отправляют полные доменные имена с HELO, вы можете оставить эти строки на месте, как они есть:

reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,

Но убедитесь, что им предшествует:

permit_sasl_authenticated,

Таким образом, когда один из ваших пользователей проходит проверку подлинности, им будет разрешено отправлять электронную почту независимо от действительности их команды HELO и только неаутентифицированных подключений (которые должны быть только другими SMTP-серверами, передающими вам почту, потому что вы Очевидно, что все ваши пользователи должны проходить аутентификацию, не так ли?) будет применяться действующее требование HELO.

Ник Кунс
источник