Archiv der Kategorie: Windows Services

Windows Service Integrations unblog Technical Workarounds and Tutorials for Professionals

Exchange Junk-E-Mail Control

Outlook Junk-E-Mail aus Exchange 2019 für Postfix SMTP access control

Dieser Beitrag behandelt das vorgehen, um die von Outlook Benutzer als Junk-E-Mail blockierten SPAM Absender zu sperren, und um diese auf einem Smarthost Relay unter Postfix zu verwerfen. Es werden die zu blockierenden Absender mit der ExchangePowerShell Abfrage unter Anwendung des cmdlet Get-Mailbox und Get-MailboxJunkEmailConfiguration ausgelesen und im ASCII Format gespeichert, anschliessend wird die Liste der blockierten Absender auf dem Postfix MTA bereitgestellt. Hierdurch werden gesperrte Absender bereits auf dem Relay abgewiesen, die Nachrichten brauchen nicht erst durch die Queue verarbeitet zu werden, sollen dabei auch nicht zum Exchange Server übermittelt werden.

Outlook Junk-E-Mail Blockierte Absender
Abbildung: Outlook Junk-E-Mail Blockierte Absender

Get-MailboxJunkEmailConfiguration

Das PowerShell Script JunkEmails.ps1 soll die Junk-E-Mails auslesen und in die Datei extracted-JunkEmails.asc im ASCII Format speichern.

Den Platzhalter userid durch ein Benutzer ersetzen, dieser es auf dem Linux host gibt und dieser für das kopieren der Datei verwendet werden soll. Es empfiehlt sich ein Service Account zu erstellen, dieser nur zu diesem zweck genutzt wird. Bei mail.domain.com durch den tatsächlichen Smarthost ersetzen. Es wird unter %temp% ein Ordner Junk erstellt, falls dieser nicht bereits vorhanden ist, der Ordner wird lediglich für die Verarbeitung benötigt, die darin enthaltenen Dateien müssen nicht aufgehoben werden. Zum Schluss werden die Junk-E-Mail Absender mit dem zuvor installierten PuTTY pscp.exe auf den $Smarthost kopiert.

Exchange Server Aufgabenplanung

Auf dem Exchange Server 2019 wird in der Aufgabenplanung eine neue Aufgabe erstellt. Für die zyklische Script Ausführung.

Exchange Server Aufgabenplanung Neue Aufgabe erstellen

Die Option Unabhängig von der Benutzeranmeldung ausführen wählen, und Mit höchsten Privilegien ausführen aktivieren.

Im Abschnitt Trigger ein Zeitplan für alle 15 Minuten hinzufügen.

Aufgabenplanung Trigger bearbeiten

Im Abschnitt Aktion ein Eintrag für JunkEmails.ps1 bearbeiten.

Aufgabenplnung Aktion bearbeiten

Im Feld Programm/Script powershell.exe mit Pfad eintragen.

Im Feld Argumente die folgende Zeile mit dem Script hinzufügen.

Es wird das Script in der PowerShell mit der Exchange Management Shell Erweiterung ausgeführt. Wurde beim Setup von Exchange ein anderes Installations Volume als C gewählt, muss der Pfad zu den Exchange binary im Script angepasst werden.

Postfix Smarthost für Exchange Server

Auf dem Linux host auf diesem Postfix als Smarthost für den Exchange Server läuft, wird /etc/postfix/main.cf editiert.

Ein Shell Script /usr/bin/junkbl.sh wird erstellt, zur Bereitstellung von Postfix junk mail control durch junkbl_acces.

Das Script entfernt Leerstellen und nicht benötigten Zeichenketten aus der PowerShell abfrage, sortiert diese und entfernt doppelte Einträge, und fügt den Suffix 550 message was classified as spam hinzu, anschliessend wird mit postmap junkbl_access.db erzeugt.

Die Datei junkbl.sh muss ausführbar sein.

Ein Cronjob auf dem Smarthost für das Script junkbl.sh erstellen.

Damit bei der authentifizierung mit pscp.exe der automatisierte Prozess ermöglicht wird, kann mit puttygen.exe ein Schlüsselpaar erzeugt werden, hierdurch keine Passwort Eingabe erforderlich wird. Der Private Schlüssel mit Save private key als Datei privkey.ppk kann in den Pfad C:\Windows\system32 kopiert werden, wie auch das PowerShell Script JunkEmails.ps1. Den Public Key fügt man ein mit copy & paste in die Datei .ssh\authorized_keys, unter $home von userid auf dem Linux Smarthost.

PuTTY Key Generator Public key for pasting into authorized_keys file

Set-MailboxJunkEmailConfiguration

Bei der täglichen Administration kann es erforderlich sein, die durch Junk-E-Mail blockierten Absender wieder aus der Liste BlockedSendersAndDomains entfernen zu müssen, dies geschieht mit folgendem Kommando in der Exchange Management Shell.

BlockedSendersAndDomains

Den Platzhalter username durch den Mailbox Benutzer ersetzen.

Ebenso ist es möglich, E-Mail-Absender diese unerwünschter SPAM versenden, abgewiesen werden können durch Hinzufügen zur Liste BlockedSendersAndDomains. Es wird hierdurch die Möglichkeit gegeben, dies nicht in Outlook zu tätigen.

Die blockierten Junk-E-Mail-Absender zur Überprüfung ausgeben.

TrustedSendersAndDomains

Mit der Whitelist können E-Mail-Absender von der Überprüfung ausgeschlossen werden, damit diese Nachrichten nicht irrtümlich als Junk-E-Mail erkannt und gesperrt werden könnten.

Exchange 2019 SMTP external Relay einrichten

Anonyme Weiterleitung auf Exchange-Servern zulassen

Ein Open Relay ist eine sehr schlechte Sache für Messaging-Server im Internet. SMTP-Relays, die versehentlich oder absichtlich als offene Relays konfiguriert wurden, ermöglichen das transparente Weiterleiten von E-Mails von einer beliebigen Quelle über den offenen Relay-Server. Dieses Verhalten maskiert die ursprüngliche Quelle der Nachrichten und lässt sie so aussehen, als stamme die E-Mail vom offenen Relay-Server. Offene Relay-Server werden von Spammern eifrig gesucht und verwendet.

550 5.7.54 SMTP; Unable to relay recipient in non-accepted domain

Auf der anderen Seite sind anonymous relay eine häufige Anforderung für viele Unternehmen, die über interne Webserver, Datenbankserver, Montoring zur Überwachung oder andere Netzwerkgeräte verfügen, die E-Mail-Nachrichten generieren, diese Nachrichten jedoch nicht tatsächlich senden und zustellen können.

Exchange 2019 SMTP external Relay einrichten in der Powershell

Exchange Server können mit einem FrontEndTransport-Dienst auf einem Postfachserver einen dedizierten Empfangsconnector bereitstellen, der eine anonyme Weiterleitung von einer bestimmten Liste interner Netzwerkhosts ermöglicht.

Hierzu folgender Befehl in der Exchange-Verwaltungsshell ausführen, für den entsprechenden dedizierten Empfangsconnector:

In diesem Beispiel der Exchange 2019 Server EXCH19 mit dem Frontend Anonymous Relay als Empfangsconnector.

Mit folgendem Befehl überprüfen, ob das anonymous Relay erfolgreich konfiguriert ist:

Update Globale Standardadressliste

Exchange Globale Adressbücher (GAL) beschleunigte Aktualisierung

Exchange globale Adressbücher aktualisieren kann je nach Änderungszeitpunkt bis zu 48 Stunden andauern, bis die geänderten Adressbücher in Outlook angezeigt werden. Soll der Update-Prozess beschleunigt werden, kann beim Exchange Server die Aktualisierung der globalen Adresslisten manuell angestossen werden, für umgehend ein aktualisiertes Outlook Adressbuch.

Mit der Exchange-Management-Shell wird die globale Adressliste (GAL) und das Offline-Adressbuches aktualisiert, dazu werden folgende PowerShell Commands ausgeführt:

Bei einer Englischen Exchange Server Version ist dies:

Einfacher geht es mit der Abfrage unter beiziehen von Update-GlobalAddressList um die globale Adressliste (GAL) zu aktualisieren, es werden folgende PowerShell cmdlet in der Exchange-Management-Shell ausgeführt:

Um gleich alle Adressbücher zu aktualisieren, dient das folgende PowerShell cmdlet in der Exchange-Management-Shell:

Werden Clientzugriffsserver (CAS) eingesetzt, muss jeder CAS angewiesen werden, das ein aktualisiertes OAB vorliegt, dies wird mit folgendem PowerShell cmdlet erreicht:

Outlook Adressbuch Aktualisierung

Um in Outlook selbst das Offlineadressbuch zu aktualisieren, geht man zum Outlook Ribbon und geht wie folgt vor:

Senden/Empfangen > Senden-Empfangen-Gruppen > Adressbuch herunterladen

OAB herunterladen

Danach wählt man die Adressliste aus und bestätigt mit OK, für die Übermittlung des Offlineadressbuch.

offlineadressbuch

Fertig! das aktualisierte Outlook Adressbuch öffnen mit:

Troubleshooting

Wird das Offline-Adressbuch (OAB) nicht aktualisiert, können die OAB-Dateien gelöscht werden, um danach die oben aufgeführten Schritte nochmals auszuführen.

Bei Windows 10 und Outlook 2013, Outlook 2016 oder Outlook 2019 befindet sich der Ordner mit den Offline-Adressbücher unter folgendem Pfad:

Der Unterordner bestehend aus einer GUID im Ordnername beinhaltet die Adressbuch OAB-Dateien. Sind mehrere Exchange-Konten konfiguriert, gibt es für jedes Konto einen Ordner.

OAB-Dateien

Die schnellste und gründlichste Methode besteht darin, den Ordner hier „571cdd91-08fb-479c-be13-118713428b95“ einfach umzubenennen, indem man -bak am Schluss hinzufügt.