[Postfixbuch-users] Interessantes Problem (Bug?) bei Einrichtung eines neuen Mailservers

Christian Boltz postfixbuch at cboltz.de
Fr Mär 9 21:07:01 CET 2012


Hallo zusammen,

mir ist heute morgen ein interessantes Phänomen über den Weg gelaufen, 
das mir ziemlich seltsam vorkommt und vielleicht sogar ein Bug sein 
könnte.

Log und Konfiguration steht unten, aber erstmal die Fakten:

Ich habe einen neuen Server eingerichtet, der einen bestehenden 
Mailserver ablösen soll. myhostname des neuen Servers ist dabei 
identisch zum MX-Eintrag der betroffenen Domain, der neue Server hat die 
Domain aber nicht in mydestination oder virtual, ist also nicht 
zuständig (zumindest noch nicht).

Nun kam jemand auf die Idee, vom neuen Server aus eine Mail zu 
verschicken. Der Ablauf war dann in etwa so:

- Mail an user at MYDOMAIN.de (egal ob lokal generiert oder per SMTP-Auth 
  eingeliefert)
- Postfix auf dem neuen Server erkennt, dass es an den alten Server 
  ausliefern muss (MX = mail.MYDOMAIN.de)
- ich bekomme ein "connect" im Log des alten Servers
- und dann stellt der neue Server plötzlich fest, dass er laut 
  myhostname selbst "mail.MYDOMAIN.de" heißt und will die Mail bei sich 
  selbst zustellen. Das Ergebnis ist ein klassisches"loops back to 
  myself", weil er eben nicht zuständig ist.

Irgendwie klingt das nach "ein bisschen schwanger" - erst connected er 
zum alten Mailserver (der als MX zuständig ist), aber dann liefert er 
die Mail doch bei sich selbst ein, wenn auch erfolglos.

Der MX-Eintrag und die IP hinter dem MX-Eintrag zeigen definitiv auf den 
alten Server.

Ist das irgendwie erklärbar oder habe ich gerade einen seltsamen Bug 
entdeckt?

Das Ganze ist übrigens ein postfix-2.8.7 auf openSUSE 12.1.


Logauszug vom neuen Server (grep 34CAB280083 /var/log/mail)
- 34CAB280083 ist die Queue-ID nach Wiedereinlieferung von Amavis
- NEUEDOMAIN.de ist eine Domain, für die der neue Server als MX zuständig ist
- alle Ersetzungen per sed, also konsistent

Mar  9 12:17:21 server postfix-highport/smtpd[30772]: 34CAB280083: client=localhost[127.0.0.1]
Mar  9 12:17:21 server postfix/cleanup[30773]: 34CAB280083: message-id=<CA5518CCBABD4B219280C2F8FF413470 at foobar>
Mar  9 12:17:21 server postfix/qmgr[30690]: 34CAB280083: from=<sender at NEUEDOMAIN.de>, size=1803, nrcpt=1 (queue active)
Mar  9 12:17:21 server amavis[22695]: (22695-12) FWD from <sender at NEUEDOMAIN.de> -> <user at MYDOMAIN.de>,BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 34CAB280083
Mar  9 12:17:21 server amavis[22695]: (22695-12) Passed CLEAN {RelayedInbound}, [85.199.188.98]:52835 [85.199.188.98] <sender at NEUEDOMAIN.de> -> <user at MYDOMAIN.de>, Message-ID: <CA5518CCBABD4B219280C2F8FF413470 at foobar>, mail_id: PR22BpzDUIEK, Hits: -0.999, size: 1193, queued_as: 34CAB280083, 591 ms
Mar  9 12:17:21 server postfix/smtpd[30763]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 34CAB280083; from=<sender at NEUEDOMAIN.de> to=<user at MYDOMAIN.de> proto=ESMTP helo=<foobar>
Mar  9 12:17:21 server postfix/smtp[30705]: 34CAB280083: to=<user at MYDOMAIN.de>, relay=mail.MYDOMAIN.de[12.34.56.78]:25, delay=0.08, delays=0.06/0/0.02/0, dsn=5.4.6, status=bounced (mail for MYDOMAIN.de loops back to myself)
Mar  9 12:17:21 server postfix/bounce[30774]: 34CAB280083: sender non-delivery notification: 54D06280090
Mar  9 12:17:21 server postfix/qmgr[30690]: 34CAB280083: removed


Währenddessen gab es im Log des alten Servers nur diese zwei Zeilen:

Mar  9 12:17:25 alterserver postfix/smtpd[3035]: connect from NEUERSERVER
Mar  9 12:17:25 alterserver postfix/smtpd[3035]: disconnect from NEUERSERVER


postconf -n (vom neuen Server)

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
biff = no
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = 
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
defer_transports = 
delay_warning_time = 4h
disable_dns_lookups = no
disable_mime_output_conversion = no
html_directory = /usr/share/doc/packages/postfix-doc/html
inet_interfaces = all
inet_protocols = ipv4
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command = 
mailbox_size_limit = 100000000
mailbox_transport = 
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains = 
masquerade_exceptions = 
message_size_limit = 52428800
message_strip_characters = 
mydestination = lists.MYDOMAIN.de, localhost.MYDOMAIN.de, mail.MYDOMAIN.de
myhostname = mail.MYDOMAIN.de
mynetworks = 127.0.0.1, EIGENE_IP
mynetworks_style = host
newaliases_path = /usr/bin/newaliases
parent_domain_matches_subdomains = 
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix-doc/README_FILES
recipient_delimiter = +
relay_clientcerts = hash:/etc/postfix/relay_ccerts
relayhost = 
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix-doc/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_enforce_tls = no
smtp_helo_name = mail.MYDOMAIN.de
smtp_sasl_auth_enable = no
smtp_sasl_password_maps = 
smtp_sasl_security_options = 
smtp_tls_CAfile = /etc/ssl/CAcert-class3.pem
smtp_tls_CApath = 
smtp_tls_cert_file = 
smtp_tls_key_file = 
smtp_tls_session_cache_database = 
smtp_use_tls = yes
smtpd_client_restrictions = 
smtpd_helo_required = yes
smtpd_helo_restrictions = 
smtpd_recipient_restrictions = reject_non_fqdn_sender,  reject_non_fqdn_recipient,      permit_tls_clientcerts, permit_sasl_authenticated,      permit_mynetworks,   reject_unauth_destination,      check_recipient_access hash:/etc/postfix/access,        check_sender_access hash:/etc/postfix/senderaccess,     reject_invalid_hostname,     reject_unknown_sender_domain,   reject_unknown_recipient_domain,        reject_unlisted_recipient,      reject_rbl_client ix.dnsbl.manitu.net,       reject_rbl_client zen.spamhaus.org,     warn_if_reject reject_unknown_hostname, warn_if_reject reject_non_fqdn_hostname,        check_policy_service inet:127.0.0.1:2501,    permit
smtpd_sasl_auth_enable = yes
smtpd_sender_restrictions = 
smtpd_tls_CAfile = /etc/ssl/CAcert-class3.pem
smtpd_tls_CApath = 
smtpd_tls_ask_ccert = yes
smtpd_tls_cert_file = /etc/ssl/private/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_tls_received_header = yes
smtpd_use_tls = yes
strict_8bitmime = no
strict_rfc821_envelopes = no
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf,   proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf,   proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
virtual_gid_maps = static:10002
virtual_mailbox_base = /home/mailbox/
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 100000000
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf,   proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_transport = maildrop
virtual_uid_maps = static:20000


Inzwischen habe ich einen Workaround gefunden: Ich habe myhostname zu 
mail2.MYDOMAIN.de geändert und zusätzlich myorigin auf mail.MYDOMAIN.de 
gesetzt, damit der Absender für lokale Mails passt. Das bestätigt auch, 
dass myhostname "schuld" war.
Im postconf -n ist dieser Workaround nicht enthalten.

Trotzdem würde mich die Erklärung für das beschriebene Verhalten 
interessieren.


Gruß

Christian Boltz
-- 
> [in OOo Calc] =ANTWORT("Das Leben, das Universum und der ganze Rest")
was sollte da normalerweise kommen?
Bei mir erscheint nur im gleichen Feld nachdem ich Return drückte
die Zahl 42 ...     [> Anke Börnig und Sascha Blum in suse-linux]




Mehr Informationen über die Mailingliste Postfixbuch-users