PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix-Verständnisfrage: canonnical schreibt was um?



X_FISH
07.09.10, 00:42
Ich habe gestern übermüdet noch schnell einen Mailclient eingerichtet, dabei nicht darauf geachtet was ich als Benutzername eingegeben habe.

Anstatt einer (meiner) gültigen E-Mailadresse anzugeben, habe ich den Benutzernamen auf meinem Postfix im LAN eingegeben.

Resultat: Alle E-Mails gingen zwar raus, aber auf <amy> kamen irgendwie keine Antworten zurück. *doh*

Soweit alles klar. Einfach die Adresse im MUA eingetragen und gut.

Aber was passiert ist würde ich dann doch gerne verstehen: Die Empfänger erhielten nicht etwa »Vorname Nachname <amy>« als E-Mailadresse angezeigt, sondern es wurde vom jeweiligen Server der die Mail empfangen hat umgeschrieben:

GMX änderte es in ...@pop.gmx.net
Web.de änderte es in ...@pop3.web.de
Mein ISP änderte es in ...@pop.MEINISP.TLD
etc.

Frage 1

Wie ist zu erklären das der Zielserver den Mailnamen abändert und zu einer vermeindlich gültigen E-Mailadresse ändert?

Frage 2

Ich dachte bisher der Eintrag in /etc/postfix/sender_canonical schreibt in jedem Fall auch »From:« im Header um. Geändert bzw. eingefügt ist lediglich »Return-Path:« mit der in der sender_canonical angegebenen und gewünschten E-Mailadresse.

Wäre /etc/postfix/generic (http://www.postfix.org/ADDRESS_REWRITING_README.html#generic) die Lösung damit dies nicht noch einmal passieren kann?

Vielen Dank für eine klärende Antwort im Voraus,

Martin

TheDarkRose
07.09.10, 06:37
http://www.postfix.org/ADDRESS_REWRITING_README.html#standard


Rewrite "user" to "user@$myorigin"

This feature is controlled by the boolean append_at_myorigin parameter (default: yes). You should never turn off this feature, because a lot of Postfix components expect that all addresses have the form "user@domain".

NOTE: Postfix versions 2.2 and later rewrite message headers from remote SMTP clients only if the client matches the local_header_rewrite_clients parameter; otherwise they append the domain name specified with the remote_header_rewrite_domain configuration parameter, if one is specified. To get the behavior before Postfix 2.2, specify "local_header_rewrite_clients = static:all".

If your machine is not the main machine for $myorigin and you wish to have some users delivered locally without going via that main machine, make an entry in the virtual alias table that redirects "user@$myorigin" to "user@$myhostname". See also the "delivering some users locally" section in the STANDARD_CONFIGURATION_README document.

Sprich du musst den Parameter append_at_myorigin in deiner main.cf auf yes setzen, das es nächste mal deine Domain an den Benutzer hinzugefügt wird.


Zu Frage 1
es wird eine Adresse immer als irgendwas@host benötigt, darum wird es von deren Servern umgeschrieben.

zu Frage 2
ob nun wirklich der Header umgeschrieben wird oder nicht wird durch die Parameter local_header_rewrite_{client,domain} bestimmt.

http://www.postfix.org/ADDRESS_REWRITING_README.html#canonical

NOTE: Postfix versions 2.2 and later rewrite message headers from remote SMTP clients only if the client matches the local_header_rewrite_clients parameter, or if the remote_header_rewrite_domain configuration parameter specifies a non-empty value. To get the behavior before Postfix 2.2, specify "local_header_rewrite_clients = static:all".

X_FISH
07.09.10, 10:12
Dann ist mein Problem, dass mein Postfix derzeit »alles« annimmt.

Ich kann im MUA eine beliebige Information eingeben, beispielsweise

amy@farnsworth.futurama

Über /etc/postfix/sender_canonical wird erfolgreich umgeschrieben wenn ich etwas direkt von der Kommandozeile sende.

Ich habe gerade noch die Variante mit /etc/postfix/generic ausprobiert, funktioniert ebenfalls.

Aber eben nur wenn ich einen Absender im MUA angebe, welcher in /etc/postfix/generic steht.

Wie kann ich Postfix so konfigurieren, dass er nur bestimmte Absender zulässt?

Vielen Dank im Voraus, Martin

TheDarkRose
07.09.10, 10:16
wie sieht übehaupt dein main.cf aus (postconf -n)

X_FISH
07.09.10, 10:35
Postfix soll E-Mails aus dem LAN an den Smarthost smtp.gaskutsche.de weiterleiten.

Server hat die IP 192.168.56.2
Hostname und Domain: farnsworth.futurama

Aus dem LAN greift ein Client auf den Server zwecks Mailversand und Abrufen der Mails über dovecot zu.

Der Client authentifiziert sich über Username und Passwort für den Versand der Mails.

postconf -n:


alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = farnsworth.futurama, localhost.futurama, localhost
myhostname = farnsworth.futurama
mynetworks = 127.0.0.0/8,192.168.56.0/24 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = smtp.gaskutsche.de
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_security_options = noanonymous
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

TheDarkRose
07.09.10, 12:16
Wieder einer der keine *_restrictions setzt.

http://www.postfix.org/SMTPD_ACCESS_README.html#lists

http://www.postfix.org/SASL_README.html#server_sasl_enable
Punkt Envelope sender address authorization


By default an SMTP client may specify any envelope sender address in the MAIL FROM command. That is because the Postfix SMTP server only knows the remote SMTP client hostname and IP address, but not the user who controls the remote SMTP client.

This changes the moment an SMTP client uses SASL authentication. Now, the Postfix SMTP server knows who the sender is. Given a table of envelope sender addresses and SASL login names, the Postfix SMTP server can decide if the SASL authenticated client is allowed to use a particular envelope sender address:


Edit, dein Client kann sich gar nicht am Server authen, da du SASL nur für den Postfix als Client (smpt_*) aktiviert hast aber nicht für den Server (smtpd_*)

X_FISH
07.09.10, 18:04
Die einfachsten Anleitungen geben leider diesen Punkt nicht an - und verweisen einen leider auch nicht weiter.


Edit, dein Client kann sich gar nicht am Server authen, da du SASL nur für den Postfix als Client (smpt_*) aktiviert hast aber nicht für den Server (smtpd_*)

Dann werde ich mir mal auch noch

http://wiki.ubuntuusers.de/Postfix/Erweiterte_Konfiguration

und

http://wiki.ubuntuusers.de/Postfix/Erweiterte_Konfiguration#Sender-abhaengige-Authentifizierung

zu Gemüte führen.

THX, Martin