Frage Konfigurieren Sie exim4, um Microsoft Exchange als Smarthost zu verwenden


Meine Firma hat kürzlich eine Active Directory-gesteuerte Microsoft Exchange-Umgebung eingerichtet, um ausgehende Mails zu konsolidieren. Wir haben eine Reihe von Staging-Servern, die jetzt unser MSEXCHG als Smarthost für ausgehende Mail verwenden sollten.

Diese Server befinden sich in der DMZ, weshalb die upvoted Lösung in Authentifizierung bei Exchange 2010 smarthost? ist keine Alternative, da wir es einem Server in der DMZ nicht erlauben können, Mails einfach über unseren Exchange-Server zu verschicken.

Dinge, die wir in MSEXCHG getan haben:

  • Fügen Sie einen Benutzer hinzu (stagingserver@contoso.com)

Dinge, die wir gemacht haben exim4 (8):

  • Verwenden update-exim4.conf (8) (c.f. exim4_files (5)) Wir haben exim konfiguriert exchange.contoso.com:587 als Smarthost.
  • In passwd.client (exim4_files (5)) Ich habe folgende Zeile hinzugefügt: exchange.contoso.com:stagingserver@activedirectory.contoso.com:secret123)

Nach dem Start von exim mit der oben beschriebenen Konfiguration, bekomme ich die folgenden zwei TLS Fehler in Hauptprotokoll:

  • TLS error on connection to ex.contoso.com [192.168.1.8] (recv): A TLS packet with unexpected length was received.
  • TLS error on connection to ex.contoso.com [192.168.1.8] (send): The specified session has been invalidated for some reason.

Unser MSEXCHG weigert sich dann, die Mail zu senden, und der folgende (ultimative) Protokolleintrag erscheint:

** kiewiet@contoso.com R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<root@contoso-stage.com> SIZE=1538: host ex.contoso.com [192.168.1.8]: 530 5.7.1 Client was not authenticated

Weitere Dinge, die ich versucht habe:

Also, obligatorische Frage: Wie können wir exim erreichen, unsere MSEXCHG-Umgebung als Smarthost zu nutzen?


5
2018-04-08 06:30


Ursprung


Haben Sie OpenSSL installiert und die folgenden Schritte versucht: howtoforge.com/exim-authenticated-smarthost esp .: AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = 1? - Lenniey
Haben Sie versucht, die TLS-Verbindung manuell zu testen? echo quit | openssl s_client -connect ex.contoso.com:587 -starttls smtp -crlf oder für gnutls ... gnutls-cli --port 587 --starttls --verbose ex.contoso.com - Paul Haldane
Ja, der manuelle Verbindungstest war erfolgreich. Leider habe ich vergessen, das in der ursprünglichen Frage zu erwähnen. - Christian Kiewiet


Antworten:


Hat Ihre Organisation eine eigene Zertifizierungsstelle für interne Server? Vielleicht müssen Sie die CA-Zertifikate für den Exchange-Server in den Zertifikat-Trust-Store für Exim hinzufügen? Viele Produkte melden diesen Fehler nicht sehr gut (ich weiß nicht, ob Exim dies tut oder nicht).

Wireshark (Capture zuerst auf dem Server mit tcpdump -p -s0 -w /tmp/foo.pcap Kopieren Sie dann auf eine lokale Arbeitsstation mit Wireshark) sollte das von Exchange gesendete Serverzertifikat angezeigt werden können, und wenn der Client danach auflegt, dann ist ein fehlendes CA-Zertifikat eine häufige Ursache.


1
2018-04-17 10:06



Zertifikatvalidierung ist erfolgreich; tcpdump zeigt auch, dass der STARTTLS-Handshake anscheinend erfolgreich ist; Die drei Fehler in der ursprünglichen Frage blieben unverändert - Christian Kiewiet


Unser Problem war eher spezifisch für unser Setup. Wir haben mehr als einen Exchange Server, der parallel zu einem Load Balancer ausgeführt wird, der als AP fungiert. Der LB wurde falsch konfiguriert, was dazu führte, dass er keine Authentifizierungsmethodenleiste mehr anbot NTLM und GSSAPI auch nach erfolgreichem STARTTLS Händedruck.

Eingehende Prüfung über swaks  jetmore.org (kann dieses Tool sehr empfehlen) offenbarte dies.


1
2018-04-22 15:05





Das Problem ist auf TLS-Zertifikate zurückzuführen. Vorgehensweise zum Lösen:

Installiere openssl (falls fehlend)

sudo apt-get installieren openssl

Generieren Sie Self-Zertifikate

sudo / usr / share / doc / exim4-base / Beispiele / exim-gencert

Fügen Sie TLS zum Haupt-SMTP hinzu

sudo nano /etc/exim4/exim4.conf.localmacros

oder wählen Sie Ihre Standard-.conf-Datei

main_tls_enable = '1'


-2
2017-07-07 19:56