PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix mit TLS und Fetchmail



Urbanus
12.04.04, 02:32
Hi,

ich habe nach der c't-Anleitung (Heft 8/04) meinen Postfix-Server mit TLS ausgestattet. Dummerweise mag das mein Fetchmail wohl gar nicht und meldet folgenden Fehler:

Apr 12 02:20:00 minasmorgul fetchmail[25439]: fetchmail 6.2.5 Dämon wird gestartet
Apr 12 02:20:07 minasmorgul fetchmail[25439]: 1 Nachricht für xxxxxxxxxxx (1489 Oktetts).
Apr 12 02:20:07 minasmorgul fetchmail[25439]: Nachricht xxxxxxxxxxx:1 von 1 wird gelesen (1489 Oktetts)
Apr 12 02:20:08 minasmorgul postfix/smtpd[25442]: connect from localhost[127.0.0.1]
Apr 12 02:20:09 minasmorgul fetchmail[25439]: SMTP-Fehler: 530 Must issue a STARTTLS command first
Apr 12 02:20:09 minasmorgul postfix/smtpd[25444]: connect from localhost[127.0.0.1]
Apr 12 02:20:10 minasmorgul postfix/smtpd[25444]: disconnect from localhost[127.0.0.1]
Apr 12 02:20:11 minasmorgul fetchmail[25439]: geflusht
Apr 12 02:20:19 minasmorgul fetchmail[25439]: beendet mit Signal 15
Apr 12 02:20:19 minasmorgul postfix/smtpd[25442]: lost connection after EHLO from localhost[127.0.0.1]

Meine main.cf hat zwar den localhost erlaubt, aber das scheint irgendwie nicht zu reichen. Hier ein kleiner Ausschnitt:

mynetworks = 192.168.68.0/24 127.0.0.0/8 localhost
smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_maps, reject_unauth_destination, permit_auth_destination smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = no smtpd_use_tls = yes smtpd_enforce_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/private/smtpd.key smtpd_tls_cert_file = /etc/ssl/private/smtpd.crt
smtpd_tls_security_options = noanonymous
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
Ich dachte eigentlich, dass ich mit dem "mynetworks"-Eintrag einen Fetchmail-Zugriff erlauben würde?!
Hat da jemand eine Idee, was schief läuft? Danke

Urbanus

CYP
12.04.04, 10:18
ich denke mal das ist das problem:

smtpd_enforce_tls = yes

damit erzwingst du das der client auf jenen fall ein starttls machen muss bevor er sich anmelden kann

entweder du setzt das auf no

oder die bessere möglichkeit -> du sagst fetchmail er soll ssl benutzen

fetchmail --ssl + optionen

Urbanus
12.04.04, 10:53
Mmmh, das klappt wohl nicht. Soweit ich nachgelesen habe ist die SSL-Option für das *Abholen* von Mails. Fürs Ausliefern geht das wohl nicht. Zumindest sieht das Log danach aus, nachdem ich die SSL-Option in /etc/init.d/fetchmail eingetragen habe:

Apr 12 10:32:13 minasmorgul fetchmail[26264]: fetchmail 6.2.5 Dämon wird gestartet
Apr 12 10:32:14 minasmorgul fetchmail[26264]: Server-CommonName stimmt nicht überein: www.snakeoil.dom != mail.xxx.xxx
Apr 12 10:32:18 minasmorgul fetchmail[26264]: 2 Nachrichten für xxx bei xxx (3690 Oktetts).
Apr 12 10:32:18 minasmorgul fetchmail[26264]: Nachricht xxxxxxxxxxxxxxx:1 von 2 wird gelesen (1598 Oktetts)
Apr 12 10:32:18 minasmorgul postfix/smtpd[26267]: connect from localhost[127.0.0.1]
Apr 12 10:32:19 minasmorgul fetchmail[26264]: SMTP-Fehler: 530 Must issue a STARTTLS command first
Apr 12 10:32:20 minasmorgul postfix/smtpd[26269]: connect from localhost[127.0.0.1]
Apr 12 10:32:21 minasmorgul postfix/smtpd[26269]: disconnect from localhost[127.0.0.1]
Naja, hab jetzt das enforce_tls ausgeschaltet und es tut. Danke für den Hinweis!

Terran Marine
12.04.04, 14:53
Naja, hab jetzt das enforce_tls ausgeschaltet und es tut. Danke für den Hinweis!

Damit muss die Verbindung jetzt aber nichtmehr mit tls/ssl verschlüsselt werden,

ist dies wirklich das, was du willst ?

Alternativ kannst du fetchmail anweisen, nicht über tcp/ip 25 sondern über /usr/sbin/sendmail einzuweisen, dann kannst du enforce drinlassen.

Gruß
Terran

Urbanus
12.04.04, 15:57
Was ich will ist folgendes: ich möchte Mails auch außerhalb von zu Hause über den Server schicken können, gleichzeitig soll das Ding natürlich nicht als offenes Relay dienen können. Die Anregungen wie das geht habe ich aus der letzten c't und es funzt ja soweit auch. Dass fetchmail kein TLS kann ist aber eben undünstig. Die direkte Auslieferung über sendmail kam mir auch schon in den Sinn, da muss ich nur mal dumm fragen: geht dann die Auslieferung noch über procmail? Damit filtere ich nämlich Spam raus und sortiere ein paar Mailinglisten weg.

Momentan sieht mein Setup so aus:
fetchmail holt alles ab und liefert es über SMTP an postfix, der das dann über procmail filtert und mittels cyrdeliver in mein IMAP-Postfach schiebt. Naja, damit habe ich meine dumme Frage dann wohl auch schon gleich selbst beantwortet :rolleyes:

Urbanus
20.07.04, 01:04
Damit muss die Verbindung jetzt aber nichtmehr mit tls/ssl verschlüsselt werden,

ist dies wirklich das, was du willst ?

Alternativ kannst du fetchmail anweisen, nicht über tcp/ip 25 sondern über /usr/sbin/sendmail einzuweisen, dann kannst du enforce drinlassen.
Das klappt leider nicht. Wenn ich


mda "/usr/sbin/sendmail ..."

in der gloabeln fetchmailrc setze, habe ich das selbe Problem wie beim direkten Ausliefern an Port 25. Bisher habe ich auch keinen Weg gefunden Procmail als MDA einzustellen, weil der Benutzer dann irgendwie nicht erkannt wird. Hat vielleicht jemand fetchmail mit Auslieferung direkt an Procmail am Laufen und kann mir sagen wie das geht? Danke!

zini2001
03.01.05, 01:56
moin....ich war grad so fies am verzweifeln....
hatte das gleiche problem. c't 2004/08 mit der einstellung smtpd_enforce_tls=yes .

und für alle die sich dieses problem angenommen haben....

wenn man an jedem poll eintrag in der fetchmailrc folgendes hinten anhängt:
mda "/usr/sbin/sendmail -oem -f %F %T"
dann sollte die funktion smtpd_enforce_tls=yes in der main.cf stehen bleiben.

EDIT: es funzt zwar..die mail kommen per smtp/pickup rein...aber ich seh noch nicht das die ssl verschlüsslung eine rolle spielt.
wenn jemand rat weis.....

gruß

pixel
08.03.05, 12:00
Hi@all,

ich habe die Verschlüsselung ebenfalls nach diesem Artikel in der CT' gemacht und habe natürlich das gleiche Problem. Ich habe die halbe Nacht im Web gesucht jedoch keine brauchbare Lösung gefunden. Irgendwie kann ich aber noch nicht so richtig glauben das fetchmail sich nicht via TLS an Postfix anmelden kann. Er gibt doch die Meldung aus:

SMTP-Fehler: 530 Must issue a STARTTLS command first

und die wird doch von fetchmail generiert, oder liege ich da falsch? Das klingt für mich so das ich dem Fetchmail-Aufruf ein STARTTLS Command mitgeben muß, nur wie.

Viele Grüße
pixel

Tomek
08.03.05, 12:02
Wie sieht denn deine Postfix- und Fetchmail-Konfiguration aus?

Terran Marine
08.03.05, 12:04
Hi,

du könnest nen zweiten smptd-transport definieren (anderer Port, nur localhost), auf dem du die tls-only Parameter explizit ausschaltest.

fetchmail kann dann darüber unverschlüsselt einliefern.

Gruß
Terran

zini2001
08.03.05, 13:47
moinsen...
@pixel

....Das klingt für mich so das ich dem Fetchmail-Aufruf ein STARTTLS Command mitgeben muß, nur wie. genau das ist auch mein problem...(gewesen).falls du amavis-new benutzen solltest....hier hab ich mich auch schon mal geärgert!
http://www.linuxforen.de/forums/showthread.php?t=166513&highlight=postfix+tls


@Terran Marine

magst du uns bitte etwas genauer sagen wie du das meinst??

pixel
08.03.05, 14:09
Hi@all,

ich habe mich zu früh gefreut. Ich habe jetzt die Option:

smtpd_enforce_tls = no

erst mal wieder deaktiviert. Wenn ich nun von extern versuche eine Mail über den Mailserver zu versenden erhalte ich folgende Fehlermeldung im Server-Log:


Mar 8 13:59:32 postgirl postfix/smtp[29607]: 7F5002409CE0: to=<irgendwer@irgendwo.de>, relay=smtp.provider.de[193.1xx.1xx.58], delay=2, status=bounced (hostsmtp.provider.de[193.1xx.1xx.58] said: 554 <irgendwer@irgdenwo.de>: Relay access denied (in reply to RCPT TO command))

Warum funktioniert das nicht?

Viele Grüße
pixel

emwe
08.03.05, 16:38
smtpd_recipient_restrictions = ...,permit_sasl_authenticated,...
Hast du denn auch deinen Mailclient so konfiguriert, dass er dich am postfix anmeldet?

Gruß,

emwe

pixel
08.03.05, 17:19
Hi@all,


Hast du denn auch deinen Mailclient so konfiguriert, dass er dich am postfix anmeldet?
Ja, habe ich. Der Client meldet sich am heimischen Postfix an und überträgt dann auch die Mail dort hin. Nur der Postfix kann das Relay zum ISP nicht ausführen. Woran kann das liegen? Hier mein main.cf



queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_maps = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = postgirl.dreampixel
program_directory = /usr/lib/postfix
inet_interfaces = all
masquerade_domains = dreampixel.de, dreampixel.de
mydestination = $myhostname,localhost.$mydomain,$mydomain
defer_transports =
disable_dns_lookups = no
relayhost = smtp.dreampixel.de
mailbox_command =
mailbox_transport = lmtp:unix:/data/imap/config/socket/lmtp
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,check_ recipient_maps,reject_unauth_destination,permit_au th_destination
smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /usr/share/ssl/misc/imapcert.pem
smtpd_tls_key_file = /usr/share/ssl/misc/imapkey.pem
smtpd_use_tls = yes
smtpd_enforce_tls = no
smtpd_tls_auth_only = yes
broken_sasl_auth_clients = yes
smtp_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 10240000
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

Terran Marine
08.03.05, 18:53
@Terran Marine

magst du uns bitte etwas genauer sagen wie du das meinst??

Wird z.b. im Filter-Readme beschrieben :

http://www.postfix.org/FILTER_README.html


/etc/postfix/master.cf:
# ================================================== =================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
# ================================================== =================
localhost:10026 inet n - n - 10 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_chec ks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,rej ect
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

*

Dort die Option *tls* explizit entfernen.

Und fetchmail darauf hingehend umleiten lassen,
wahrscheinlich reicht sogar ein localhost:25, dann muss postfix nicht umkonfiguriert werden.

Gruß
Terran

Terran Marine
08.03.05, 18:57
Hi@all,


Ja, habe ich. Der Client meldet sich am heimischen Postfix an und überträgt dann auch die Mail dort hin. Nur der Postfix kann das Relay zum ISP nicht ausführen. Woran kann das liegen? Hier mein main.cf


Stimmen den die beiden smtp_sasl* Optionen ?
Sind Domäne und Passwort richtig eingetragen ?
Könnte mir auch vorstellen das der Relayhost nur bestimmte Absender in Verbindung mit dem SMTP AUTH gilt.

Gruß
Terran

pixel
08.03.05, 20:39
Hi,


Stimmen den die beiden smtp_sasl* Optionen ?

Genau daran lag es. Ich habe die Option:

smtp_sasl_auth_enable = yes

gesetzt und schon funktioniert es. Ich habe diese Option gemäß dem Artikel in der CT' auf "no" gesetzt. Was genau bedeutet diese Option?

Viele Grüße
pixel

Tomek
08.03.05, 21:02
http://www.postfix.org/postconf.5.html#smtp_sasl_auth_enable
und:
http://www.postfix.org/postconf.5.html#smtpd_sasl_auth_enable