Exchange Online: Force TLS von & nach bestimmten Domains/IPs

Seit einigen Jahren sollte eine Transportverschlüsselung zwischen zweier IT-Systeme, zum Beispiel zwei Mail-Server, zur Selbstverständlichkeit gehören. Leider zeigt gerade die Praxis, dass dies nicht immer der Fall ist.

Um die erzwungene Transportverschlüsselung für bestimmte Domains zu erzwingen, gibt es die Möglichkeit, dass man genau dafür eigene Konnektoren in Exchange (Online) erstellt. Dies kann man relativ entspannt über die Office365-GUI einrichten, wenn man allerdings eine große Liste an Domänen erhält, wird das ganze zum Klick-Marathon.

Ein wenig schneller geht das dann mit PowerShell. Zu beachten ist, dass diese Funktionen aktuell davon ausgehen, dass es jeweils nur einen Konnektor gibt, der gefüllt werden soll. Das ist dahingehend noch suboptimal, da ein Konnektor nur maximal 2243 Zeichen an Domänen unterstützt und im Anschluss ein neuer Konnektor erstellt werden muss.

Bei Zeiten werde ich mich dem mal widmen und es umschreiben, aber für den Anfang sollte es reichen.

# Verbindung zu Exchange Online
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
 
# Funktion zum Hinzufügen von Domains für den InboundConnector
function InboundConnector ($Path)
{
    $Inbound = Get-InboundConnector | Where-Object {$_.name -like "Force TLS:*"}
    $Domains = $Inbound.senderdomains.replace("smtp:*.","*.").replace(";1","") + (Get-Content $Path)
 
    Write-Host "Es werden $($Domains.count) Domains zum Inbound-Connector $($Inbound.name) hinzugefügt."
    Set-InboundConnector -Identity $Inbound.Identity -senderdomains $Domains
}
 
# Ausführen der Funktion mit Angabe der Liste der Domains
InboundConnector -Path ".\Desktop\Domains.txt"
 
# Funktion zum Hinzufügen von Domains für den OutboundConnector
function OutboundConnector ($Path)
{<br>
    $Outbound = Get-OutboundConnector | Where-Object {$_.name -like "Force TLS:*"}
    $Domains = $Outbound.RecipientDomains + (Get-Content $Path
 
    Write-Host "Es werden $($Domains.count) Domains zum Outbound-Connector $($Inbound.name) hinzugefügt."
    Set-OutboundConnector -Identity $Inbound.Identity -RecipientDomains $Domains -TlsSettings CertificateValidation -UseMXRecord $true
}
 
# Ausführen der Funktion mit Angabe der Liste der Domains
OutboundConnector -Path ".\Desktop\Domains.txt"

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.