Postfix, nach Umstellung auf TLS, kein lokaler Versand

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Postfix, nach Umstellung auf TLS, kein lokaler Versand

Beitrag von Exxter » 21.06.2017 14:59:41

Hallo,
ich habe mein Postfix auf TLS und Port 465 umgestellt. Meine main.cf:

Code: Alles auswählen

root@server ~ # postconf -n
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
compatibility_level = 2
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
message_size_limit = 400480000
mydestination = $myhostname, server.de, server, localhost.localdomain, localhost
myhostname = server.de
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_hostname
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = reject_unknown_address
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/private/linux_cert_und_ca.pem
smtpd_tls_key_file = /etc/ssl/private/server.de.key
smtpd_tls_received_header = yes
smtpd_tls_security_level = encrypt
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
root@server ~ #
Vorher wars so, dass lokale Programme Mails verschicken konnten. Dann habe ich den Server geöffnet damit Linux-User darüber per TLS Mails verschicken können. Das funktioniert auch alles wunderbar. Doch ein Java Programm kann seitdem keine Mails mehr verschicken, es kommt:

Code: Alles auswählen

2017-06-21 14:48:09.364 ERROR 27883 --- [nio-8443-exec-8] o.s.u.core.mail.MailSender               : Sending email to user@example.net failed

org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first

        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:474) ~[spring-context-support-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:307) ~[spring-context-support-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:296) ~[spring-context-support-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
Ich verstehs nicht, zB. OTRS welches auf dem selben System läuft, kann normal Mails verschicken. Wenn ich mit "mail user@example.org" eine Mail schicke, kommt die auch an.

Ach und die Warnungen oben, meine /etc/postfix/master.cf:

Code: Alles auswählen

root@server ~ # postconf -M
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
smtp       inet  n       -       y       -       -       smtpd
submission inet  n       -       y       -       -       smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=$mua_client_restrictions -o smtpd_helo_restrictions=$mua_helo_restrictions -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
smtps      inet  n       -       y       -       -       smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=$mua_client_restrictions -o smtpd_helo_restrictions=$mua_helo_restrictions -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
pickup     unix  n       -       y       60      1       pickup
cleanup    unix  n       -       y       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       y       1000?   1       tlsmgr
rewrite    unix  -       -       y       -       -       trivial-rewrite
bounce     unix  -       -       y       -       0       bounce
defer      unix  -       -       y       -       0       bounce
trace      unix  -       -       y       -       0       bounce
verify     unix  -       -       y       -       1       verify
flush      unix  n       -       y       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       y       -       -       smtp
relay      unix  -       -       y       -       -       smtp
showq      unix  n       -       y       -       -       showq
error      unix  -       -       y       -       -       error
retry      unix  -       -       y       -       -       error
discard    unix  -       -       y       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       y       -       -       lmtp
anvil      unix  -       -       y       -       1       anvil
scache     unix  -       -       y       -       1       scache
maildrop   unix  -       n       n       -       -       pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp       unix  -       n       n       -       -       pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail     unix  -       n       n       -       -       pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp      unix  -       n       n       -       -       pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n       n       -       2       pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman    unix  -       n       n       -       -       pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
root@server ~ #

Ich habe nur auskommentiert, nichts hinzugefügt/verändert. System ist ein Debian Stretch.
Jemand eine Idee, wie ich beides hinbekomme, sowohl TLS von außen als auch alle Programme von innen dürfen ohne Anmeldung verschicken?

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Postfix, nach Umstellung auf TLS, kein lokaler Versand

Beitrag von wanne » 22.06.2017 17:30:52

Du hast

Code: Alles auswählen

smtpd_tls_security_level = encrypt
=> Du lässt ausschließlich verschlüsselte Verbindungen zu. Das Javaprogramm versucht unverschlüsselt Mails zu verschicken. Das lehnt der Server ab.
Du musst entweder das Java-Programm anweisen SSL zu verwenden (Was das OTRS offensichtlich schon tut und sowieso sinnvoll ist.) oder smtpd_tls_security_level auf may setzen um auch Klartext-Mails zu empfanen.

Btw: ist das da dann noch doppelt:

Code: Alles auswählen

smtpd_tls_auth_only = yes
Die Zeile sagt, dass Anmeldungen nur verschlüsselt möglich sind. Da du eh grundsätzlich nur Verschlüsselt kommunizierst ist das doppelt.
rot: Moderator wanne spricht, default: User wanne spricht.

TomL

Re: Postfix, nach Umstellung auf TLS, kein lokaler Versand

Beitrag von TomL » 22.06.2017 18:11:18

Das ist imho so richtig:

Code: Alles auswählen

smtpd_tls_security_level = encrypt

Code: Alles auswählen

smtpd_tls_auth_only = yes
smtpd_tls_security_level beschreibt hier in diesem Beispiel, das STARTTLS verwendet wird. Und wenn es 'so' definiert ist,
ist smtpd_tls_auth_only = yes implizit. Deshalb ist es korrekt gesetzt und hat imho nichts mit Flat-PWD oder doppelter PWD-Verschlüsselung zu tun. Statt "encrypt" könnte es auch "may" lauten, und dann bestimmt smtpd_tls_auth_only = no, dass sowohl verschlüsselte als auch unverschlüsselte Verbindungen erlaubt sind - z.B. für Clients, die keine Verschlüsselung können.

Ich sehe hier eher ein anderes Problem, bzw. sehe ich eine bestimmte Einstellung eben nicht. Wo ist virtual_alias_maps und virtual_transport definiert, die den lokalen Transport eigentlich übernehmen...?... und zwar nicht an den SMTPD, sondern an den LMTPD. Ich könnte mir vorstellen, dass der lokale Transport noch nie funktioniert hat, sondern IMMER über einen Relay-Host gegangen ist. Insofern glaube ich, dass das Problem eher eine andere Ursache hat. Möglicherweise stimmt was bei den Sender-Depend Restrictions nicht, weil ein lokaler Absender ja kein wirklicher FQDN-Absender ist und der neue Relay-Host eben genauer darauf schaut, ob der Absender im Header auch wirklich zum Account passt. Keine Ahnung, obs wirklich so sein kann... ist nur so eine Vermutung, denn warum sollte man den Port ändern.......und die großen Mail-ISP ändern ja nicht mal eben ihre Ports einfach so zwischendurch..... wenn ich da was verwechselt habe... sorry.... kann passieren....
Zuletzt geändert von TomL am 22.06.2017 18:18:31, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix, nach Umstellung auf TLS, kein lokaler Versand

Beitrag von rendegast » 22.06.2017 18:18:18

mua_*_restrictions
finden sich im Paket postfix (stretch) nur in dieser master.cf
(dabei auch die manpages entpackt).
Also auch nicht in den binaries.

Somit sind es leere Variablen, die wohl erst mit sinnvollen Werten angelegt werden müssen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten