ISA Server 2006 ou Forefront TMG 2010 réinitialise la connexion sur le client SMTP lorsque le serveur SMTP ferme sa connexion au serveur ISA Server

Symptômes

Considérez le scénario suivant :
  • Dans Microsoft Internet Security et Acceleration (ISA) Server 2006 ou de Forefront TMG 2010, vous activez le filtrage SMTP.
  • Un client SMTP communique avec un serveur SMTP via ISA Server 2006 ou de Forefront TMG 2010.
  • Le client SMTP utilise l’un des verbes suivants dans sa conversation avec le serveur SMTP :
    • TLS
    • STARTTLS
    • X-AnonymousTLS
Dans ce scénario, ISA Server 2006 ou Forefront TMG 2010 réinitialise la connexion sur le client SMTP lorsque le serveur SMTP ferme sa connexion à ISA Server ou Forefront TMG 2010 avec un paquet TCP FIN. Ce comportement peut entraîner certains clients SMTP spécifiques applications signaler l’échec de la remise des messages même si les messages sont correctement envoyés.

Dans la journalisation de ISA, vous consultez le code de résultat suivant pour cette connexion :
0x80074e24 FWX_E_CONNECTION_KILLED

Cause

Par conception, la connexion avec le client SMTP est réinitialisée lorsque le serveur SMTP ferme sa connexion à ISA Server ou Forefront TMG 2010. C’est parce que ISA Server ou Forefront TMG 2010 ne peuvent pas inspecter le trafic SMTP pour la commande SMTP QUIT lorsque le trafic est crypté. Toutefois, ce comportement peut entraîner des applications de client SMTP spécifiques pour signaler des erreurs.

Résolution

Un correctif est désormais disponible pour éviter des rapports d’erreur incorrecte. Ce correctif permet le comportement par défaut être modifié afin que le serveur ISA renvoie un paquet TCP FIN au client SMTP au lieu d’un paquet de réinitialisation lorsque le serveur SMTP ferme la connexion TCP avec un paquet TCP FIN. Pour modifier le comportement par défaut après l’installation de ce correctif, vous devez exécuter un script sur l’ordinateur ISA Server.

Pour appliquer ce correctif, procédez comme suit :
  1. Téléchargez et puis installer le package de correctif logiciel qui est mentionné dans l’article suivant de la Base de connaissances Microsoft :
    Description de 959357 du package de correctifs ISA Server 2006 : 29 octobre 2008

    Remarque : Si vous exécutez Forefront TMG 2010, copiez le script de l’étape 2, dans un fichier Bloc-notes et enregistrez-le. Ouvrez l’invite de commandes avec privilèges élevés et puis exécuter le script (c'est-à-dire: cscript vient).
  2. Démarrez le bloc-notes, puis copiez le script suivant dans un fichier Bloc-notes.
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "GracefulPassthroughServerShutdown"
    Const SE_VPS_VALUE = true

    Sub 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 If

    End Sub

    Sub CheckError()

    If Err.Number <> 0 Then
    WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
    Err.Clear
    End If

    End Sub

    SetValue

  3. Enregistrez le fichier sous la forme d’un fichier de script Microsoft Visual Basic à l’aide de l’extension de nom de fichier .vbs.
  4. Double-cliquez sur le fichier .vbs pour exécuter le script.
Remarque Si vous souhaitez rétablir le comportement par défaut, modifiez la ligne suivante du script :
Const SE_VPS_VALUE = true

Remplacez cette ligne par la suivante :
Const SE_VPS_VALUE = false

Ensuite, réexécutez le script sur l’ordinateur ISA Server ou Forefront TMG.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Références

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft
Propriétés

ID d'article : 959312 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Microsoft Internet Security and Acceleration Server 2006 Service Pack 1, Microsoft Internet Security and Acceleration Server 2006 Standard Edition, Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition, Microsoft Forefront Threat Management Gateway 2010 Enterprise, Microsoft Forefront Threat Management Gateway 2010 Service Pack 1, Microsoft Forefront Threat Management Gateway 2010 Standard

Commentaires