postfix client zum smtpd

R

rikola

Foren Gott
Hallo,

immer mal wieder versuche ich, das postfix auf meinem Laptop (Debian squeeze) so einzurichten, dass es sich fuer mich auf dem smtp-server einloggt (Debian Lenny, zu dem ich auch root-Zugang habe, nennen wir ihn mal my-server.net), damit ich mit mutt meine Emails verschicken kann. Jedesmal verzweifle ich:

Wenn ich alpine benutze und in ~/.pinerc eintrage
Code:
smtp-server=my-server.net/novalidate-cert/tls/user=rikola
dann fragt mich alpine auf meinem Laptop zum verschicken nach dem Passwort, und es funktioniert.

Da das fuer mutt nicht geht, moechte ich eben postfix so einrichten, dass es das fuer mich bei der Kommunikation mit dem Server uebernimmt.

Meine /etc/postfix/main.cf auf dem laptop:
Code:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no
database = btree:${data_directory}/smtpd_scache

myhostname = my-server.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = laptop.net, localhost.laptop.net, localhost
relayhost = my-server.net
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
default_transport = smtp
relay_transport = smtp
inet_protocols = all

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
In sasl_passwd steht:
Code:
 my-server.net     rikola:rikolas_passwort
und ich habe postmap drueberlaufen lassen.

Es bringt alles nichts, die Emails werden stehts mit
Code:
 host my-server.net [xxx.xxx.xxx.xxx] said: 554 5.7.1
Relay access denied (in reply to RCPT TO command)

zurueckgeschickt.

Der Server ist mit
Code:
smtpd_recipient_restrictions = permit_mynetworks,
                               permit_sasl_authenticated,
                               reject_unauth_destination,
                               permit
freigeschaltet, und smtp funktioniert ueber alpine ja auch!

Was muss ich am Client oder am Server noch einstellen, was ich bei pine nicht brauche???

Falls es eine bestimmte Stelle in /etc/log/mail.info gibt, die ueber den Fehler Aufschluss gibt, bitte mitteilen - ich habe keine gefunden und wollte jetzt nicht den ganzen Abschnitt beifuegen.
 
einen relayhost wirst du so nicht angebunden bekommen.
Denn du musst auf dem Postfix-Server unter mynetworks auch die IP der relay-node eingeben sonst verweigert er den Zugriff. Dafür brauchst du eine statische ip. Falls du diese hast ist das kein problem falls nicht überleg dir was anderes.
 
eine statische IP-Adresse habe ich nicht. Wenn die notwendig ist, wozu dient dann die Einschraenkung "permit_sasl_authenticated"? Laut 'man 5 postconf' heisst es:
Code:
smtpd_client_restrictions (default: empty)
       Optional SMTP server access restrictions in the  context  of  a  client
       SMTP connection request.
       [...] [B]the first restriction that matches wins.[/B]

Falls du diese hast ist das kein problem falls nicht überleg dir was anderes.

Das es mit einer festen IP kein Problem ist, dachte ich mir bereits. Wenn ich selber auf 'etwas anderes' gekommen waere, haette ich nicht gepostet, von daher waere mit ein etwas konkreterer Tip ganz recht.
 
wenn du einen relayhost verwendest, spielt sasl keine rolle, da du lokal verschickst und dann zum relay mit smtp nach draußen.

poste mal bitte `postconf -n`
vom server also nich von deinem lokalen postfix ... und verschleier die IPs :>
 
Du kannst einfach mal auf beiden Mailservern das Loglevel in der master.cf hochstellen (Parameter -v an den smtpd-Prozess übergeben) um zu sehen woran es im Endeffekt scheitert. Läuft dein Postfix evtl. chroot'ed und bekommt daher evtl. keinen Zugriff auf die sasl_passwd?
 
In der log-Datei des Servers erkenne ich keine Anzeichen dafuer, dass ueberhaupt versucht wird, irgendwelche credentials auszulesen geschweige denn, an den Server weiterzugeben!

Log-Auszug vom Client:
Code:
Sep 29 22:04:17 postfix/pickup[11262]: F0B9F9FD1: uid=1001 from=<rikola>
Sep 29 22:04:18 postfix/cleanup[11583]: F0B9F9FD1: message-id=<20090929200417.GA11551@my-server.net>
Sep 29 22:04:18 postfix/qmgr[7973]: F0B9F9FD1: from=<rikola@my-server.net>, size=981, nrcpt=1 (queue active)
Sep 29 22:04:19 postfix/smtp[11585]: F0B9F9FD1: to=<rikola@gmx.de>, relay=my-server.net[xxx.xxx.xxx.xxx]:25, delay=1.2, delays=0.18/0.28/0.74/0.06, dsn=5.7.1, status=bounced (host my-server.net[xxx.xxx.xxx.xxx] said: 554 5.7.1 <rikola@gmx.de>: Relay access denied (in reply to RCPT TO command))

@bitmuncher:
Kann ich die Gespraechigkeit von postfix ueber master.cf hochsetzen?
Ein 'postfix -v reload' scheint nichts zu bringen, leider, ausser auf der Konsole.

Laut 'man 5 postconf' sollte chroot nicht das Problem sein:
Code:
smtp_sasl_password_maps (default: empty)
[...] The  Postfix  SMTP client opens the lookup table before going to chroot
       jail, so you can leave the password file in /etc/postfix.
 
Zuletzt bearbeitet:
Du musst einfach nur in der master.cf den Eintrag für dem smtpd zu 'smtpd -v' ändern um Postfix zu einem detaillierteren Logging zu bewegen.
 
Ja, danke, das habe ich hinbekommen. Leider steht da nach wie vor kein Hinweis, dass der Postfix-client dem Server eine Authentifizierung anboete. Den link von Saeckereier habe ich mir angeschaut und diverse Kombinationen von
Code:
smtp_sasl_mechanism_filter = plain, login
 smtp_sasl_security_options = noanonymous
auf dem client ausprobiert. Leider ohne Erfolg- der Client scheint sich nicht authentifizieren zu wollen. Wie finde ich heraus, ob der Client das versucht?
 
Hmm, du könntest mit ethereal oder ähnlichem die Pakete mitschneiden. Idee: Poste mal die Konfiguration von deinem Server oder versuch bei der pine-Config mal das tls zu entfernen. Ggf. bietet dein Mailserver SASL nämlich nur über TLS-verschlüsselte Verbindungen an.

Alternativ mach einmal folgendes und poste den Output:
Code:
[malte@prometheus ~]$ [b]telnet 192.168.5.200 25[/b]
Trying 192.168.5.200...
Connected to 192.168.5.200.
Escape character is '^]'.
220 server.homenet.de ESMTP
[b]EHLO xxx[/b]
250-server.homenet.de
250-PIPELINING
250-SIZE 12582912
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
[b]QUIT[/b]
221 2.0.0 Bye
Connection closed by foreign host.
(IP musst du durch die deines Servers ersetzen, Rest bleibt.)
 
Ggf. bietet dein Mailserver SASL nämlich nur über TLS-verschlüsselte Verbindungen an.
[/code]
Ja, das tut er - klingt wie eine heisse Spur ;-)
Code:
#> postconf -n
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = blabla-cert
smtpd_tls_key_file = blabla-key
smtpd_use_tls = yes
Was davon muss ich nun wie dem Client mitteilen?
 
ein Postfix server der als Client tedniert, also einen relay-Host hat, wird sich NIEMALS per SASL bei dem relay anmelden. Niemals!
Deswegen sind die restrictions da und das freigegebene Netz.
 
Foexle: genau das Setup (PC im Lokalen Netz -> zentraler Postfix -> Relay bei 1&1) mit Postfix nutze ich. Es geht sehr wohl. Lies dir doch den von mir verlinkten Artikel durch, in dem genau das beschrieben ist oder nutze google für eine Suche. Niemals ist ein ziemlich starkes Wort, zumal Postfix wirklich ein ausgesprochen flexibles Kerlchen ist.

rikola: Versuch in der Postfix-Config des Clients einmal
Code:
smtp_use_tls = yes
mit einzubauen. Das sollte Postfix beim Senden TLS nutzen lassen, sofern verfügbar. Bitte das Logfile posten.
 
Zuletzt bearbeitet:
/var/log/mail.info auf client:
Code:
Sep 30 13:30:10 laptop postfix/postfix-script[20508]: refreshing the Postfix mail system
Sep 30 13:30:10 laptop postfix/master[7971]: reload -- version 2.6.5, configuration /etc/postfix
Sep 30 13:30:43 laptop postfix/pickup[20513]: 1950D9F8C: uid=1001 from=<rikola>
Sep 30 13:30:43 laptop postfix/cleanup[20542]: 1950D9F8C: message-id=<20090930113042.GA20532@my-server.net>
Sep 30 13:30:43 laptop postfix/qmgr[20512]: 1950D9F8C: from=<rikola@my-server.net>, size=434, nrcpt=1 (queue active)
Sep 30 13:30:44 laptop postfix/smtp[20544]: 1950D9F8C: to=<rikola@gmx.de>, relay=www.my-server.net[xxx.xxx.xxx.xxx]:25, delay=1, delays=0.04/0.3/0.53/0.17, dsn=5.7.1, status=bounced (host www.my-server.net[xxx.xxx.xxx.xxx] said: 554 5.7.1 <rikola@gmx.de>: Relay access denied (in reply to RCPT TO command))
Sep 30 13:30:44 laptop postfix/cleanup[20542]: 1D8E49F90: message-id=<20090930113044.1D8E49F90@my-server.net>
Sep 30 13:30:44 laptop postfix/qmgr[20512]: 1D8E49F90: from=<>, size=2279, nrcpt=1 (queue active)
Sep 30 13:30:44 laptop postfix/bounce[20547]: 1950D9F8C: sender non-delivery notification: 1D8E49F90
Sep 30 13:30:44 laptop postfix/qmgr[20512]: 1950D9F8C: removed
Sep 30 13:30:44 laptop postfix/smtp[20544]: 1D8E49F90: to=<rikola@my-server.net>, relay=www.my-server.net[xxx.xxx.xxx.xxx]:25, delay=0.32, delays=0/0/0.2/0.12, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 8FC3F17D32)
Sep 30 13:30:44 laptop postfix/qmgr[20512]: 1D8E49F90: removed
"postconf -n" auf client:
Code:
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
default_transport = smtp
inet_interfaces = loopback-only
inet_protocols = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = localhost,laptop   
myhostname = my-server.net
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relay_transport = smtp
relayhost = my-server.net
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

vielen Dank fuer die Hilfe!
 
Kannst du auf deinem Server testweise SMTP AUTH ohne TLS aktivieren?
 
Habe es auf dem Seerver mit
Code:
smtpd_tls_auth_only = no
smtpd_use_tls = no
versucht - leider keine Aenderung. In der Log-Datei im Server steht nach wie vor etwas ueber tls, der client verliert darueber kein Sterbenswort. Muss ich noch etwas anderes beruecksichtigen?

Hier ein Auszug aus der Log-Datei des servers:
Code:
Sep 30 15:07:02 www postfix/smtpd[15866]: Anonymous TLS connection established from laptop[xxx.xxx.xxx.xxx]: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Sep 30 15:07:02 www postfix/smtpd[15866]: < laptop_gateway.net[xxx.xxx.xxx.xxx]: EHLO my-server.net
Sep 30 15:07:02 www postfix/smtpd[15866]: > laptop_gateway.net[xxx.xxx.xxx.xxx]: 250-my-server.net
Sep 30 15:07:02 www postfix/smtpd[15866]: > laptop_gateway.net[xxx.xxx.xxx.xxx]: 250-PIPELINING
Sep 30 15:07:02 www postfix/smtpd[15866]: > laptop_gateway.net[xxx.xxx.xxx.xxx]: 250-SIZE
Sep 30 15:07:02 www postfix/smtpd[15866]: > laptop_gateway.net[xxx.xxx.xxx.xxx]: 250-VRFY
Sep 30 15:07:02 www postfix/smtpd[15866]: > laptop_gateway.net[xxx.xxx.xxx.xxx]: 250-ETRN
Sep 30 15:07:02 www postfix/smtpd[15866]: match_list_match: laptop_gateway.net: no match
Sep 30 15:07:02 www postfix/smtpd[15866]: match_list_match: xxx.xxx.xxx.xxx: no match
 
Geht das Serverlog noch weiter? Auf dem Client parallel das smtp_use_tls wieder ausgeschaltet?

EDIT: Bitte probier nocheinmal die telnet-Geschichte, die ich etwas weiter vorne aufgeschrieben hatte mit dem SMTP AUTH ohne TLS
 
Entschuldige bitte, das mit dem telnet hatte ich uebersehen.
zunaechst also das, mit smtpd_use_tls am server und smtp_use_tls am client auskommentiert:
Code:
rikola@laptop:~$ telnet xxx.xxx.xxx.xxx 25
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
220 my-server.net ESMTP Postfix (Debian/GNU)
EHLO xxx
250-my-server.net
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host
Das scheint zu funktionieren, denn im normalen Betrieb wird zusaetzlich ein STARTTLS angezeigt.

Wegschicken konnte ich trotzdem nichts:
Hier nun der gesamte Logeintrag vom Server bei einem Mailversuch mit mutt als Anhang (pasten bei so einer langen Datei war mir zu umstaendlich).

In Zeile 502 steht dort der Eintrag:
Code:
Sep 30 16:16:01 www postfix/smtpd[16437]: dict_proxy_lookup: table=unix:passwd.byname flags=lock|fold_fix key=rikola@my-server.net -> status=1 result=
Sep 30 16:16:01 www postfix/smtpd[16437]: maps_find: local_recipient_maps: rikola@my-server.net: not found
Koennte es daran liegen, dass ich mit saslpasswd2 nur den user 'rikola' und nicht 'rikola@my-server.net' angelegt habe? oder ist sasl nun schon wieder etwas ganz anderes?

In Z. 376 steht ja auch, dass
Code:
Sep 30 16:16:01 www postfix/smtpd[16437]: generic_checks: name=permit_sasl_authenticated status=0
 

Anhänge

  • mail.txt
    47,1 KB · Aufrufe: 3
Hmm, ein Problem könnte sein, dass du nur PLAIN anbietest, das wird normalerweise nicht von Postfix genutzt, weil es recht unsicher ist. Welche SASL Implementierung benutzt du? CYRUS? Oder Dovecot?

http://www.postfix.org/SASL_README.html#client_sasl <= Probier mal die unter workarounds angegebenen Optionen und prüfe die anderen.
 
Ich benutze dovecot. Ich hatte gedacht, dass tls die Unsicherheit von plain kompensiert. Ist das nicht so? Ich schaue mir die Seite mal an.
 
Zuletzt bearbeitet:

Ähnliche Themen

postfix migirieren von 2.5. nach 2.10

dovecot und postfix Konfiguration Problem

Mailversand mit Outlook2010 und Postfix unter Synology Linux

E-Mail Empfang, Aliases unter Debian Squeeze

Kleiner Mailserver unter Debian Lenny

Zurück
Oben