ISA Server 2006 oder Forefront TMG 2010 setzt die Verbindung zurück an den SMTP-Client beim SMTP-Server die Verbindung zu ISA Server schließen

Gilt für: Forefront Threat Management Gateway 2010 EnterpriseForefront Threat Management Gateway 2010 Standard

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:
  • Microsoft Internet Security und Acceleration (ISA) Server 2006 oder Forefront TMG 2010 können Sie SMTP-Filterung.
  • Ein SMTP-Client kommuniziert mit einem SMTP-Server durch ISA Server 2006 oder Forefront TMG 2010.
  • Der SMTP-Client werden die folgenden Verben in seine Kommunikation mit dem SMTP-Server.
    • TLS
    • STARTTLS
    • X AnonymousTLS
In diesem Szenario ISA Server 2006 oder Forefront TMG 2010 setzt die Verbindung zurück an den SMTP-Client beim SMTP-Server die Verbindung zu ISA Server oder Forefront TMG 2010 mit TCP FIN schließen. Dies kann einige bestimmte SMTP-Client Anwendung meldet, dass Fehler bei der Nachrichtenübermittlung, obwohl Nachrichten korrekt sind. ISA-Protokollierung finden Sie unter den folgenden Ergebniscode für diese Verbindung:
0x80074e24 FWX_E_CONNECTION_KILLED

Ursache


Standardmäßig wird die Verbindung zum SMTP-Client zurückgesetzt, wenn der SMTP-Server die Verbindung zu ISA Server oder Forefront TMG 2010 geschlossen. Dies ist, da ISA Server oder Forefront TMG 2010 überprüfen kann SMTP-Datenverkehr für den SMTP- QUIT -Befehl wenn der Datenverkehr verschlüsselt ist. Dieses Verhalten kann jedoch bestimmte SMTP-Clientanwendungen auf Fehler.

Lösung


Ein Hotfix steht jetzt falsche Fehlermeldungen zu vermeiden. Dieser Hotfix ermöglicht das Standardverhalten geändert werden, damit ISA Server TCP FIN-Paket SMTP-Client statt RESET-Paket zurückgibt, wenn der SMTP-Server die TCP-Verbindung mit TCP FIN schließt. Um das Standardverhalten ändern, nachdem Sie diesen Hotfix installieren, müssen Sie ein Skript auf dem ISA Server-Computer ausführen. Gehen Sie folgendermaßen vor, um diesen Hotfix zu installieren:
  1. Downloaden Sie und installieren Sie das Hotfixpaket erwähnt wird im folgenden Artikel der Microsoft Knowledge Base:
    959357 Beschreibung des ISA Server 2006-Hotfix-Pakets: 29. Oktober 2008
    Hinweis: Wenn Sie Forefront TMG 2010 ausführen, kopieren Sie das Skript in Schritt 2 in eine Editor-Datei und speichern. Eingabeaufforderungsfenster mit erhöhten Rechten öffnen und dann das Skript ausführen (z.B.: Cscript smtp.vbs).
  2. Starten Sie Editor, und kopieren Sie das folgende Skript in eine Editor-Datei.
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "GracefulPassthroughServerShutdown"Const SE_VPS_VALUE = trueSub SetValue()    ' Create the root obect.    Dim root  ' The FPCLib.FPC root object    Set root = CreateObject("FPC.Root")    'Declare the other objects needed.    Dim array       ' An FPCArray object    Dim VendorSets  ' An FPCVendorParametersSets collection    Dim VendorSet   ' An FPCVendorParametersSet object    ' Get references to the array object    ' and the network rules collection.    Set array = root.GetContainingArray    Set VendorSets = array.VendorParametersSets    On Error Resume Next    Set VendorSet = VendorSets.Item( SE_VPS_GUID )    If Err.Number <> 0 Then        Err.Clear        ' Add the item        Set VendorSet = VendorSets.Add( SE_VPS_GUID )        CheckError        WScript.Echo "New VendorSet added... " & VendorSet.Name    Else        WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)    End If    if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then        Err.Clear        VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE        If Err.Number <> 0 Then            CheckError        Else            VendorSets.Save false, true            CheckError            If Err.Number = 0 Then                WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"            End If        End If    Else        WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"    End IfEnd SubSub CheckError()    If Err.Number <> 0 Then        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description        Err.Clear    End IfEnd SubSetValue
  3. Speichern Sie die Datei als Microsoft Visual Basic Script-Datei mit der Erweiterung VBS.
  4. Doppelklicken Sie auf die VBS-Datei, um das Skript auszuführen.
Hinweis Wenn Sie zum Standardverhalten zurückkehren möchten, ändern Sie die folgende Zeile des Skripts:
Const SE_VPS_VALUE = true
Ändern Sie diese Zeile wie folgt:
Const SE_VPS_VALUE = false
Wiederholen Sie das Skript auf dem ISA Server oder Forefront TMG an.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Informationsquellen


Weitere Informationen zur Terminologie für Softwareupdates von Microsoft finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird