web-dev-qa-db-ja.com

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
10
RedLEON

メールクライアントがHELO/EHLO SMTPトランザクションの一部であり、Postfixサーバーはそのようなメールを拒否するように設定されています。

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

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

    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,

さらに良いことに、smtpd_helo_restrictions = ...ルールとsmtpd_helo_required = yes

17
cas

permit_sasl_authenticatedリストのルールを拒否する前にsmtpd_helo_restrictionsを挿入することで、認証済みユーザーのHELO制限をバイパスできます。

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit
8
Stas

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

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

1
Jason Swartz

これを解決するために私は年齢を取りました

CentOSサーバーを実行していて、エラーを報告するメールが返送されてきました。 "Heloコマンドが拒否されました:完全修飾ホスト名が必要です"

結局、「送信SMTP HELO [?]のリファレンス/ etc/mailhelo」を有効にしてしまいました。これは、VPSサーバーの「exim構成マネージャー」、「ドメインとIPS」の下にありました。

次に、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
Matt Bird

無効なホスト名でHELOを拒否したいが、クライアントがHELOでFQDNを送信しない場合でもユーザーが送信できるようにする場合は、次の行をそのままにしておくことができます。

reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,

ただし、これらの前に次のことを確認してください。

permit_sasl_authenticated,

このようにして、ユーザーの1人が認証されると、HELOコマンドの有効性に関係なく、ユーザーはメールの送信を許可され、認証されていない接続のみがメールを中継します。明らかに、すべてのユーザーに認証を要求しますよね?)は、有効なHELO要件の対象となります。

0
Nick Coons

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

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

1.1.1.1 Host.domain.comホスト

127.0.0.2 Host.domain.comホスト

ここで、1.1.1.1は公式IPです。

私はこの問題を抱えていて、DNSがパブリックIPでフォワード/リバースの両方の方法で機能していて、/ etc/resolv.confに自分のネームサーバーしかなかったので役に立ちませんでした。ホスト名-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

0
Jonas Kvinge

hostname -fを実行すると、ドメイン名以外が表示されました。だから私は「ホスト名-f」にドメインなしをググった。この問題を解決するには、/etc/hostname(私はDebianを使用しています)を編集する必要があることがわかりました。その後、hostname -fheloの両方が完全修飾ホスト名を使用していました。

0
Jarekczek

サーバーに「しゃっくり」がある場合があります。たとえばメール攻撃が原因です。

まず、サーバーを再起動してください。サーバーのメールを15秒後にオフにしてからオンにしてください。

メールが新しいウイルス対策定義を読み込めないことが原因で、HELOコマンドが拒否されることがあります。 Appleサーバーで使用されるAmaVisのようなものです。サーバーのメールアプリの再起動とオフ/オンにより、この問題が解決されます。乾杯。

0
Danny