Helo-Befehl abgelehnt: Vollqualifizierter Hostnamen-Fehler erforderlich

10

Mein Mailserver befindet sich aufgrund von Spam auf einer schwarzen Liste. Ich habe Postfix neu konfiguriert. Oft erhalten meine Kunden dann den Fehler, dass sie keine E-Mails senden können.

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

In 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>

In meiner 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
quelle

Antworten:

17

Diese Fehlermeldung wird angezeigt, weil der E-Mail-Client nur einen bloßen Hostnamen ("PLLAMNAZIFE") anstelle eines vollständig qualifizierten Hostnamens (z. B. "PLLAMNAZIFE.example.com") im HELO/ EHLOTeil der SMTP-Transaktion und Ihrem Postfix-Server sendet ist so konfiguriert, dass solche E-Mails abgelehnt werden.

Viele Mail-Client-Programme senden keine korrekt formatierten, vollqualifizierten und gültigen Hostnamen im HELO/ EHLO. Da Sie solche E-Mails von zahlenden Kunden akzeptieren müssen und nur wenig oder gar keine Kontrolle darüber haben, welchen E-Mail-Client sie verwenden (und weil HELOSchecks beim Blockieren von Spam nicht wirklich von Nutzen sind), ist es wahrscheinlich am besten, die HELOSchecks zu deaktivieren .

HELOEntfernen Sie zum Deaktivieren von Überprüfungen die folgenden zwei Zeilen aus Ihrer Postfix-Konfiguration:

    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,

Noch besser, entfernen Sie die gesamte smtpd_helo_restrictions = ...Regel und smtpd_helo_required = yes.

cas
quelle
Vielen Dank. Ich habe diese Zeilen deaktiviert und es funktioniert jetzt. Ich kann mit Mozilla Thunderbird auf meinem PC senden. Mein Kunde kann jedoch keine E-Mails mit Outlook auf seinem PC senden. Gibt es eine Möglichkeit, dieses Problem mit HELO check config zu beheben?
RedLEON
Wenn Sie die Helo-Prüfungen entfernt haben und Ihre Kunden immer noch keine E-Mails senden können, liegt höchstwahrscheinlich ein anderes Problem mit einem anderen Ablehnungsgrund im E-Mail-Protokoll vor.
Cas
Sie können jetzt senden. Aber ich möchte meinen Server als sicher konfigurieren
RedLEON
2
Was lässt Sie denken, dass Helo-Checks die Sicherheit verbessern?
Cas
8

Sie können die HELO-Einschränkungen für authentifizierte Benutzer umgehen, permit_sasl_authenticatedindem Sie Regeln in die smtpd_helo_restrictionsListe einfügen, bevor Sie sie ablehnen :

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit
Stas
quelle
1

Die Hostnamenvariable für Ihren Mailserver ist ungültig.

Versuchen Sie, den Wert des myhostnameFelds vom /etc/postfix/main.cfStandardwert in Ihren Hostnamen zu ändern (z. B. yourwebsite.comoder mail.yourwebsite.com).

Jason Swartz
quelle
0

Ich habe ewig gebraucht, um das herauszufinden

Ich verwende einen Centos-Server und habe eine E-Mail erhalten, in der der Fehler "Helo-Befehl abgelehnt: Vollqualifizierter Hostname erforderlich" gemeldet wurde.

Am Ende habe ich "Referenz / etc / mailhelo für ausgehendes SMTP HELO [?]" Aktiviert. Dies befand sich unter "exim configuration manager" und dann "Domains and IPS" auf dem VPS-Server

Dann habe ich Putty verwendet und auf dem Server entfernt und diesen Befehl "sudo nano / etc / mailhelo" ausgeführt.

In dieser Datei habe ich die Domains example.com: example.com erstellt. Sub.example.com: example.com example.net: example.net addon.example.net: example.net *: hostname.example.com

(gemäß http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/EximDifferentIps )

Ich habe das Senden von E-Mails getestet und alles sieht bisher gut aus

Matt Bird
quelle
0

Es ist nicht Ihr E-Mail-Server, der den Client ablehnt, sondern ein externer SMTP-Server, der die Nachricht von Ihrem SMTP-Server ablehnt. Das Problem ist, dass Ihr SMTP-Server bei der Kommunikation mit anderen Servern nicht den FQDN-Namen in der Helo-Nachricht sendet.

Dies kann normalerweise gelöst werden, indem die öffentliche IP-Adresse zur Hosts-Datei mit dem vollqualifizierten Domänennamen zur Datei / etc / hosts hinzugefügt wird. So was:

1.1.1.1 host.domain.com host

127.0.0.2 host.domain.com host

Wobei 1.1.1.1 die offizielle IP ist.

Ich hatte dieses Problem und es half nicht, dass der DNS auf der öffentlichen IP in beide Richtungen vorwärts / rückwärts arbeitete und ich nur meinen eigenen Nameserver in /etc/resolv.conf hatte. Sogar der Hostname -f hat den richtigen zurückgegeben. Ich musste immer noch die IP-Adresse und den Hostnamen in / etc / hosts eingeben, damit sendmail den vollqualifizierten Domänennamen anstelle des kurzen Hostnamens tatsächlich verwenden konnte.

Wenn Sie über Port 25 eine Telnet-Verbindung zu Ihrem Server herstellen, stellen Sie sicher, dass in der 220-Leitung der vollqualifizierte Domänenname und nicht nur der Host angegeben ist. So was:

220 host.domain.com ESMTP Sendmail 8.15.2 / 8.15.2 / SuSE Linux 0.8; Mo, 9. Juli 2018 18:19:48 +0200

Jonas Kvinge
quelle
0

Manchmal hat ein Server einen Schluckauf. Verursacht zum Beispiel durch Mail-Angriffe.

Versuchen Sie zunächst, den Server neu zu starten. Dann setzen Sie die Mail auf dem Server auf Aus und nach 15 Sekunden wieder auf.

Manchmal wird der abgelehnte HELO-Befehl verursacht, weil E-Mails keine neuen Antivirendefinitionen laden können. wie AmaVis, das auf Apple-Servern verwendet wird. Ein Neustart und Aus / Ein-Mail-App auf dem Server löst dieses Problem. Prost.

Danny
quelle
0

Ich habe beim Ausführen einen Nicht-Domain-Namen erhalten hostname -f. Also habe ich in "hostname -f" nach keiner Domain gegoogelt . Es stellte sich heraus, dass ich etwas bearbeiten musste /etc/hostname(ich bin auf Debian), um das Problem zu lösen. Danach verwendeten beide hostname -fund helovoll qualifizierten Hostnamen.

Jarekczek
quelle
0

Wenn Sie HELO mit schlechten Hostnamen ablehnen möchten, Ihren Benutzern jedoch weiterhin das Senden ermöglichen möchten, auch wenn ihre Clients keine FQDNs mit HELO senden, können Sie diese Zeilen so belassen, wie Sie sie haben:

reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,

Stellen Sie jedoch sicher, dass ihnen Folgendes vorangestellt ist:

permit_sasl_authenticated,

Wenn sich einer Ihrer Benutzer authentifiziert, kann er auf diese Weise E-Mails senden, unabhängig von der Gültigkeit seines HELO-Befehls, und nur nicht authentifizierte Verbindungen (dies sollten nur andere SMTP-Server sein, die E-Mails an Sie weiterleiten, weil Sie es sind Offensichtlich müssen sich alle Benutzer authentifizieren, oder?). Dies unterliegt der gültigen HELO-Anforderung.

Nick Coons
quelle