Hallo,
ich ärgere mich gerade gewaltig mit o.g. Thematik und postfix 2.7.x rum.
Es gibt zwei postfix die sowohl für smtp als auch smtpd TLS aktiviert und default auf 'may' haben. Beide besitzen je ein Zertifikat, welche mit Zwischenzertifikat von einer offiziellen CA signiert sind. Der Test gegen die jeweilig gegenüberliegende Partei mittels 'openssl s_client -starttls smtp -CAfile /etc/postfix/ca-bundle.pem -connect $server_ip:25' meldet keine Fehler. Ich möchte nicht ausschließlich TLS einsetzen und auch nicht ausschließlich die Zertifikate verifizieren sondern nur für bestimmte zu definierende Verbindungen Zertifikasvalidierendes TLS nutzen.
Dazu sehe ich 2 Möglichkeiten : 1) smtp_tls_policy_maps für den transport: "[transport] secure" 2) smtp_tls_policy_maps für die empfängerdomain: "domain.tld secure"
Schön wäre noch, das Ganze auch für den 'relayhost' umsetzen zu können (jeweils unterschiedliche Einsatzszenarien). Und wie sichert man so den Traffic zwischen primary und secondary MX?
Auch wenn ich hinter "secure" noch "match=.domain.tld" hänge bekomme ich immer "Server certificate not trusted". Einzig mittels "fingerprint" statt "secure" ist mit die Verbindung gelungen.
Was mache ich falsch, welche Infos braucht Ihr noch?
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Ich bin ein Stück weiter.
Dass die Zwischenzertifikate der TLS-Partner im verwendeten lokalen ca-bundle.pem liegen müssen war mir klar. Dass der Cache 'smptd_tls_session_cache_database' kontraproduktiv zu Änderungen dieses CA bundles ist, hat mich überrascht.
Jetzt habe ich eine über den Transport definierte TLS mit fingerprint und eine mittel Zertifikat im Mode 'secure' laufen.
Soweit so gut, nächster Schritt ist die Kommunikation zwischen primary und secondary MX, hier kann ich weder mit Transport noch mit domains arbeiten. Wie macht man sowas?
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Hallo Ronny,
Ronny Seffner ronny@seffner.de (Fr 14 Dez 2012 08:59:43 CET):
Ich bin ein Stück weiter.
Dass die Zwischenzertifikate der TLS-Partner im verwendeten lokalen ca-bundle.pem liegen müssen war mir klar.
Ich gebe zu, nicht alles verstanden zu haben, aber Zwischenzertifikate können auch von dem geliefert werden, der das Zertifikat hat. Damit der Empfänger/Prüfer des Zertifikats sich dann daraus die Zertifikatskette zusammenbauen kann (das Root-Zertifikat muß natürlich schon beim Empfänger sein).
Soweit so gut, nächster Schritt ist die Kommunikation zwischen primary und secondary MX, hier kann ich weder mit Transport noch mit domains arbeiten. Wie macht man sowas?
Verstehe ich nicht. Was ist in dieser Kommunikations anders als bei der Kommunikation beliebiger MTA untereinander?
Hallo Heiko,
Ich gebe zu, nicht alles verstanden zu haben, aber Zwischenzertifikate können auch von dem geliefert werden, der das Zertifikat hat. Damit der
Einen Parameter für ein 'chainfile' finde ich am postfix nicht. Vielleicht kann man Zertifikat und Zwischenzertifikate aber in ein File zusammenkopieren - für irgendeinen dienst habe ich das schon mal erfolgreich getan. Aber mit diesem Problem kann ich ja vorerst umgehen.
Verstehe ich nicht. Was ist in dieser Kommunikations anders als bei der Kommunikation beliebiger MTA untereinander?
Die '*_tls_policy_map' besteht auch 'key' TAB 'value' (SPACE 'parameter'). Einige Dokumentation besagt, dass 'key' hier die Empfängerdomain oder einen 'value' aus der 'transport_map' beinhalten kann. Letztere wiederum besteht aus Empfängerdomain und Smarthost.
Die '*_tls_policy_map' "zieht" also in jedem Fall dafür, dass die Empfängerdomain bekannt ist (im Zweifel über den Umweg der 'transport_map'). Für einen weiteren MX existiert aber weder ein 'transport_map'-Eintrag noch möchte ich in die '*_tls_policy_map' alle Domains eintragen, für die ich secondary bin (die stehen ja schon in der 'relay_domains'.
Ist das jetzt verständlicher?
Ich suche nach der Möglichkeit die Kommunikation zwischen zwei Servern, unabhängig von Sender/Empfänger erzwungen zu verifizieren und zu verschlüsseln (ohne das global für alle Verbindungen zu erzwingen.
Ich vermute zwei Möglichkeiten, es ist eine Frage der Notation in der '*_tls_policy_map' oder man muss für den/die primary MX doch einen transport anlegen.
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Ich suche nach der Möglichkeit die Kommunikation zwischen zwei Servern, unabhängig von Sender/Empfänger erzwungen zu verifizieren und zu verschlüsseln (ohne das global für alle Verbindungen zu erzwingen).
Natürlich kann ich die '*_tls_security_level' Parameter auf 'may' setzen, dann wird Verschlüsselt, sobald der Partner STARTTLS offeriert. Es geht auch stärker ('encrypt', 'verify', 'secure'), dann würde ich aber alles Unverschlüsselte ausschließen.
Ich will es explizit für eine Punkt-zu-Punkt-Verbindung regeln können.
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Hallo Ronny,
Ronny Seffner ronny@seffner.de (Fr 14 Dez 2012 10:27:51 CET):
Hallo Heiko,
Ich gebe zu, nicht alles verstanden zu haben, aber Zwischenzertifikate können auch von dem geliefert werden, der das Zertifikat hat. Damit der
Einen Parameter für ein 'chainfile' finde ich am postfix nicht. Vielleicht kann man Zertifikat und Zwischenzertifikate aber in ein File zusammenkopieren - für irgendeinen dienst habe ich das schon mal erfolgreich getan. Aber mit diesem Problem kann ich ja vorerst umgehen.
Verstehe ich nicht. Was ist in dieser Kommunikations anders als bei der Kommunikation beliebiger MTA untereinander?
Die '*_tls_policy_map' besteht auch 'key' TAB 'value' (SPACE 'parameter'). Einige Dokumentation besagt, dass 'key' hier die Empfängerdomain oder einen 'value' aus der 'transport_map' beinhalten kann. Letztere wiederum besteht aus Empfängerdomain und Smarthost.
Von Postfix verstehe ich immer noch nichts, aber aus der Perspektive des Wanderers, der des Wegs kommt, würde ich doch mal sagen, daß TLS-Policies niemals von der Domain, sondern immer vom Partner*host* abhängig sind.
Insofernt würde ich gucken, ob ich nicht per Partnerhost spezifizieren kann, ob und in welcher Stärke TLS gemacht wird. Ich meine, das in Abhängigkeit von irgendeiner Domain anzugeben, ist der falsche Ansatz.
(Natürlich darf hier der Hinweis auf Exim nicht fehlen, bei dem diese TLS-Dinge tatsächlich hostweise konfiguriert werden - und eigentlich sind doch diese ganzen MTA irgendwie gleich.)
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
lug-dd@mailman.schlittermann.de