Catch-all fängt zu viel ein
Hallo,
ich wollte mir auf meinem Postfix eine Catch-all Adresse konfigurieren. Dabei habe ich mich an http://www.postfix.com/VIRTUAL_README.html orientiert. Meine **/etc/postfix/virutal** sieht demnach wie folgt aus:
``` user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com @example.com user1@example.com ```
Nun werden jedoch alle E-Mails im Postfach von user1@example.com zugestellt. Also auch jene, die z.B. an user2@example.com gesendet wurden.
Entferne ich die letzte Zeile jedoch, werden E-Mails wie erwartet zugestellt.
Im Log finde ich dazu folgende Zeilen:
``` lda(user1@example.com): msgid=56CF5A11.1000308@example.com: saved mail to INBOX Feb 25 20:46:27 hostname postfix/pipe[7593]: 5B858280198: to=user1@example.com, orig_to=user2@example.com, relay=dovecot, delay=1.3, delays=1.3/0/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service) Feb 25 20:46:27 hostname postfix/qmgr[7557]: 5B858280198: removed ```
Ich kann dieses Phänomen auf mehreren Ubuntu-Servern mit Postfix 2.11.0 nachstellen. Handelt es sich hierbei um einen Bug?
# Ausgabe von postconf -n ``` alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix default_destination_concurrency_limit = 5 disable_vrfy_command = yes dovecot_destination_recipient_limit = 1 home_mailbox = Maildir/ inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}" mailbox_size_limit = 0 message_size_limit = 104857600 milter_connect_macros = j {daemon_name} v {if_name} _ milter_default_action = accept mydestination = mx.example.com, localhost, localhost.example.com myhostname = mx.example.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname non_smtpd_milters = $smtpd_milters postscreen_access_list = permit_mynetworks postscreen_dnsbl_action = enforce postscreen_dnsbl_sites = zen.spamhaus.org, b.barracudacentral.org, bl.spamcop.net postscreen_greet_action = enforce readme_directory = no recipient_delimiter = + relay_destination_concurrency_limit = 1 relay_recipient_maps = smtp_tls_note_starttls_offer = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname, reject_invalid_helo_hostname, permit smtpd_milters = unix:/spamass/spamass.sock unix:/clamav/clamav-milter.ctl unix:/opendkim/opendkim.sock smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_login_maps = $virtual_mailbox_maps smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtpd_tls_ask_ccert = yes smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/private/ssl-chain-mail-example-com.pem smtpd_tls_ciphers = high smtpd_tls_dh1024_param_file = /etc/nginx/dh_params.pem smtpd_tls_key_file = /etc/ssl/private/example-com-private-ssl.key smtpd_tls_loglevel = 1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes tls_random_source = dev:/dev/urandom unknown_address_reject_code = 550 unknown_client_reject_code = 550 unknown_hostname_reject_code = 550 virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_domains = hash:/etc/postfix/virtual-mailbox-domains virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users virtual_transport = dovecot ```
# Ausgabe von doveconf -n
``` # 2.2.9: /etc/dovecot/dovecot.conf # OS: Linux 3.13.0-042stab111.12 x86_64 Ubuntu 14.04.4 LTS reiserfs auth_mechanisms = plain login auth_verbose = yes mail_home = /var/mail/vmail/%d/%n mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = } passdb { args = username_format=%u scheme=ssha512 /etc/dovecot/passwd.db driver = passwd-file } plugin { sieve = /var/mail/vmail/example.com/%u/.dovecot.sieve sieve_after = /var/mail/vmail/sieve-after sieve_before = /var/mail/vmail/sieve-before sieve_dir = /var/mail/vmail/example.com/%u/sieve } protocols = imap sieve service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/private/ssl-chain-mail-example.pem ssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS ssl_client_ca_dir = /etc/ssl/certs ssl_dh_parameters_length = 2048 ssl_key = </etc/ssl/private/example-private-ssl.key ssl_prefer_server_ciphers = yes userdb { args = uid=5000 gid=5000 home=/var/mail/vmail/%d/%n driver = static } protocol lda { deliver_log_format = msgid=%m: %$ mail_plugins = sieve postmaster_address = webmaster@example.com quota_full_tempfail = yes rejection_reason = Your message to <%t> was automatically rejected:%n%r } protocol imap { imap_client_workarounds = delay-newmail tb-extra-mailbox-sep mail_max_userip_connections = 10 } ```
Handelt es sich hierbei um einen Bug, oder habe ich noch einen Fehler in der Konfiguration?
Viele Grüße Jörg
Am 19.03.2016 um 09:43 schrieb webmaster:
Hallo,
ich wollte mir auf meinem Postfix eine Catch-all Adresse konfigurieren. Dabei habe ich mich an http://www.postfix.com/VIRTUAL_README.html orientiert. Meine **/etc/postfix/virutal** sieht demnach wie folgt aus:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com @example.com user1@example.com
Nun werden jedoch alle E-Mails im Postfach von user1@example.com zugestellt. Also auch jene, die z.B. an user2@example.com gesendet wurden.
Entferne ich die letzte Zeile jedoch, werden E-Mails wie erwartet zugestellt.
Im Log finde ich dazu folgende Zeilen:
lda(user1@example.com): msgid=<56CF5A11.1000308@example.com>: saved mail to INBOX Feb 25 20:46:27 hostname postfix/pipe[7593]: 5B858280198: to=<user1@example.com>, orig_to=<user2@example.com>, relay=dovecot, delay=1.3, delays=1.3/0/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service) Feb 25 20:46:27 hostname postfix/qmgr[7557]: 5B858280198: removed
Ich kann dieses Phänomen auf mehreren Ubuntu-Servern mit Postfix 2.11.0 nachstellen. Handelt es sich hierbei um einen Bug?
# Ausgabe von postconf -n
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix default_destination_concurrency_limit = 5 disable_vrfy_command = yes dovecot_destination_recipient_limit = 1 home_mailbox = Maildir/ inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}" mailbox_size_limit = 0 message_size_limit = 104857600 milter_connect_macros = j {daemon_name} v {if_name} _ milter_default_action = accept mydestination = mx.example.com, localhost, localhost.example.com myhostname = mx.example.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname non_smtpd_milters = $smtpd_milters postscreen_access_list = permit_mynetworks postscreen_dnsbl_action = enforce postscreen_dnsbl_sites = zen.spamhaus.org, b.barracudacentral.org, bl.spamcop.net postscreen_greet_action = enforce readme_directory = no recipient_delimiter = + relay_destination_concurrency_limit = 1 relay_recipient_maps = smtp_tls_note_starttls_offer = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname, reject_invalid_helo_hostname, permit smtpd_milters = unix:/spamass/spamass.sock unix:/clamav/clamav-milter.ctl unix:/opendkim/opendkim.sock smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_login_maps = $virtual_mailbox_maps smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtpd_tls_ask_ccert = yes smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/private/ssl-chain-mail-example-com.pem smtpd_tls_ciphers = high smtpd_tls_dh1024_param_file = /etc/nginx/dh_params.pem smtpd_tls_key_file = /etc/ssl/private/example-com-private-ssl.key smtpd_tls_loglevel = 1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes tls_random_source = dev:/dev/urandom unknown_address_reject_code = 550 unknown_client_reject_code = 550 unknown_hostname_reject_code = 550 virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_domains = hash:/etc/postfix/virtual-mailbox-domains virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users virtual_transport = dovecot
# Ausgabe von doveconf -n
# 2.2.9: /etc/dovecot/dovecot.conf # OS: Linux 3.13.0-042stab111.12 x86_64 Ubuntu 14.04.4 LTS reiserfs auth_mechanisms = plain login auth_verbose = yes mail_home = /var/mail/vmail/%d/%n mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = } passdb { args = username_format=%u scheme=ssha512 /etc/dovecot/passwd.db driver = passwd-file } plugin { sieve = /var/mail/vmail/example.com/%u/.dovecot.sieve sieve_after = /var/mail/vmail/sieve-after sieve_before = /var/mail/vmail/sieve-before sieve_dir = /var/mail/vmail/example.com/%u/sieve } protocols = imap sieve service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/private/ssl-chain-mail-example.pem ssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS ssl_client_ca_dir = /etc/ssl/certs ssl_dh_parameters_length = 2048 ssl_key = </etc/ssl/private/example-private-ssl.key ssl_prefer_server_ciphers = yes userdb { args = uid=5000 gid=5000 home=/var/mail/vmail/%d/%n driver = static } protocol lda { deliver_log_format = msgid=%m: %$ mail_plugins = sieve postmaster_address = webmaster@example.com quota_full_tempfail = yes rejection_reason = Your message to <%t> was automatically rejected:%n%r } protocol imap { imap_client_workarounds = delay-newmail tb-extra-mailbox-sep mail_max_userip_connections = 10 }
Handelt es sich hierbei um einen Bug, oder habe ich noch einen Fehler in der Konfiguration?
Viele Grüße Jörg
ausm Bauch raus virtual_transport = dovecot uebergibt alles an dovecot
lies nochmal
http://wiki.dovecot.org/LDA/Postfix
virtual_alias_maps, virtual_mailbox_maps ... Best Regards MfG Robert Schetterer
Am 19.03.2016 um 09:43 schrieb webmaster:
ich wollte mir auf meinem Postfix eine Catch-all Adresse konfigurieren. Dabei habe ich mich an http://www.postfix.com/VIRTUAL_README.html orientiert. Meine **/etc/postfix/virutal** sieht demnach wie folgt aus:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com @example.com user1@example.com
Nun werden jedoch alle E-Mails im Postfach von user1@example.com zugestellt. Also auch jene, die z.B. an user2@example.com gesendet wurden.
Entferne ich die letzte Zeile jedoch, werden E-Mails wie erwartet zugestellt.
Im Log finde ich dazu folgende Zeilen:
lda(user1@example.com): msgid=<56CF5A11.1000308@example.com>: saved mail to INBOX Feb 25 20:46:27 hostname postfix/pipe[7593]: 5B858280198: to=<user1@example.com>, orig_to=<user2@example.com>, relay=dovecot, delay=1.3, delays=1.3/0/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service) Feb 25 20:46:27 hostname postfix/qmgr[7557]: 5B858280198: removed
In der zweiten Zeile hast Du "user-2" stehen, das ist nicht das selbe wie "user2". Und deshalb trifft dann auch nur die vierte Zeile zu. Es sollte wohl eher so aussehen:
user1@example.com user1@example.com user2@example.com user2@example.com user3@example.com user3@example.com @example.com user1@example.com
Am 19.03.2016 um 10:49 schrieb Alex JOST:
Am 19.03.2016 um 09:43 schrieb webmaster:
ich wollte mir auf meinem Postfix eine Catch-all Adresse konfigurieren. Dabei habe ich mich an http://www.postfix.com/VIRTUAL_README.html orientiert. Meine **/etc/postfix/virutal** sieht demnach wie folgt aus:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com @example.com user1@example.com
Nun werden jedoch alle E-Mails im Postfach von user1@example.com zugestellt. Also auch jene, die z.B. an user2@example.com gesendet wurden.
Entferne ich die letzte Zeile jedoch, werden E-Mails wie erwartet zugestellt.
In der zweiten Zeile hast Du "user-2" stehen, das ist nicht das selbe wie "user2". Und deshalb trifft dann auch nur die vierte Zeile zu. Es sollte wohl eher so aussehen:
user1@example.com user1@example.com user2@example.com user2@example.com user3@example.com user3@example.com @example.com user1@example.com
Das macht in meinen Augen keinen Sinn. Die Datei **/etc/postfix/virtual** ist doch dazu da, um Aliase für real existierende Postfächer anzulegen. Ich könnte dort daher auch etwas eintragen wie:
pusemuckel@example.com user2@example.com
um alle E-Mails, die an pusemuckel@example.com gesendet zu werden, an das Postfach von user2@example.com weiterzuleiten.
Und wenn ich die vierte Zeile entferne funktioniert es ja auch wie erwartet. Also ohne die Catch-all-Adresse werden E-Mails, die an user-2@example.com gesendet werden, korrekt an user2@example.com weitergeleitet.
Viele Grüße Jörg
[Die Antwort ging leider nur direkt an webmaster, also der Vollständigkeit halber nochmal die Liste]
Am 19.03.2016 um 11:53 schrieb webmaster:
Am 19.03.2016 um 10:49 schrieb Alex JOST:
Am 19.03.2016 um 09:43 schrieb webmaster:
ich wollte mir auf meinem Postfix eine Catch-all Adresse konfigurieren. Dabei habe ich mich an http://www.postfix.com/VIRTUAL_README.html orientiert. Meine **/etc/postfix/virutal** sieht demnach wie folgt aus:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com @example.com user1@example.com
Nun werden jedoch alle E-Mails im Postfach von user1@example.com zugestellt. Also auch jene, die z.B. an user2@example.com gesendet wurden.
Entferne ich die letzte Zeile jedoch, werden E-Mails wie erwartet zugestellt.
In der zweiten Zeile hast Du "user-2" stehen, das ist nicht das selbe wie "user2". Und deshalb trifft dann auch nur die vierte Zeile zu. Es sollte wohl eher so aussehen:
user1@example.com user1@example.com user2@example.com user2@example.com user3@example.com user3@example.com @example.com user1@example.com
Das macht in meinen Augen keinen Sinn. Die Datei **/etc/postfix/virtual** ist doch dazu da, um Aliase für real existierende Postfächer anzulegen. Ich könnte dort daher auch etwas eintragen wie:
pusemuckel@example.com user2@example.com
um alle E-Mails, die an pusemuckel@example.com gesendet zu werden, an das Postfach von user2@example.com weiterzuleiten.
Und wenn ich die vierte Zeile entferne funktioniert es ja auch wie erwartet. Also ohne die Catch-all-Adresse werden E-Mails, die an user-2@example.com gesendet werden, korrekt an user2@example.com weitergeleitet.
OK, hatte nicht verstanden, dass "user-1" ein gewollter Alias ist.
Jedenfalls musst Du Ausnahmen von der Catchall-Adresse explizit nochmal in der Alias-Datei angeben. Also in Deinem Fall wohl so:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com user1@example.com user1@example.com user2@example.com user2@example.com user3@example.com user3@example.com @example.com user1@example.com
Am 19.03.2016 um 12:55 schrieb Alex JOST:
Jedenfalls musst Du Ausnahmen von der Catchall-Adresse explizit nochmal in der Alias-Datei angeben. Also in Deinem Fall wohl so:
user-1@example.com user1@example.com user-2@example.com user2@example.com user-3@example.com user3@example.com user1@example.com user1@example.com user2@example.com user2@example.com user3@example.com user3@example.com @example.com user1@example.com
Ok. Das ist mir entgangen. Mit deinem Hinweis konnte ich es gerade erfolgreich testen.
Vielen Dank. Jörg
participants (3)
-
Alex JOST
-
Robert Schetterer
-
webmaster