Heloコマンドが拒否されました:完全修飾ホスト名が必要です。エラー

Heloコマンドが拒否されました:完全修飾ホスト名が必要です。エラー

私のメールサーバーはスパムブロックリストに登録されています。 postfixを再構成しました。これにより、お客様にこのエラーが発生して電子メールを送信できなくなります。

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=<[email protected]> to=<[email protected]> 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

答え1

このエラーメッセージは、メールクライアントがHELOSMTPトランザクションの/部分に完全修飾されたホスト名(「PLLAMNAZIFE.example.com」など)の代わりにデフォルトのホスト名(「PLLAMNAZIFE」)のみを送信し、Postfixサーバー設定を次のように送信するためEHLOに発生します。 。そのようなメールを拒否してください。

HELO多くのメールクライアントプログラムは、正規化された有効なホスト名を正しい形式で送信しませんEHLO。有料の顧客からこれらのメールを受け取る必要があり、それらが使用するメールクライアントをほとんど制御できないため(そしてHELOスキャンはスパムをブロックするのにあまり役に立たないため)、スキャンを無効にするのが最善ですHELO

チェックを無効にするには、HELOPostfix設定から次の2行を削除します。

    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,

より良い方法は、ルールsmtpd_helo_restrictions = ...全体を削除し、smtpd_helo_required = yes

答え2

permit_sasl_authenticatedリストの拒否ルールの前にHELO制限を挿入して、認証されたユーザーのHELO制限をバイパスできますsmtpd_helo_restrictions

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit

答え3

メールサーバーのホスト名変数が無効です。

myhostname/etc/postfix/main.cfフィールド値をデフォルト値からホスト名(たとえば、yourwebsite.comまたはmail.yourwebsite.com)に変更してみてください。

答え4

電子メールサーバーがクライアントを拒否するのではなく、外部SMTPサーバーはSMTPサーバーからのメールを拒否します。問題は、SMTPサーバーが他のサーバーと通信しているときにheloメッセージにFQDN名を送信しないことです。

この問題は通常、ホストファイルにパブリックIPを追加し、/ etc / hostsファイルにFQDNを追加することで解決できます。このように:

1.1.1.1 ホスト.ドメイン.com ホスト

127.0.0.2 ホスト.ドメイン.com ホスト

そのうち1.1.1.1が公式IPです。

私はこの問題に直面しており、DNSがパブリックIP上で順方向/逆方向に機能するのに役立ちません。ホスト名-fも正しいホスト名を返しました。 sendmailが実際に短いホスト名だけでなくFQDNも使用できるようにするには、IPとホスト名を/ etc / hostsに入力する必要があります。

ポート 25 を介してサーバーに Telnet 接続する場合は、行 220 にホストだけでなく FQDN も表示されていることを確認してください。このように:

220 host.domain.com ESMTP Sendmail 8.15.2/8.15.2/SuSE Linux 0.8 2018年7月9日月曜日 18:19:48 +0200

関連情報