Postfix-Whitelisting eines schlecht konfigurierten Servers funktioniert nicht: Helo-Befehl abgelehnt: Host nicht gefunden;

Postfix-Whitelisting eines schlecht konfigurierten Servers funktioniert nicht: Helo-Befehl abgelehnt: Host nicht gefunden;

Die Konfiguration meines Mailservers ist ziemlich streng und manchmal werden eingehende E-Mails von legitimen Servern abgelehnt, weil auf der Gegenseite ein Konfigurationsproblem vorliegt. Ein häufiges Problem ist der HELO-Hostname.

Ich habe ein konkretes Beispiel vom bedeutendsten Energieversorger Italiens, ENEL, der offenbar Transaktions-E-Mails mit einem HELO-Hostnamen versendet, der sich nicht auflösen lässt:

Feb 20 18:31:10 MYHOST postfix/smtpd[1748649]: NOQUEUE: reject: RCPT from mxrelay6.enel.com[146.133.127.102]: 450 4.7.1 <smtprelay.enel.com>: Helo command rejected: Host not found; from=<[email protected]> to=<MY CLIENT EMAIL> proto=ESMTP helo=<smtprelay.enel.com>

Ich versuche, dies auf die Whitelist zu setzen. Die IPs oder Hostnamen des SMTP-Servers scheinen der logische Schritt zu sein (ich habe zwei beobachtet, aber ich könnte einen regulären Ausdruck verwenden). Jedenfalls gelingt mir das derzeit nicht. Alles, was ich versuche, funktioniert nicht und diese E-Mails werden immer abgelehnt. (Ich habe andere ähnliche Fälle.)

##
# Helo restrictions
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
  permit_mynetworks,
  warn_if_reject check_helo_access hash:/etc/postfix/helo_whitelist,
  warn_if_reject reject_invalid_hostname,
  warn_if_reject reject_unknown_hostname,
  warn_if_reject reject_non_fqdn_helo_hostname,
  warn_if_reject reject_unknown_helo_hostname,
  warn_if_reject reject_invalid_helo_hostname,
  permit

##
# Sender restrictions
smtpd_sender_restrictions =
  permit_mynetworks,
  check_client_access hash:/etc/postfix/sender_whitelist,
  reject_non_fqdn_sender,
  reject_unknown_sender_domain,
  reject_unknown_address,
  reject_unknown_reverse_client_hostname,
  reject_unknown_client_hostname,
  permit

##
# Recipient restrictions
smtpd_recipient_restrictions =
   permit_mynetworks,
   reject_unauth_pipelining,
   reject_unauth_destination,
   reject_invalid_hostname,
   reject_unknown_hostname,
   reject_unknown_reverse_client_hostname,
   reject_unknown_sender_domain,
   reject_unknown_recipient_domain,
   reject_non_fqdn_hostname,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   check_sender_access hash:/etc/postfix/sender_access,
   #check_client_access hash:/etc/postfix/rbl_whitelist,
   check_policy_service unix:private/policyd-spf,
   #check_client_access hash:/etc/postfix/rbl_override
   reject_rhsbl_helo dbl.spamhaus.org,
   reject_rhsbl_reverse_client dbl.spamhaus.org,
   reject_rhsbl_sender dbl.spamhaus.org,
   reject_rbl_client zen.spamhaus.org,
   #reject_rbl_client cbl.abuseat.org
   #reject_rbl_client b.barracudacentral.org,
   #reject_rbl_client bl.spamcop.net,
   #reject_rbl_client zen.spamhaus.org=127.0.0.[2..11],
   #reject_rbl_client b.barracudacentral.org=127.0.0.[2..11],
   #check_policy_service unix:/var/spool/postfix/postgrey/socket,
   permit

smtpd_relay_restrictions =
   permit_mynetworks, 
   permit_sasl_authenticated,
   reject_unauth_destination

##
# Data restrictions
smtpd_data_restrictions =
  reject_unauth_pipelining,
  permit

helo_whitelist

mxrelay7.enel.com OK
mxrelay6.enel.com OK

Ich habe versucht, den tatsächlichen HELO-Hostnamen in helo_whitelist einzugeben, smtprelay.enel.comaber es funktioniert nicht. Ich habe in den Dokumenten auch die Verwendung von PERMIT anstelle von OK gesehen, aber beim Durchsehen der Debug-Meldungen (ich habe debug_peer_list verwendet) sieht es so aus, als ob das nicht richtig ist.

Beim Durchsehen der Fehlerbehebung kann ich jedoch erkennen, dass die Ablehnung in den Empfängeradressbeschränkungen erfolgt:

Feb 20 18:41:12 alice postfix/smtpd[1749156]: reject_invalid_hostname: smtprelay.enel.com
Feb 20 18:41:12 alice postfix/smtpd[1749156]: generic_checks: name=reject_invalid_hostname status=0
Feb 20 18:41:12 alice postfix/smtpd[1749156]: generic_checks: name=reject_unknown_hostname
Feb 20 18:41:12 alice postfix/smtpd[1749156]: reject_unknown_hostname: smtprelay.enel.com
Feb 20 18:41:12 alice postfix/smtpd[1749156]: lookup smtprelay.enel.com type A flags
Feb 20 18:41:12 alice postfix/smtpd[1749156]: dns_query: smtprelay.enel.com (A): Host not found
Feb 20 18:41:12 alice postfix/smtpd[1749156]: lookup smtprelay.enel.com type AAAA flags
Feb 20 18:41:12 alice postfix/smtpd[1749156]: dns_query: smtprelay.enel.com (AAAA): Host not found
Feb 20 18:41:12 alice postfix/smtpd[1749156]: lookup smtprelay.enel.com type MX flags
Feb 20 18:41:12 alice postfix/smtpd[1749156]: dns_query: smtprelay.enel.com (MX): Host not found
Feb 20 18:41:12 MYHOST postfix/smtpd[1749156]: NOQUEUE: reject: RCPT from mxrelay6.enel.com[146.133.127.102]: 450 4.7.1 <smtprelay.enel.com>: Helo command rejected: Host not found; from=<[email protected]> to=<MY CLIENT EMAIL> proto=ESMTP helo=<smtprelay.enel.com>
Feb 20 18:41:12 alice postfix/smtpd[1749156]: generic_checks: name=reject_unknown_hostname status=2
Feb 20 18:41:12 alice postfix/smtpd[1749156]: >>> END Recipient address RESTRICTIONS <<<

Die Frage ist, warum der Abschnitt smtpd_recipient_restrictions den Helo-Hostnamen überprüfen sollte. Oder handelt es sich nur um eine verzögerte Überprüfung aufgrund von smtpd_delay_reject?

Grundsätzlich: Wo und wie soll ich die auf die Whitelist gesetzten Helo-Nachrichten platzieren?

Danke!

Antwort1

Sie können die duplizierten reject_unknown_hostname/ reject_unknown_hostname-Prüfungen einfach löschen, da Ihre Helo/Ehlo-Einschränkungen ohnehin angewendet werden, solange Sie sie behalten smtpd_helo_required=yes.

Ändern Sie dann Ihre Liste zurück, was auch immer mit check_ konfiguriert istHallo_access muss enthalten dieHalloWerte - es ist bewusst so gestaltet, dass keine Whitelists mit (nicht verifizierten) Hostnamen zulässig sind.


Dies sind übrigens veraltete Aliase. Verwenden Sie immer die aktuellen, die deutlicher ausdrücken, was geprüft wird:

reject_unknown_hostname => reject_unknown_helo_hostname
reject_invalid_hostname => reject_invalid_helo_hostname

verwandte Informationen