Archiv der Kategorie: Exchange Services

Exchange Service Integration

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, geeigneterweise 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

Exchange MailboxStatistics Mail-Report

Exchange Administratoren möchten über die Aktivitäten der CAS und DAG informiert sein. Das PowerShell cmdlet Get-MailboxStatistics ermöglicht hier probate Reports zu erstellen. Dieser Beitrag soll in einem Beispiel die Möglichkeiten aufzeigen, anhand eines einfachen Script eine Statistik der Mailboxen in einer Exchange Organisation zu erzeugen und als E-Mail Report zu versenden. Der Report enthält ferner den Exchange Health Status und die Speicherbelegung der Festplatten.

Installation

Der PowerShell Script erzeugt die Mailbox Statistic und den Health Status des Servers.

Die Code Zeilen in eine Datei report.ps1 speichern und in der Exchange Management Shell mit .\report.ps1 ausführen. Bei $email wird ein gültiger E-Mail Empfänger definiert. Der Empfänger muss in der DAG existieren in dieser der Script ausgeführt wird. Sollen externe Empfänger den Report erhalten, kann für $smtpServer als Wert ein externer Host oder Mail Transport Agent angegeben werden.

Aus dem Aufgabenplaner lässt sich der Script geplant ausführen, zum Beispiel Täglich um 20.00 Uhr, dabei wird im Register Action im Feld Programm/Script:

eingetragen, und im Feld Argumente:

eingefügt. Damit wird der Script in der Exchange Management Shell ausgeführt. Im Register Allgemein muss die Checkbox Mit höchsten Privilegien ausführen aktiviert werden.

mailboxstatistics_scr

Release Update und Bugfix auf Github

Exchange Quota für Outlook Regeln vergrössern

Outlook speichert Regeln bei Exchange Konten auf dem Server, um Weiterleitungen oder E-Mails Online aus dem Posteingang automatisch in Ordner zu verschieben, dies auch wenn Outlook nicht ausgeführt wird. Die Synchronisation von Regeln bietet auch den vorteil bei der Nutzung mit dem eigenen Konto an einem anderen Computer, die Regeln werden dann automatisch vom Server in Outlook heruntergeladen.

Werden viele Regeln erstellt, oder werden Regeln mit langen Namen verwendet, kann der Quota Speicher auf dem Exchange Server nicht mehr ausreichen, die Standardgrösse ist auf 64 KB limitiert.

Es erscheint bei Outlook folgende Fehlermeldung:
Mindestens eine Regel konnte aufgrund von nicht unterstützten Parametern oder mangelndem Speicherplatz nicht auf Exchange Server übertragen werden.

Erweitern lässt sich die RulesQuota mit folgendem cmdlet aus der Exchange Management Shell.

Aktuelle RulesQuota abfragen mit folgendem cmdlet

Set-Mailbox -RulesQuota
Set-Mailbox -RulesQuota

Hinweis! Werden Regeln zum verschieben in lokale PST-Dateien angelegt, muss unter Erweiterte Optionen – nur auf diesem Computer aktiviert werden. Auch diese Regeln werden zum Server hochgeladen, jedoch werden sie nicht Online ausgeführt da PST Ordner nur auf dem Computer lokal vorhanden sind.

 

Exchange 2013 Logging Message Tracking

Exchange 2013 Administratoren suchen vergeblich die Toolbox, diese von Exchange 2010 bekannte Toolbox lässt sich für Diagnose Aufgaben nutzen, wie zur Nachrichtenverfolgung, das Message Tracking oder zur Analyse der Konnektivität.

Diese gibt es jedoch auch bei Exchange 2013, wenn auch etwas versteckt. Wie Microsoft immer wieder ankündigte, werden vermehrt Funktionen und Aufgaben in die PowerShell implementiert, so auch die Toolbox für das Message Tracking, öffnet man die Exchange Management Shell und gibt dort folgendes cmdlet ein, erscheint unverhofft die Get-MessageTrackingLog Console.

Exchange Management Shell
Exchange Management Shell

Die Console zur Nachrichtenverfolgung lässt sich nutzen um mit Filtern die gesetzt werden können auf EventID, Sender, Empfänger, Source und MessageSubject.

Get-MessageTrackingLog
Get-MessageTrackingLog

Damit die Nachrichtenverfolgung möglich wird, muss aus dem Exchange Administration Center, EAC die Protokollierung zur Nachrichtenverfolgung aktiviert sein.

Exchange Enable Message Tracking
Exchange Enable Message Tracking

In der EAC unter Server den Exchange Server editieren und unter Transportprotokolle die Checkbox aktivieren, bei Protokoll für Nachrichtenverfolgung aktivieren.

Exchange 2013 Sizing für Logging und Diagnostic

Die Speicherplatzanforderungen von Exchange 2013 erfordert 30 GB freier Speicher auf dem Exchange-Installations Volume. Das ist eine drastische Zunahme gegenüber Exchange 2010, hier wurden lediglich 1.2 GB an Speicherplatz belegt.

Die Protokollierung und Diagnostic Performance Counters werden standardmäßig unter folgendem Pfad gespeichert:

In mehreren Unterordnern sind die entsprechenden Protokolle jeder der Komponenten des Client Access Server (CAS) zu finden.

Die exzessive Protokollierung soll dem Support Unterstützung geben bei der Fehlersuche für Mailbox Kunden, die detaillierten Aufzeichnungen in den Protokolldateien des CAS geben direkt Ausfluss, ohne das diese für ein anstehendes Troubleshooting erst aktiviert und aufgezeichnet werden müsste.

Damit die Protokollierung jedoch nicht ausartet und den freien Diskspeicher nicht voll­lau­fen lässt, kann die dauer der zurückliegenden Aufzeichnung auf Beispielweise 20 Tage beschränkt werden. Hierzu folgender Powershell-Script:

Den Script in eine .ps1 Datei speichern und unter einem Pfad ablegen, zum Beispiel unter %SystemRoot%.

Powershell Script

Programm/Script:

Argument

Damit sollen Täglich um 06.00 Uhr morgens Aufzeichnungen die älter als 20 Tage sind gelöscht werden, den Script als Job im Aufgabenplaner bei Aktion als Programm eintragen und den Trigger auf die gewünschte Zeit setzen.