Archiv der Kategorie: Exchange Services

Exchange Service Integration unblog Technical Workarounds and Tutorials for Professionals

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.

Outlook Junk E-Mail auf Smarthost

Niemand mag SPAM, um die Flut unerwünschter E-Mails einzudämmen, müssen eingehende E-Mails mehrere Filter und sogenannte Milter durchlaufen.

Eine effiziente Filter Lösung bietet der Mail Transfer Agent – Postfix, das Open Source Programm wurde 1998 von Wietse Zweitze Venema entwickelt. Postfix ist ein leistungsfähiger Mail Transfer Agent für Unix und Unix-Derivate. Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein. Dabei wurde bei der Entwicklung insbesondere auf Sicherheitsaspekte geachtet. Der Quellcode von Postfix steht unter der IBM Public License. Postfix MTA’s werden von vielen Internet Providern und in Großunternehmen eingesetzt.

Die Architektur von Postfix erlaubt es eine Vielzahl an Filter einzubinden, wie das unter der Apache-Lizenz stehende SpamAssassin, um unerwünschte E-Mails herauszufiltern und zu markieren, oder Greylisting um das verhalten eines Senders zu überprüfen. Zum Schutz gegen Viren und Schadcode kann Clam AntiVirus eingebunden werden – ClamAV steht unter der GNU General Public License.

Workaround

Als E-Mail Client Software in Unternehmen ist MS Outlook im Exchange betrieb weit verbreitet. Für SPAM der nicht in einem Filter abgefangen wurde, bietet Outlook die Möglichkeit unerwünschte Absender zu sperren, hierbei ist die Bezeichnung nicht gerade zutreffend, denn die sogenannten Junk E-Mails werden auf dem Server nicht gesperrt, sondern sie werden beim Empfang viel mehr in den Outlook Ordner Junk-E-Mail verschoben. Besser wäre es aber wenn der vermeintliche Absender es gar nicht schafft es zuzustellen, also es zurückgewiesen wird.

outlook-junk-emails

Hier gibt es eine Möglichkeit einzugreifen, wenn der Exchange Server wie oft die E-Mails nicht direkt aus dem Internet empfängt, sondern über einen Smarthost abwickelt. Smarthosts sind meist Linux basierte Server die mit dem Postfix MTA arbeiten.

Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder

Installation

Der folgende PowerShell Script ruft die Junk-E-Mail Einträge aus der Outlook Sperrliste Blockierte Absender von allen Mailboxen aus und extrahiert die formatierte Ausgabe als Windows-ANSI Text und in eine ACSII-Text Datei. Anschliessend wird die erzeugte Datei extracted_JunkEmails.asc auf den Smarthost übertragen. Die Whitelist wird in der Datei extracted-TrustedEmails.asc angelegt.

Der Script wird auf dem Exchange Server in der Exchange Management Shell als Administrator ausgeführt, geeigneter Weise als Job in der Aufgabenplanung zu jeder Stunde. Bei Zeile 8 soll anstelle des Platzhalters der Benutzername gefolgt vom Name des Smarthost stehen, dies als FQDN oder host IP.

Auf dem Exchange Server wird PuTTY benötigt, nach der Installation von PuTTY 64bit dient pscp.exe (PuTTY Secure Copy) zur Übertragung der Sperrliste Blockierte Absender auf den Smarthost. Damit es zu keiner Passwort abfrage kommt, muss mit PuTTY Key Generator (puttygen.exe) ein Schlüsselpar erzeugt werden, der erzeugte Public Key wird auf dem Smarthost unter das home Verzeichnis des Benutzers in das Verzeichnis .ssh in die Datei authorized_keys kopiert. Damit ist der Script mit pscp in der lage sich beim Smarthost zu authentifizieren.

Auf dem Linux Smarthost dient ein Shell Script um die Zeilen in das Unix (LF) Format zu konvertieren. Dieser Einzeiler erzeugt die passende Ausgabe in das Postfix Verzeichnis über pipe in die Datei junkbl_access und trusted_access.

Code in eine Datei junkbl.sh einfügen und unter dem Pfad /usr/bin/ speichern.

Der Shell Script wird ausführbar gemacht.

Der stream-editor – sed konvertiert die Zeilenumbrüche, entfernt leer Zeichen und fügt am ende jeder Zeile den SMTP Error Code 550 ein, damit werden die beim versuch der Zustellung nicht erwünschten E-Mails der Sperrliste Blockierte Absender zurückgewiesen.

Die Postfix lookup tables erstellen und aktualisieren.

In der Postfix Hauptkonfiguration werden die restriction checks hinzugefügt.

Nach einem postfix reload wird die Outlook Sperrliste von Postfix angewandt.

Per cronjob soll die Sperrliste laufend aktualisiert werden, zu jeder Stunde +5 min.

Anmerkung

Bei CentOS 7 ist es erforderlich den user zur Group sftp_users hinzuzufügen, mit usermod -G sftp_users {username}, in der sshd_config muss die direktive Match Group sftp_users angewandt werden.

Wie ein Script für die Exchange Management Shell aus der Aufgabenplanung ausgeführt wird, erklärt der Beitrag Exchange MailboxStatistics Mail-Report

OpenSSH Key Bereitstellung für Auto-login PuTTY Key Generator

Eine weitere SSH Lösung bietet OpenSSH on Windows

Release Update und Bugfix auf Github