Postfix mit web.de als smarthost

fiffi

Active Member
Hallo,
habe kürzlich FreeBSD 7.1 aufgesetzt und die Idee gehabt, die Kiste als Mailserver zu verwenden. Die Idee ist dabei folgende: In meinem Netwerk gibt es momentan zwei User; beide haben eine Emailadresse bei web.de für "offizielle" Mails und diverse andere Adressen bei anderen Providern (die z. B. für Newsletter, Testversions-Registrierungen etc. verwendet werden). Postfix solte so konfiguriert sein, dass die lokalen User auf die jeweiligen web.de-User umgeschrieben werden. Wenn sich nun user1 einloggt (als Frontend habe ich Squirrelmail installiert) und eine Mail ins Internet schickt, wird diese sofort zugestellt. Versucht user2 dasselbe, wird die Mail verworfen und das Log zeigt, dass web.de die Emailadresse für ungültig hält.
Habe diverse foren durchsucht (google ist einer meiner besten Freunde (-;) und weiß allmählich nicht mehr weiter - es muss doch irgendwie gehen.
Hier mal meine main.cf:

alias_maps = hash:/etc/mail/aliases
best_mx_transport = local
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 2
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, $mydomain, $localhost
mydomain = domain.local
myhostname = server.domain.local
mynetworks = 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
relay_domains = $mydomain
relayhost = [smtp.web.de]
sample_directory = /usr/local/etc/postfix/samples
sender_canonical_maps = hash:/usr/local/etc/postfix/sender_canonical
sender_dependent_relayhost_maps = hash:/usr/local/etc/postfix/sender_dependent
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_connection_cache_on_demand = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_password
smtp_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,check_relay_domains

Die Datei sender_dependent sieht so aus:
erster.user@web.de [smtp.web.de]
zweiter.user@web.de [smtp.web.de]

Die sender_canonical:
local.user1 erster.user@web.de
local.user2 zweiter.user@web.de

Und zum Schluss dis sasl_password:
smtp.web.de erster.user:geheimes_passwort
smtp.web.de zweiter.user:geheimes_passwort

Die Zeilen aus /var/log/maillog:
Mar 6 20:50:18 server postfix/smtp[34563]: 0A52B28424: to=<account@provider.de>, relay=smtp.web.de[217.72.192.157]:25, delay=0.41, delays=0.11/0/0.25/0.05, dsn=5.0.0, status=bounced (host smtp.web.de[217.72.192.157] said: 501 ungueltige mail-adresse / invalid mail-address (in reply to MAIL FROM command))
Mar 6 20:50:18 server postfix/cleanup[34562]: 7C57B28452: message-id=<20090306195018.7C57B28452@server.domain.local>
Mar 6 20:50:18 server postfix/bounce[34587]: 0A52B28424: sender non-delivery notification: 7C57B28452
Mar 6 20:50:18 server postfix/qmgr[34549]: 7C57B28452: from=<>, size=2680, nrcpt=1 (queue active)
Mar 6 20:50:18 server postfix/qmgr[34549]: 0A52B28424: removed
Mar 6 20:50:18 server postfix/smtp[34563]: 7C57B28452: to=<zweiter.user@web.de>, relay=smtp.web.de[217.72.192.157]:25, delay=0.3, delays=0/0/0.25/0.05, dsn=5.0.0, status=bounced (host smtp.web.de[217.72.192.157] said: 501 ungueltige mail-adresse / invalid mail-address (in reply to MAIL FROM command))
Mar 6 20:50:18 server postfix/qmgr[34549]: 7C57B28452: removed

Bin für jede Hilfe dankbar...

Fiffi
 
IIRC ist das eine FAQ und geht schlicht und ergreifend nicht. Postfix kann nicht anhand des FROM einen SMART_HOST waehlen. Sendmail kann das von Haus aus auch nicht, gibt aber Patches dafuer.

Wenn mich mein Gedaechtnis nicht taeuscht, dann wird Wietse das auch nicht implementieren. Hast du schonmal versucht, die Mails ohne SMTP AUTH zu relayen?
 
Habs mal ohne SMTP-Auth probiert - erwartungsgemäß klappt das nicht: web.de fordert, dass sich jeder, der Mails über eine web.de-adresse senden will, sich mit Benutzername / Passwort authentifizert.
Ich will ja auch nicht, dass Postfix anhand des FROM-Headers den Smarthost auswählt - der ist immer der gleiche. Mein Ziel ist, dass postfix anhand des FROM-Headers die entsprechenden Benutzernamen / Passwörter mitgibt...
Mal was anderes: Wenn Postfix das nicht kann - gibts nen Mailserver, der das kann und der kein Sendmail-Diplom voraussetzt?
 
Hmmm, ok stimmt, der Smarthost bleibt gleich. Aber ob dann unterschiedliche Auths gehen? Woher soll postfix denn wissen, welcher FROM zu welchem User in deiner Password-Datei gehoert?

Ich meine, du kannst das natuerlich so loesen: Zwei Postfix-Instanzen, eine kennt das Passwort von User1, eine das von User2. Dann brauchst du noch spezielles Routing in Instanz1, welche die Mails von User2 an Instanz2 weitergibt, damit diese dann nach Web.de geht.

Machbar ist das, aber nicht gerade trivial.

Update: Eventuell reicht auch, wenn du einen zusaetzlichen "smtp2.web.de" transport definierst (Port 587 bietet sich hier an) und dem Postfix somit auf die Spruenge hilfst (das Sonderrouting fuer User2 brauchst du natuerlich immer noch, aber die zweite Postfixinstanz koennte man sparen)
 
Naja, ich dachte, die Kombination aus sender_canonical_maps, sender_dependent_relayhost_maps und smtp_sasl_password_maps würde ihm das klarmachen... Ist denn mein Problem soooo außergewöhnlich?
Dein Vorschlag mit den zwei Instanzen ist natürlich nicht schlecht (auch wenn ich keine Ahnung habe, wie das geht), hat aber einen kleinen Haken: Momentan sind wir zwei User; wenn irgendwann mal einer oder mehrere dazukommen, wirds ziemlich haarig...
 
Es gibt MUAs die kein SMTP sprechen, geschweige denn SMTP AUTH (zB mutt(1) oder mail(1) oder "sendmail", letzteres fuer funktionierendes send-pr(1) unerlaesslich)


Das mit der zweiten Postfix-Instanz klingt schlimmer als es ist, vielleicht reicht es in der master.cf fuer jeden User einen weiteren transport zu definieren "smtp-user1", welcher mittels -o sasl_auth_maps=passwd.user1 dann den parameter fuer das laufende postfix ueberschreibt.

Elegant wird das so oder so nicht ...
 
Einen "klassischen" MUA wie Outlook oder Thunderbird wollen wir nicht benutzen - auf dem Mailserver läuft Squirrelmail, das soll uns genügen...
Nochmal zu meiner frage von heute Morgen: Wenn Postfix sie SMTP-Auth-Einstellungen nicht anhand des lokalen Benutzers ändern kann: Gibt es einen MTA, der's kann?
 
msmtp würde ich auch vorschlagen. Dann kann auch jeder User seinen eigenen Account verwalten.
Bei web.de kann man ohne smtp auth emails verschicken, wenn zuvor die Mails abgeholt wurden.
 
Hallo,
sry ertsmal ich habs nicht voll durchgelesen,
ich benutze Web.de seit Jahren war und muss wieder einrichten das Posfix als client fungiert,es ist möglcih einzu richtenfür einen User, wenn Zwei sind kann mann noch dritten generellen einrichen der sich beim smtp.web.de authenfiziert und die mails zustellt ansonsten benutze ich msmtp.
Hier ist link wie man das einrichtet.

http://www.plastic-spoon.de/SMTP-AUTH--mit--Postfix.html

Gruss Menuhin
 
Genau das, was du vorschlägst, will ich nicht: Du bietset Möglichkeiten, wie sich EIN User bei VIELEN Smarthosts authentifiziert. Ich jedoch möchte, dass sich VIELE User bei EINEM Smarthost authentifizieren...
Wenn also eine Mail von dem lokalen User kermit nach draußen geht, sollen andere Zugangsdaten verwendet werden, als wenn der User piggy eine Mail nach draußen schickt... Der Smarthost ist in beiden Fällen derselbe.
Werde mich die Tage mal mit mstmp beschäftigen - ich habe gerade das Mailserver-HowTo von www.bsdbox.de nachgebaut; cool wäre es natürlich, diese Konfiguration (arbeitet mit sendmail) an msmtp anzupasen...
 
Ich glaub, ich hab's: Zwar ein bisschen von hinten durch die Brust ins Auge, aber wass solls ;-)
Ich habe den Axigen Mailserver installiert (den hatte ich schonmal unter Ubuntu) - der kann nämlich genau das (wenn user1, dann smtp-auth so; wenn user2, dann smtp-auth anders)...
Trotzdem danke für die Tips...

Fiffi
 
Ganz banal wäre es doch gewesen mit DNS zu tricksen.

in die SMTP-Auth-Datei für Postfix unterschiedliche Server angelegt (user1.web.de; user2.web.de). Mittels hostdatei ist user1 und user2 weitergeleitet auf die IP von mail.web.de.

So kannste im SASL-Auth dann unterschiedliche Server nutzen für jeden User. Die Idee von MrFixIt fände ich auch sinnvoller, meine Variante sollte aber auch transport-ungeübten genügen *fg*
 
Hm, SSL habe ich nicht beachtet. Dürfte eigentlich nicht gehen, da das Zertifikat ja für ne andere Domain ausgestellt wurde.
 
Zurück
Oben