Síntomas
Imagine la siguiente situación:
-
En Microsoft Internet Security and Acceleration (ISA) Server 2006 o Forefront TMG 2010, se habilita el filtrado SMTP.
-
Un cliente SMTP se comunica con un servidor SMTP a través de ISA Server 2006 o Forefront TMG 2010.
-
El cliente SMTP utiliza uno de los siguientes verbos en su conversación con el servidor SMTP:
-
TLS
-
STARTTLS
-
X-AnonymousTLS
-
En este escenario, ISA Server 2006 o Forefront TMG 2010 restablece la conexión al cliente SMTP cuando el servidor SMTP cierra la conexión al servidor ISA o Forefront TMG 2010 con un paquete TCP FIN. Este comportamiento puede producir a algún cliente SMTP específico de aplicaciones informar que no se pudo entregar mensaje aunque los mensajes se envían correctamente. En el registro de ISA, verá el siguiente código de resultado para esta conexión:
0x80074e24 FWX_E_CONNECTION_KILLED
Causa
Por su diseño, se restablece la conexión con el cliente SMTP cuando el servidor SMTP cierra la conexión al servidor ISA o Forefront TMG 2010. Esto es porque el servidor ISA o Forefront TMG 2010 no puede inspeccionar el tráfico SMTP para el comando SMTP QUIT cuando el tráfico está cifrado. Sin embargo, este comportamiento puede producir aplicaciones específicas de cliente SMTP para informar de errores.
Solución
Ahora hay una revisión evitar que los informes de error incorrecto. Esta revisión permite que el comportamiento predeterminado para cambiarse para que ISA Server devuelve un paquete TCP FIN al cliente SMTP en lugar de un paquete de restablecimiento cuando el servidor SMTP cierra la conexión TCP con un paquete TCP FIN. Para cambiar el comportamiento predeterminado después de instalar este hotfix, deberá ejecutar una secuencia de comandos en el equipo servidor ISA. Para aplicar este hotfix, siga estos pasos:
-
Descargue e instale el paquete de hotfix que se menciona en el siguiente artículo de Microsoft Knowledge Base:
959357 descripción del paquete de revisiones de ISA Server 2006: 29 de octubre de 2008Nota: Si ejecuta Forefront TMG 2010, copie la secuencia de comandos del paso 2 en un archivo de Bloc de notas y guárdelo. Abra el símbolo del sistema con privilegios elevados y, a continuación, ejecute la secuencia de comandos (ie: cscript smtp.vbs).
-
Inicie el Bloc de notas y, a continuación, copie la siguiente secuencia de comandos en un archivo de Bloc de notas.
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
-
Guarde el archivo como un archivo de secuencia de comandos de Microsoft Visual Basic utilizando la extensión de nombre de archivo .vbs.
-
Haga doble clic en el archivo .vbs para ejecutar la secuencia de comandos.
Nota: Si desea volver al comportamiento predeterminado, cambie la línea siguiente de la secuencia de comandos:
Const SE_VPS_VALUE = true
Cambie esta línea por la siguiente:
Const SE_VPS_VALUE = false
A continuación, vuelva a ejecutar la secuencia de comandos en el equipo servidor ISA o Forefront TMG.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".
Referencias
Para obtener más información acerca de la terminología relativa a las actualizaciones de software de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft