Correos encolados en servidores Exchange On-premises
Empezamos muy bien el año, con un problema en el servicio de Malware, en definitiva, ningún correo que pasara por los servidores de exchange On-premises era entregado a su destino. Tras mucho trastear la primera opción fue puentear al filtro antimalware a través del comando Set-MalwareFilteringServer -BypassFiltering $True -identity <nombre servidor FQDN>
en cada uno de los servidores y parece que con eso funcionó temporalmente, ahora tocaba esperar la versión de MS.
A las pocas horas del 1 de enero y a través del blog del equipo de exchange nos informaban del incidente que afectaba a las versiones de Exchange Server 2016 y Exchange Server 2019 con rol de Mailbox, los servidores con el rol de Edge Transport no se han visto afectados por este problema. La versión oficial dice que el problema está relacionado con un fallo de comprobación de la fecha con el cambio de año lo que hace que al realizar la comprobación de la versión con el archivo de firma provoque el fallo del motor de malware, lo que hace que los mensajes se queden atascados en las colas de transporte.
Podemos encontrar los eventos 5300 y 1106 (FIPFS) en el registro de eventos de la aplicación en el servidor de Exchange.
Microsoft nos ofrece dos métodos para remediar el problema, uno mediante script y otro de forma manual.
Solución mediante Script:
- Descargar desde el siguiente link: https://aka.ms/ResetScanEngineVersion
- Antes de ejecutar el script, cambiar la política de ejecución de los scripts de PowerShell ejecutando
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Ejecuta el script,
<em>Reset-ScanEngineVersion.ps1</em>
en cada servidor de Exchange con el rol de Mailbox para que descargue actualizaciones antimalware.
Solución manual:
Se deben realizar los siguientes pasos en cada servidor de Exchange con el rol de Mailbox .
Eliminar el motor y los metadatos existentes:
- Detener el servicio Microsoft Filtering Management, esto implica la detención del servicio Microsoft Exchange Transport.
- Comprobar mediante el Administrador de tareas que updateservice.exe no se está ejecutando.
- Eliminar la siguiente carpeta: %ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\amd64\Microsoft.
- Eliminar todos los archivos de la carpeta: %ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\metadata.
Actualizar al último motor:
- Iniciar el servicio Microsoft Filtering Management y el servicio Microsoft Exchange Transport.
- Abrir la Shell de administración de Exchange, posteriormente ir a la carpeta Scripts (%ProgramFiles%\Microsoft\Exchange Server\V15\Scripts) y ejecutar
Update-MalwareFilteringServer.ps1 <nombre servidor FQDN>
.
Verificar la información de actualización del motor:
- Ejecutar en la Exchange Management Shell lo siguiente:
<em>Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell</em>
. - Posteriormente ejecutar
<em>Get-EngineUpdateInformation</em>
para verificar que la información del campo UpdateVersion es 2112330001.
Después de actualizar el motor verificar que el flujo de correo funciona y que los eventos de error FIPFS no están presentes en el registro de eventos de la aplicación.
Puedes usar el siguiente para ir viendo que la cola de correo va decreciendo, sustituye el valor <segundos> para que realice un refresco automático.
while($true){Get-TransportService | Get-Queue -filter {messagecount -gt 1}| ?{$_.identity -notlike "shadow"} | ft identity, status, deliverytype, messagecount, lockedmessagecount, nexthopdomain -autosize ; start-sleep <segundos>}
Bueno, espero que no os haya afectado y en el caso de que lo fuese lo solucionaseis rápidamente.
Fuente: Email Stuck in Exchange On-premises Transport Queues – Microsoft Tech Community
Feliz año nuevo.