SSL bei SMTP (postfix) - Debian/Froxlor

zakazak

New Member
Hi, leider bekomme ich die SSL verschlüsselung für SMTP (postfix) bei Debian 6.0 und Froxlor überhaupt nicht hin.

Hat da jemand eine Anleitung oder könnte mir helfen?

Es steht nichts in den log files und SSL verschlüsselung funktioniert einfach nicht.

Danke
 
alias_maps = $alias_database
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
default_destination_concurrency_limit = 20
inet_interfaces = all
local_destination_concurrency_limit = 2
local_transport = local
mailbox_size_limit = 0
message_size_limit = 52428800
mydestination = $myhostname, $mydomain, localhost.$myhostname, localhos t.$mydomain, localhost
mydomain = s1.bestmail.ws
myhostname = s1.bestmail.ws
mynetworks = 127.0.0.0/8
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, r eject_unknown_client_hostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticate d, reject_unauth_destination, reject_unauth_pipelining, reject_n on_fqdn_recipient
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, p ermit_sasl_authenticated, reject_unknown_helo_hostname, reject_unknown_r ecipient_domain, reject_unknown_sender_domain
smtpd_tls_CAfile = /etc/postfix/certs/cacert.pem
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/postfix/certs/smtpd.crt
smtpd_tls_key_file = /etc/postfix/certs/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /var/customers/mail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_uid_maps = static:2000

das kommt dabei raus.
 
Mal schauen ob ich dir weiterhelfen kann, da ich ebenfalls Froxlor nutze in Kombi mit Posftix/dovecot

Die main.cf scheint die Standard einstellung von Froxlor zu sein.
Code:
smtpd_tls_CAfile = /etc/postfix/certs/cacert.pem
smtpd_tls_cert_file = /etc/postfix/certs/smtpd.crt
smtpd_tls_key_file = /etc/postfix/certs/smtpd.key
Sind diese Files auch vorhanden?
Code:
ls /etc/postfix/certs/

Hast du in der master.cf smtps Aktiviert?
 
jop die certificates sind da. Kann es sein das ich beim erstellen was falsch gemacht habe?

an der master.cf hab ich nichts geändert.
#smtps inet n - - - - smtpd
smtps ist also auskomemntiert. Soll ich das "#" wegenehmen?

Danke für deine hilfe !
 
smtps inet n - - - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING

oder

smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING

?

momentan ist mir smtp wichtig da ich diesen mit googlemail verwenden will. Um pop3 sorge ich mich dann erst später ;P

@edit: ich hab erstmal nur "smtps" auskommentiert. Der account funktioniert und senden kann ich. Aber woher weiß ich jetzt eigtl. ob smtp SSL benutzt?

@edit: sieht so aus als würde SSL nicht aktiviert sein?

220 s1.bestmail.ws ESMTP Postfix (Debian/GNU)
EHLO bestmail.ws ESMTP
250-s1.bestmail.ws
250-SIZE 52428800
250-VRFY
250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN
250 DSN
 
Last edited by a moderator:
Es gibt 2 Methoden um SMTP via SSL an zu reden:
- implizit via Port 465 (deprecated, nicht empfohlen)
- explizit mit 'starttls' via Port 25 / 587

Soweit ich das sehen kann hast du implizites SSL freigeschaltet
Allerdings solltest du, zumal bei Mailserver, nicht random an den Befehlen herumspielen da du ganz schnell ein open_relay bauen kannst welches dir jede Menge Karmapunkte bei Spammer und Abusemeldungen von Rest der Welt einbringt.
 
Sorry, das ich mich einmische, aber ich las dies hier gerade und es interessiert mich zu wissen, warum SSL per Port 465 nicht mehr empfohlen wird. Als ich meinen Mailserver einrichtete, konnte man dort auch wählen, ob ebenfalls Port 465 per SSL anzusprechen ist, da somit auch Mobile Geräte in den "Genuss" kommen, sich am Mailserver per SSL zu authen.
 
implizit via Port 465 (deprecated, nicht empfohlen

Warum das nicht empfohlen ist, würde mich jetzt auch interessieren.
Meine Config sieht z.b. vor
mail1.example.com mit SSL auf 465
mail2.example.com ohne SSL auf 587
und Port 25 ist dicht.

Nach deiner Aussage wäre es ja dann auch nicht empfohlen POP auf 995 laufen zulassen, oder sehe ich das falsch?

@zakazak An sonst wie d4f schon schreibt laufen die Mails über 465 sendest du via SSL.


Hier kannst du test ob dein Server ein Open Releay ist.
 
@bmexx: danke, sieht so aus als wäre bei mir kein open relay :)

anscheinend passt die master.cf so also:

smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING

Bei Thunderbird habe ich als smtp port 465 und verschlüsselung SSL eingegeben. E-Mails versenden funktioniert. Allerdings mit "EHLO" wird mir keine verschlüsselung angezeigt. Normalerweise sollte mich thunderbird auch fragen ob ich den zertifikate von meinem mailserver vertrauen möchte?

Es sollte doch die möglichkeit geben SSL zu erzwingen? Sodass ohne verschlüsselung gar kein senden möglich ist? Bzw. frage ich mich gerade warum ich SSL und nicht TSL verwende :P

Danke

@edit: okay es funktioniert. Wurde beim senden nach dem zertifikat gefragt und die mail kam an. Danke an alle ! ;)
 
Last edited by a moderator:
Originally, in early 1997, the Internet Assigned Numbers Authority registered 465 for SMTPS.[1] By the end of 1998, this was revoked when STARTTLS had been specified.[2
Even in 2012, there are still services that continue to offer the deprecated SMTPS interface on port 465 in addition to (or instead of!) the RFC-compliant message submission interface on the port 587 defined by RFC 6409
=>http://en.wikipedia.org/wiki/SMTPS

Wikipedia ist zwar nicht _die_ Referenzquelle aber eine gute Zusammenfassung aktueller Standards und Pseudo-Standards.
Es gibt bereits 2 SMTP-Ports, 25 und 587, da noch einen 3. dabei zu legen ist für die Firewall-Reglungen nicht bekömmlich und auch aufgrund der stark beschränkten Anzahl an privileged Ports nicht freundlich.

Übrigens sollte man dringend, falls noch nicht passiert, Port 587 aktivieren (ist nicht Default), da viele ISP's entweder immer oder bei hoher Trojaneraktivität Port25 komplett blockieren und somit reihenweise Kunden sich über Fehler beim Versand beschweren.
 
Danke d4f, siehst man lernt nie aus das wusste ich so nicht ich kannte denn 465 als Standard Port für SSL gibt dir ja auch wirklich jeder Client vor. Werde das bei neuen Systemen aber mit in Betracht ziehen bestehende Systeme jetzt radikal umzustellen wäre aber Quatsch, don't touch und so ;) und sinnlos Stress für die Kunden.
 
Für impliziten SMTP-over-SSL ist es korrekt, allerdings sollten aktuelle Clients standardmässig expliziten SSL (starttls) vorziehen, respektiv automatisch verwenden sofern verfügbar.
 
Soweit läuft alles perfekt.

Courier - IMAP - mit SSL
Postfix - SMTP - mit SSL

Könnte mir jetzt bitte noch jemand sagen wie ich sowohl bei IMAP als auch SMTP die SSL bzw. TLS Verschlüsselung erzwinge? Das also eine unverschlüsselte verbindung gar nicht mehr möglich ist?

Eine weiter Frage hätte ich dann auch noch:

Thunderbird gibt mir bei der passwort eingabe ein paar optionenen:
No auth
normal password
encrypted password
....

momentan funktionierts nur mit "normal password". Könnte ich da noch mehr "schutz" aktivieren und "encrypted password" verwenden?

Danke
 
Ob das Passwort vor dem Versand gehasht wird oder nicht ist bei verschlüsselten Verbindungen mehr oder weniger irrelevant; wenn jemand die mitlesen kann hast du ganz andere Probleme.
Du solltest allerdings darauf achten dass das auf dem Server gespeicherte Passwort nur als Hash und nicht in reiner Textform vorliegt.

Für Postfix ist es smtpd_tls_security_level = encrypt
=> http://www.postfix.org/postconf.5.html#smtpd_tls_security_level
 
Danke @d4f, für Deine Erklärungen!

Ich werdn morgen früh aus der Config die Möglichkeit der Nutzung für Port 465 SSL entfernen. So wichtig ist mir der Mail-Check vom Server per Mobiler-Geräte auch nicht. Ggf. geht es auch ohne Nutzung von 465 ebenso gut. Ist ein relativ neues HTC, mit dem ich den Mailserver auf Mails prüfe.
Evtl. auch direkt in einem "Abwasch" 587 aktivieren. Ich bin ja "der einzige Kunde" auf dem Server und in den Clients den Port von 25 zu ändern, sollte nicht das Problem sein...

Vielleicht ziemlich dumme Frage (auch wenn der Veolksmund sagt, das es solche Fragen nicht gibt): Port 25 - wenn ich 587 aktiviere, soll ich 25 schließen? Also ändern oder hinzufügen?

zakazak said:
Normalerweise sollte mich thunderbird auch fragen ob ich den zertifikate von meinem mailserver vertrauen möchte?
Hast Du sie einmal "für immer" akzeptiert? - Dann wird die Frage nicht mehr gestellt in Zukunft und die zertifikate akzeptiert. Ich nutze "kmail" meiner KDE-Installation auf meinem Home-System, habe die zertifikate NICHT dauerhaft akzeptiert, werde bei jeder Session einmal gefragt, ob ich akzeptieren möchte und mir wird das Zertifikat gezeigt.

PS. In der Postfix-Config ist die Angabe "pop3s/imaps" obsolete. Postfix beschwert sich beim Start darüber, das sie keine Funktion mehr haben, pop3/imap reicht und man pop3s/imaps aus der Config entfernen solle.
 
Last edited by a moderator:
Port 25 - wenn ich 587 aktiviere, soll ich 25 schließen? Also ändern oder hinzufügen?
Nein. Port-25 gilt für einkommende Emails ohne Authentifizierung (also Emaisl welche du empfängst) während 587 ausschliesslich mit Zugangsdaten zu verwenden ist.
Solltest du also 25 deaktivieren kriegst du keine neuen Nachrichten mehr =)

Ist ein relativ neues HTC, mit dem ich den Mailserver auf Mails prüfe.
Exchange-Postfächer sind für mobile Geräte um einiges besser geeignet; nicht nur dass sie Nachrichten pushen können sondern der Fakt dass nicht alle X Minuten eine Verbindung geöffnet werden muss und somit der Modem länger und öfter im RRC State 'idle' (aka: Fast dormancy) hängen kann. (Ausser das Smartphone kommt mit IMAP-idle klar was aber leider äusserst selten ist)

Eine kostenfreie und einfache Lösung zur Realisierung in Kombination mit bestehendem IMAP/SMTP Server ist das PHP-Skript z-Push.
Eine modifizierte Version welche auch den Email-Versand zulässt kann ich dir auf Wunsch gerne hochladen.

Positiver Nebeneffekt; funktioniert auch im Netz der deutschen T-Mobile welche ja so nett ist IMAP, POP3 und SMTP nur für eigene Mailserver zu zu lassen.
 
Danke Dir, d4f! Ich probiers später mal aus, in wie weit das Smartphone mit 587 klarkommt. Bin im Moment an dem anderen Rechner. (Dieser hier hat keine Möglichkeit auf den Server zu connecten, das hat nur meiner (PubKeyAuth)).

Zu Port 465:

Dies hatte ich damals in die Config eingefügt:

Code:
Always Encrypted Port (Wrapper Mode)

TLS is sometimes used in the non-standard "wrapper" mode where a server always uses TLS instead of announcing STARTTLS support and waiting for remote SMTP clients to request TLS service. Some clients, namely Outlook (Express), prefer the "wrapper" mode.

To enable wrapper mode on the standard SMTPS port 465, add the following to /etc/postfix/master.cf:

smtps    inet  n       -       n       -       -       smtpd
  [B]-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes[/B]

Die Zeile fliegt nachher wieder raus...

Bin grade auf der Suche, wo ich den Port 587 definiere... Aber das find ich schon. Wegen dem "z-push" komme ich auf Dich zurück, wenn 587 Probleme machen sollte. Danke nochmals!

PS. Das "Shließen" des Port 25 hatte ich hier im Verlauf irgendwo gelesen, mich auch schon gewundert, wie man 25 schließen kann. Irgendwo hier gibts noch soeinen ähnlichen Thread, wo darauf hingewiesen wird, das 25 stets offen bleiben muss, um Mailempfang zu gewährleisten... Aber gut, das Du mir das mit Deinen Worten jetzt nochmal bestätigt hast!
 
Last edited by a moderator:
---Kleiner Nachtrag zu Port 587:---

Für alle Interessierten:

Code:
[B][U]Quelle:[/U][/B] http://wiki.gentoo.org/wiki/Complete_Virtual_Mail_Server/Postfix_additions

---Submission---

Introduction to submission
Mail submission is often incorrectly done on port 25 of the Mail Transfer Aagent (MTA). Mail should actually be submitted on port 587 to the Mail Submission Agent (MSA). Postfix is both an MTA and MSA. There are numerous advantages to having mail deliverd to the MSA by the client as can be seen on wikipedia. The most important however, is that nomadic users, can send e-mail even when port 25 is being blocked by a firewall, as port 587 tends to be more open. Also when only letting authenticated users send e-mail, they could even bypass the spam filter for their outgoing messages.

Configuration:
The submissionb port is enabled in postfix's master.cf it is commented by default including its options.
File/etc/postfix/master.cf Mail submission by postfix

Code:
submission inet n       -       n       -       -       smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

After restarting postfix, this lets the client know, there is STARTTLS availablity, but it is not required (set this to smtpd_tls_security_level=encrypt to enforce encryption) and rejects all mail, except for authenticated users.

Code:
root # /etc/init.d/postfix restart

Note: Additional options can be set and and overridden if so desired.

Testing: Testing should be done by a mail client, and using port 587 for the smtp server port.
 
Last edited by a moderator:
Back
Top