[Postfixbuch-users] Zertifikatsbasierende Authentifizierung mit Exchange und Postfix
Julian Pawlowski (lists)
lists at jp-solution.net
Mo Okt 16 00:27:32 CEST 2006
Hallo,
ich möchte mich gerne von einem Exchange-Server an meinem Postfix-Smarthost via SSL-Zertifikat identifizieren, damit dieser dann den Relay erlaubt.
Mir ist klar, dass diese Frage hier nun nicht so 100%-ig mit Postfix zu tun hat, jedoch behandelt ja auch das Buch die allgemeine Nutzung im weiteren Sinne :-)
Also die direkten Fragen vorweg:
In welcher Weise wählt Exchange das zu benutzende Client-Zertifikat beim Weiterleiten/Senden von eMails an einen Smarthost aus (soweit der Smarthost auch ein solches anfordert natürlich)?
Wie kann ich hier das Verhalten beeinflussen und verändern?
Meine Recherchen brachen mich bereits darauf, dass Einstellungen bezüglich des SMTPSVC-Dienstes noch in einer alten Datenbank "metabase database" gespeichert werden (wohl eine Art Vorläufer oder Ableger der Registry). Leider finde ich dazu nirgends ausrechende Doku für die Möglichen Einstellungen dort (auch nicht im MS-Technet). Aber dies nur am Rande... :-)
Also mal im Detail:
Auf der anderen Seite steht ein Postfix Server mit konfiguriertem TLS und den getrusteten RootCAs sowie den MD5-Checksummen für die Client-Zertifikate, die relayen dürfen. Postfix fordert außerdem beim Aufbau einer Verbindung von einem anderen Server ein optionales Client-Zertifikat an (smtpd_tls_ask_ccert=yes).
Nun habe ich bereits seit Längerem die Übertragung über TLS aktiv und diese funktioniert auch problemlos. Die Authentifizierung würde ich nun allerdings gerne von SMTP-Auth auf Client-basierte Zertifikate umstellen. Das funktionierte bei einem meiner eigenen Exchange Server auch problemlos: Exchange baut die Verbindung zum Postfix auf, Postfix fragt ob ein Client-Zertifikat geliefert werden kann, Exchange liefer Client Zertifikat, Postfix vergleicht die MD5-Checksumme und die Validität des Client-Zertifikats und lässt die eMail passieren.
Nun habe ich noch einen anderen Exchange Server bei einem Kunden, bei dem es mir eigentlich viel wichtiger wäre, dass die zertifikatsbasierte Authentifizierung funktioniert. Dort handelt es sich um einen SBS2003-SP2, der Seitens Exchange eigentlich genauso konfiguriert wurde. Die eMails werden auch über TLS verschlüsselt an den Postfix Server übertragen, jedoch präsentiert Exchange trotz Anfrage von Postfix kein Client-Zertifikat, so dass die Authentifizierung immernoch über SMTP-Auth/SASL läuft. Beim Einliefern von eMails an dem Exchange Server jedoch bekommt der Postfix wiederrum jedoch genau das richtige Zertifikat zu sehen, es ist also vorhanden und korrekt installiert.
Der einzige Unterschied zwischen den beiden Servern ist: Mein Server hat eine offizielle IP-Adresse bzw. hat einen von mir festgelegten reverse-Lookup, auf den ein Zertifikat matched. Der Server beim Kunden ist über T-DSL mit einer dynamischen IP angebunden und hat demnach einen veränderbaren Reverse-Lookup, auf den auch kein Zertifikat ausgestellt ist. Das Zertifikat ist hier auf eine DynDNS-Adresse ausgestellt.
Ich vermute deshalb, dass der Exchange beim Kunden kein Zertifikat findet, welches er senden könnte (falls Exchange so "doof" ist und intelligenterweise versucht, selbstständig ein passendes Zertifikat zu finden). Deshalb drängt sich bei mir die Frage auf: In welcher Art und Weise wählt Exchange ein Client-Zertifikat beim Versenden von eMails über TLS aus und kann man das beeinflussen?
Ich würde mich freuen, wenn ihr mir helfen könntet. Hoffe ich habe alles so beschrieben, dass ihr versteht worum es geht.
Gruß
Julian
Mehr Informationen über die Mailingliste Postfixbuch-users