Return-Path: <mailer-daemon> - Fehler bei MS-POP3-connector

  • Guten Morgen,


    ein Kunde meldet mir, dass der POP-3-connector von Exchange Emails nicht abholen kann, da im Header der E-Mail - ein non-delivery-report - ein Fehler im Return-Path sei. Dort befindet sich <mailer-daemon>, was Echchange als unbekannte Adresse abweist. Der Kunde meint, der Return-Path müsse leer sein oder eine gültige Mailadresse beeinhalten.


    Hier ein Beispiel:


    [INDENT]Return-Path: <MAILER-DAEMON>
    X-Original-To: admin@example.dom
    Delivered-To: admin@example.dom
    Received: by mailserverdomain.mail (Postfix)
    id 4032A2684B85; Mon, 2 May 2016 09:22:26 +0200 (CEST)
    Date: Mon, 2 May 2016 09:22:26 +0200 (CEST)
    From: MAILER-DAEMON@mailserverdomain.mail (Mail Delivery System)
    Subject: Undelivered Mail Returned to Sender
    To: admin@example.dom[/INDENT]


    Nach 2 Stunden google und Lektüre des Postfix-Manuals bin ich noch kein Stück weiter. Wie kann ich erreichen, dass statt "Return-Path: <MAILER-DAEMON>" "Return-Path: <MAILER-DAEMON@mailserverdomain.mail>" eingesetzt wird bzw. "Return-Path: <>"?


    main.cf:


    # _ _ ___ __ _ (R)
    # | | (_)_ _____ / __|___ _ _ / _(_)__ _
    # | |__| \ V / -_) (__/ _ \ ' \| _| / _` |
    # |____|_|\_/\___|\___\___/_||_|_| |_\__, |
    # |___/
    # Copyright (c) 2009-2016 Keppler IT GmbH.
    # ----------------------------------------------------------------------------
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    append_dot_mydomain = no
    authorized_flush_users = root, $mail_owner
    authorized_mailq_users = root, $mail_owner
    biff = no
    broken_sasl_auth_clients = yes
    disable_vrfy_command = yes
    dovecot_destination_recipient_limit = 1
    inet_protocols = all
    mailbox_size_limit = 0
    message_size_limit = 53477376
    milter_default_action = accept
    mydestination = localhost.localdomain, localhost, $myhostname
    myhostname = mailserverdomain.mail
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    myorigin = /etc/mailname
    readme_directory = no
    recipient_delimiter = +
    relayhost =
    sender_bcc_maps = hash:/etc/postfix/sender_bcc
    show_user_unknown_table_name = no
    smtp_bind_address = xxx.xxx.xxx.xxx
    smtp_bind_address6 = xxxx.xxxx.xxxx.xxxx.xxxx ....
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    smtp_tls_loglevel = 1
    smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
    smtp_tls_protocols = !SSLv2, !SSLv3
    smtp_tls_security_level = may
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtpd_banner = $myhostname ESMTP $mail_name
    smtpd_client_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_unknown_reverse_client_hostname,
    reject_rbl_client dul.dnsbl.sorbs.net,
    reject_rbl_client ix.dnsbl.manitu.net,
    reject_rbl_client cbl.abuseat.org,
    reject_rbl_client sbl-xbl.spamhaus.org
    smtpd_discard_ehlo_keywords = silent-discard, dsn
    smtpd_helo_required = yes
    smtpd_helo_restrictions = reject_invalid_helo_hostname
    smtpd_milters = unix:/var/run/clamav/clamav-milter.ctl, unix:/var/run/lcsam.sock
    smtpd_recipient_limit = 250
    smtpd_recipient_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_unknown_recipient_domain,
    check_recipient_access hash:/etc/postfix/recipient_access
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_local_domain = $mydomain
    smtpd_sasl_path = private/auth
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_type = dovecot
    smtpd_sender_restrictions = permit_mynetworks,
    reject_unknown_address,
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    check_sender_access hash:/etc/postfix/sender_access
    smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.crt
    smtpd_tls_ciphers = medium
    smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
    smtpd_tls_dh512_param_file = /etc/postfix/dh512.pem
    smtpd_tls_exclude_ciphers = aNULL, eNULL, ADH
    smtpd_tls_key_file = /etc/ssl/private/postfix.key
    smtpd_tls_loglevel = 1
    smtpd_tls_mandatory_ciphers = medium
    smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, ADH
    smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    smtpd_tls_protocols = !SSLv2, !SSLv3
    smtpd_tls_security_level = may
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    virtual_alias_maps = hash:/etc/postfix/virtual_alias
    virtual_gid_maps = static:8
    virtual_mailbox_base = /var/mail
    virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
    virtual_mailbox_maps = hash:/etc/postfix/virtual_alias
    virtual_minimum_uid = 8
    virtual_transport = dovecot
    virtual_uid_maps = static:8
    # <EOF>-----------------------------------------------------------------------


    master.cf:


    # _ _ ___ __ _ (R)
    # | | (_)_ _____ / __|___ _ _ / _(_)__ _
    # | |__| \ V / -_) (__/ _ \ ' \| _| / _` |
    # |____|_|\_/\___|\___\___/_||_|_| |_\__, |
    # |___/
    # Copyright (c) 2009-2016 Keppler IT GmbH.
    # ----------------------------------------------------------------------------


    # ==========================================================================
    # service type private unpriv chroot wakeup maxproc command + args
    # (yes) (yes) (yes) (never) (100)
    # ==========================================================================
    smtp inet n - n - - smtpd
    submission inet n - n - - smtpd
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    -o smtpd_helo_required=no
    -o smtpd_helo_restrictions=
    -o smtpd_tls_dh1024_param_file=/etc/postfix/dh1024.pem
    465 inet n - n - - smtpd
    -o smtpd_tls_wrappermode=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    -o smtpd_helo_required=no
    -o smtpd_helo_restrictions=
    -o smtpd_tls_dh1024_param_file=/etc/postfix/dh1024.pem
    pickup fifo n - - 60 1 pickup
    cleanup unix n - - - 0 cleanup
    qmgr fifo n - n 300 1 qmgr
    tlsmgr unix - - - 1000? 1 tlsmgr
    rewrite unix - - - - - trivial-rewrite
    bounce unix - - - - 0 bounce
    defer unix - - - - 0 bounce
    trace unix - - - - 0 bounce
    verify unix - - - - 1 verify
    flush unix n - - 1000? 0 flush
    proxymap unix - - n - - proxymap
    proxywrite unix - - n - 1 proxymap
    smtp unix - - n - - smtp
    # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
    relay unix - - - - - smtp
    -o smtp_fallback_relay=
    # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
    showq unix n - - - - showq
    error unix - - - - - error
    retry unix - - - - - error
    discard unix - - - - - discard
    local unix - n n - - local
    virtual unix - n n - - virtual
    lmtp unix - - - - - lmtp
    anvil unix - - - - 1 anvil
    scache unix - - - - 1 scache


    maildrop unix - n n - - pipe
    flags=DROhu user=vmail argv=/usr/bin/maildrop -d ${recipient}


    dovecot unix - n n - - pipe
    flags=DROhu user=mail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} -e


    # <EOF>-----------------------------------------------------------------------


    Bin für jede Hilfe dankbar.

  • So, nun habe ich eine Löstung gefunden:


    Die master.cf muss ergänzt werden um:


    dovecot unix - n n - - pipe
    flags=DROhu user=mail:mail null_sender=MAILER-DAEMON@mailserverdomain.mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} -e


    Das Problem dabei: LC überschreibt die master.cf bei jeder Neukonfiguration mittels LC. Das kann man ja generell verhindern, aber damit wird dann ja gar keine Konfigurationsänderung am Mailserver mehr durchgereicht, was ich auch nicht wünsche.


    Gibt es andere Optionen?

  • Wenn du etwas geübt bist oder zumindest es dir dauerhaft erstmal Einstellen möchtest (abgesehen von einem LC Update/Upgrade) dann kannst du das z.B in /usr/lib/liveconfig/lua/postfix.lua abändern... :)

  • Wenn du etwas geübt bist


    :):):)


    Naja, mit Übung hat das schon was zu tun, man wird halt durch LC auch ein wenig bequem, unter Confixx musste man das ja alles selbst konfigurieren, bei LC nur hin und wieder kontrollieren. Ich bin auch langsam in dem Alter, wo das Gedächtnis einen manchmal im Stich läßt ..


    Aber zum Thema: die Idee kam mir spontan auch, aber ich hatte gehofft, es gebe noch eine komfortablere Lösung, wie ich die Änderung dauerhaft abspeichern kann, so wie das ja bei anderen Optionen auch geht (includes oder custom.lua). Ist ja dann doch etwas unpraktisch, nach jedem LC-Upgrade die LC-lua-Scripte wieder umzuschreiben/anzupassen. Ist glaube ich auch nicht wirklich im Sinne des Erfinders, dauerhaft so vorzugehen.

  • Hier die nötigen Kommandos, falls jemand hier drüber stolpert:

    Code
    sed -i 's|mail:mail argv|mail:mail null_sender=MAILER-DAEMON@" .. hostname .. " argv|' /usr/lib/liveconfig/lua/postfix.lua
    service liveconfig restart
    sed -i "s|mail:mail argv|mail:mail null_sender=MAILER-DAEMON@$(hostname --fqdn) argv|" /etc/postfix/master.cf
    service postfix restart


    Problem: Ein LiveConfig-Update überschreibt das wieder.

  • Ich möchte das Thema noch mal kurz aufgreifen. Ein Anwender hat uns darauf hingewiesen, dass das RFC 5321 ganz klar für Fehlermeldungen einen leeren Absender (<>) erfordert:[INDENT]If there is a delivery failure after acceptance of a message, the receiver-SMTP MUST formulate and mail a notification message. This notification MUST be sent using a null ("<>") reverse-path in the envelope. The recipient of this notification MUST be the address from the envelope return path (or the Return-Path: line).
    [/INDENT]
    LiveConfig wird ab v2.6 also die "null_sender"-Option in der master.cf (beim pipe-Befehl) auf einen leeren Wert setzen und nicht auf MAILER-DAEMON@$hostname.


    Viele Grüße


    -Klaus Keppler

  • Dann hoffen wir mal, dass "<>" genauso wenig Probleme macht wie <MAILER-DAEMON@$hostname>.


    Wird die master.cf automatisch neu generiert oder müssen wir das wieder einmal auf unserer großen Zahl an servern überall manuell anstoßen?
    (gut, für die recipient delimiter Änderung müssen wir das vermutlich sowieso, ich tippe die wird default off sein)

  • Dann hoffen wir mal, dass "<>" genauso wenig Probleme macht wie <MAILER-DAEMON@$hostname>.


    Zumindest ist das im RFC eindeutig geregelt (der bisherige Weg von Postfix, dort nur den unqualifizierten Namen "MAILER-DAEMON" einzutragen, ist technisch betrachtet falsch - hatte aber natürlich auch seine Gründe).


    Zitat

    Wird die master.cf automatisch neu generiert oder müssen wir das wieder einmal auf unserer großen Zahl an servern überall manuell anstoßen?
    (gut, für die recipient delimiter Änderung müssen wir das vermutlich sowieso, ich tippe die wird default off sein)


    null_sender soll während des Upgrades automatisch geändert werden (steht dann auch so im Changelog), recipient_delimiter ist eine Feature-Änderung die wir nicht automatisch aktivieren ("Prinzip der geringsten Überraschung"). Längerfristig soll das über CLI möglich sein - aber erst eins nach dem anderen...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!