Encuentre direcciones IP usando la retransmisión SMTP de Exchange
Quiere buscar direcciones IP locales que utilicen la retransmisión SMTP de Exchange para enviar correo. ¿Por qué quieres tener esa información? Por lo general, es cuando desea desmantelar un servidor Exchange y desea confirmar que no hay ningún flujo de correo ejecutándose a través del relé SMTP. Si todo está configurado, puede desactivar el conector de recepción de retransmisión SMTP. En este artículo, aprenderá cómo automatizar la búsqueda y encontrar las direcciones IP que utilizan la retransmisión SMTP.
Introducción
Antes de comenzar, es bueno saber por qué queremos saber qué direcciones IP utilizan la retransmisión SMTP de Exchange. Hay un par de razones cuando:
Mover a un nuevo servidor Exchange con retransmisión SMTP
Pasar a la retransmisión SMTP de Office 365
Auditar qué direcciones IP puede eliminar
Nota: No retire el conector de recepción de retransmisión SMTP inmediatamente ni desactive Exchange Server inmediatamente. Ese es un gran error.
Recomendamos el siguiente orden:
Obtenga direcciones IP mediante la retransmisión SMTP de Exchange (este artículo)
Deshabilitar el conector de recepción de retransmisión SMTP
Apague Exchange Server durante una semana o más
Desmantelar el servidor Exchange
Verifique los registros de retransmisión SMTP
Para buscar direcciones IP en los registros, debe habilitar el inicio de sesión en el conector. Ejecute el Shell de administración de Exchange como administrador. Ejecute el cmdlet Get-ReceiveConnector y verifique si el registro de protocolo está habilitado en el conector de recepción de retransmisión SMTP.
En nuestro ejemplo, ProtocolLoggingLevel muestra Detallado para la retransmisión SMTP de identidad. Significa que el registro está habilitado.
[PS] C:\>Get-ReceiveConnector -Server "EX01-2016" | ft Identity,Enabled,TransportRole,Protocol*,Bindings
Identity Enabled TransportRole ProtocolLoggingLevel Bindings
-------- ------- ------------- -------------------- --------
EX01-2016\Default EX01-2016 True HubTransport Verbose {0.0.0.0:2525, [::]:2525}
EX01-2016\Client Proxy EX01-2016 True HubTransport Verbose {[::]:465, 0.0.0.0:465}
EX01-2016\Default Frontend EX01-2016 True FrontendTransport Verbose {[::]:25, 0.0.0.0:25}
EX01-2016\Outbound Proxy Frontend EX01-2016 True FrontendTransport Verbose {[::]:717, 0.0.0.0:717}
EX01-2016\Client Frontend EX01-2016 True FrontendTransport Verbose {[::]:587, 0.0.0.0:587}
EX01-2016\SMTP relay True FrontendTransport Verbose {0.0.0.0:25}Puede verificar el estado del registro SMTP en el centro de administración de Exchange. Vaya a flujo de correo > conectores de recepción. Seleccione el servidor Exchange que desea verificar. Seleccione el conector de recepción de retransmisión SMTP y verifique el panel de detalles si muestra Inicio de sesión - Activado.
Nota: Si tiene más de un servidor Exchange en la organización, lo más probable es que tenga conectores de recepción de retransmisión SMTP configurados en más de un servidor Exchange para alta disponibilidad. Compruebe que el registro del conector de recepción de retransmisión SMTP esté habilitado en todos los servidores Exchange.
Si el registro SMTP está habilitado, omita el siguiente paso. De lo contrario, habilite el inicio de sesión en el conector de recepción de retransmisión SMTP en el siguiente paso. Lo más probable es que sea la función de transporte FrontendTransport.
Habilitar registros de retransmisión SMTP
[PS] C:\>Get-ReceiveConnector -Identity "EX01-2016\SMTP relay" | Set-ReceiveConnector -ProtocolLogging Verbose
¿Quiere habilitar el registro de retransmisión SMTP en el centro de administración de Exchange? Haga clic en el panel de detalles en el enlace Activado para habilitar el registro SMTP. Haga lo mismo en los otros servidores Exchange.
Si habilitó el registro del conector de recepción de retransmisión SMTP en este momento, tendrá que esperar un par de días o semanas antes de que se generen los registros. Eso depende del uso.
Buscar registros de retransmisión SMTP
Es imposible encontrar la ruta de los registros SMTP de Exchange en el centro de administración de Exchange. Necesitamos usar Exchange Management Shell y encontrar dónde se ubican los registros SMTP.
[PS] C:\>Get-FrontendTransportService -Identity "EX01-2016" | fl Name,Identity,Receive*
Name : EX01-2016
Identity : Frontend
ReceiveProtocolLogMaxAge : 30.00:00:00
ReceiveProtocolLogMaxDirectorySize : 250 MB (262,144,000 bytes)
ReceiveProtocolLogMaxFileSize : 10 MB (10,485,760 bytes)
ReceiveProtocolLogPath : C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceiveCopie ReceiveProtocolLogPath y péguelo en el Explorador de Windows.
En el siguiente paso, prepararemos el script de PowerShell para escanear todos los registros y filtrar las direcciones IP.
Leer más: Registro del conector de recepción de Exchange »
Prepare el script de PowerShell de revisión SMTP
Cree dos carpetas en la unidad (C:) del servidor Exchange:
Temperatura
-
Guiones
Descargue el script de PowerShell SMTP-Review.ps1 y colóquelo en la carpeta C:\scripts. El script exportará el archivo de texto a la carpeta C:\temp.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnale el nombre SMTP-Review.ps1 y colócalo en la carpeta C:\scripts.
<#
.SYNOPSIS
SMTP-Review.ps1
.DESCRIPTION
Script is intended to help determine servers that are using an Exchange server to connect and send email.
This is especially pertinent in a decommission scenario, where the logs are to be checked to ensure that
all SMTP traffic has been moved to the correct endpoint.
.LINK
www.alitajran.com/find-ip-addresses-using-exchange-smtp-relay
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 04/05/2021 - Initial version
V2.00, 03/28/2023 - Rewrite script to retrieve results faster
#>
# Clears the host console to make it easier to read output
Clear-Host
# Sets the path to the directory containing the log files to be processed
$logFilePath = "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.log"
# Sets the path to the output file that will contain the unique IP addresses
$Output = "C:\temp\IPAddresses.txt"
# Gets a list of the log files in the specified directory
$logFiles = Get-ChildItem $logFilePath
# Gets the number of log files to be processed
$count = $logFiles.Count
# Initializes an array to store the unique IP addresses
$ips = foreach ($log in $logFiles) {
# Displays progress information
$percentComplete = [int](($logFiles.IndexOf($log) + 1) / $count * 100)
$status = "Processing $($log.FullName) - $percentComplete% complete ($($logFiles.IndexOf($log)+1) of $count)"
Write-Progress -Activity "Collecting Log details" -Status $status -PercentComplete $percentComplete
# Displays the name of the log file being processed
Write-Host "Processing Log File $($log.FullName)" -ForegroundColor Magenta
# Reads the content of the log file, skipping the first five lines
$fileContent = Get-Content $log | Select-Object -Skip 5
# Loops through each line in the log file
foreach ($line in $fileContent) {
# Extracts the IP address from the socket information in the log line
$socket = $line.Split(',')[5]
$ip = $socket.Split(':')[0]
# Adds the IP address to the $ips array
$ip
}
}
# Removes duplicate IP addresses from the $ips array and sorts them alphabetically
$uniqueIps = $ips | Select-Object -Unique | Sort-Object
# Displays the list of unique IP addresses on the console
Write-Host "List of noted remove IPs:"
$uniqueIps
Write-Host
# Writes the list of unique IP addresses to the output file
$uniqueIps | Out-File $OutputAsí es como se ve en el Explorador de archivos.
En la Línea 27, cambie la ruta a la ruta del registro del protocolo de recepción que buscó en el paso anterior.
En nuestro ejemplo, así es como se ve:
$LogFilePath = "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.log"Ejecute el script de PowerShell SMTP-Review
Ejecute PowerShell como administrador y ejecute el script de PowerShell SMTP-Review.ps1.
Nota: Ejecute el script en todos los servidores Exchange si tiene configurada una retransmisión SMTP. Por ejemplo, Exchange Server EX01-2016 y EX02-2016.
PS C:\> cd C:\scripts
PS C:\scripts> .\SMTP-Review.ps1El script revisará todos los archivos y, una vez finalizado, verá qué direcciones IP utilizan la retransmisión SMTP en la salida de la consola. Además, generará un archivo IPAddresses.txt con las direcciones IP en la carpeta C:\temp.
Tome nota de las direcciones IP y ajuste el campo SMTP en las impresoras, aplicaciones y servidores al nuevo registro de retransmisión SMTP.
Otros artículos que te pueden interesar:
Exportar direcciones IP remotas al conector de recepción de Exchange
Importar direcciones IP remotas al conector de recepción de Exchange
Copie el conector de recepción a otro servidor Exchange
Conclusión
Aprendió a encontrar direcciones IP mediante la retransmisión SMTP de Exchange. Habilite el registro en el conector de recepción de retransmisión SMTP y copie la ruta del registro antes de comenzar. Ejecute el script de PowerShell SMTP-Review.ps1 y déjelo ejecutar a través de los registros de recepción SMTP. No olvide ejecutar el script en todos los servidores Exchange con un conector de recepción de retransmisión SMTP configurado.
Cuando finalice el script, ajuste los registros SMTP en las direcciones IP mencionadas. Otra excelente manera de utilizar el script es saber qué direcciones IP están obsoletas y eliminarlas de la lista de direcciones IP del conector de recepción.
Disfrutaste este artículo? También te puede interesar la comprobación de vulnerabilidad de Microsoft Exchange Server. No olvides seguirnos y compartir este artículo.




