Exchange 2016 Installationscheckliste

Diese Seite beschreibt im Stiel einer Checkliste die einzelnen Schritte zur Installation des ersten Exchange 2016 Servers in einen neuen Forest.

Aufgabenstellung

Exchange Server installieren ist eigentlich nicht schwer. Windows Server drauf, Exchange-CD rein, Setup starten und solange "Weiter" drücken, bis wir am Ende sind. Anpassungen an der Konfiguration kann man ja dann so machen, wie Anwender sich beschweren.

Genau so sollten Sie Exchange nicht installieren. Sie sollten sich schon vorher Gedanken machen über Namensgebung, Berechtigungen, Client Zugriffs Konzepte, Verfügbarkeit und Datenablage (Stichworte DAG und DAS/SAN), DNS-Namen u.a. Aber das wissen sich sicher schon. Aber haben Sie schon mal strukturiert eine Checkliste erstellt, anhand der Sie einen Exchange Server wirklich frisch installieren?

Die meisten Leser werden diese Liste so gar nicht mehr einsetzen können, da Sie ja schon Exchange installiert haben. Sie ist also eher etwas für Firmen, die z.B.: noch Notes oder GroupWise On-Premises einsetzen oder vielleicht wieder von einer Cloud-Lösung wie Google Mail zurück zu einem "richtigen" Exchange Server wollen. Selbst wenn Sie komplett nach Office 365 wollen aber die Benutzer mittels AzureADConnect verwalten, benötigen Sie lokal zumindest einen Exchange Server für das Provisioning der Anwender. Siehe dazu auch ADSync mit Exchange Online.

Beachten Sie dazu auch die folgenden Seiten:

Die eigentliche Installation glieder sich in mehrere Phasen.

  • Vorarbeiten AD-Forest
  • Vorarbeiten Hardware
  • Globale Einstellungen
    Lizenzcode, IISLogs-Dateien
  • Datenbankdienste
    DAG, Datenbanken, Replikation
  • Servereinstellungen
    Zertifikate
  • Admin/User Rollen
  • Transporteinstellungen
  • Frontend/Client Einstellungen
  • UM/Skype for Business
  • Sonstiges
    Backup, Monitoring, Fax, Archiv, Antivirus etc.

Die Liste ist nicht vollständig und gemäß den Kundenanforderungen entsprechend zu erweitern.

AD Vorarbeiten

Bei der Installation von Exchange sind Erweiterungen des Active Directory erforderlich. Dabei werden folgende Änderungen vorgenommen:

  • Schemaerweiterung
    Damit die verschiedenen Objekte (z.B. user, group) die zusätzlichen Properties bekommen und neue Objektklassen (z.B. msexchserver, msexchDatabase etc.) angelegt werden können
  • Exchange Konfigurationsbereich
    In der Configuration-Partition wird Platz für die spätere Ablage der Serverobjekte und Konfiguration vorbereitet
  • Exchange Gruppen
    In der Root Domain landen verschiedene Gruppen, über die später Berechtigungen gesteuert werden
  • Berechtigungen
    Die zuvor angelegten Objekte bekommen Berechtigungen auf verschiedenen Stellen im AD, z.B. um die für Exchange relevanten Properties bei den Empfängern zu pflegen.

Diese Aktion ist einmalig vor der Installation erforderlich. Sie kann bei späteren Updates und Servicepacks aber erneut notwendig werden, wenn durch Produkterweiterungen neue Funktion bereitgestellt werden und die dazu erforderlichen Speicherorte und Berechtigungen ergänzt werden.

Active Directory Voraussetzungen

Das Active Directory muss folgende Voraussetzungen erfüllen:

Thema

Status

DNS-Domain Name i.O. (Keine Single Label Domain)

Windows 2008 DC oder höher

Forest Functional Level (FFL)

Exchange 2016 CU7 AD Forest Function Level Requirements
https://blogs.technet.microsoft.com/rmilne/2017/10/05/exchange-2016-cu7-ad-forest-function-level-requirements/

https://blogs.technet.microsoft.com/rmilne/2017/12/19/exchange-2016-cu8-released/

Mindestversion ab Exchange 2017 CU7:  Windows 2008R2

Optional: Eigenes "Funktionskonto" für die Installation

Exchange Schema Update

Damit Exchange die entsprechenden Konfigurationsobjekte und Einstellungen an den Benutzern anlegen und verwalten kann, sind Rechte und Schema-Definitionen erforderlich

Hardware

Die neuen Exchange 2016 Server werden als VMWare Gäste bereitgestellt. Daher sind einige Einstellungen als Muster zu verstehen. Um die Anforderungen an die Verfügbarkeit und Zuverlässigkeit in Verbindung mit einer DAG zu erreichen, sind folgende Hinweise zu beachten. Dies gilt insbesondere für "virtuelle Maschinen".

Thema

Status

Dedizierte Hardwareressourcen

Die Server dürfte nicht „gedrosselt“ werden. Dazu zählen insbesondere Energieeinsparungen, Schlafmode, Suspend o.ä.

Als VM muss sichergestellt sein, dass die angeforderten Ressourcen auch dediziert zur Verfügung stehen. Das gilt insbesondere für CPU und RAM. Ein „Thin Provisioning“ ist nicht supported

Unabhängigkeit der Systeme

Beim Betrieb einer DAG aus mehreren Servern ist darauf zu achten, dass die Systeme möglichst unabhängig sind. Dazu zählt

  • Standort und VMotion
    Die Systeme sollten in unterschiedlichen RZs, Brandabschnitten oder zumindest Racks stehen, um einen physikalischen Abstand zu haben. Es ist nicht erlaubt, die System im laufenden Betrieb zu „verschieben“.
  • Netzwerk
    Die Server sollten nicht die gleichen Zugangssysteme (Switches) nutzen. Si können per Teaming redundant angebunden werden. Dann ist aber eine Überwachung erforderlich um den Ausfall zu bemerken.
  • Storage
    Exchange repliziert die Daten selbst. Wenn statt „Direct Access Storage“ aber ein SAN oder virtueller Storage zum Einsatz kommt, muss auch hier auf die „Unabhängigkeit“ geachtet werden, um die Verfügbarkeit nicht zu reduzieren.

Für die Bereitstellung als Physik können Sie folgende Vorlage als Muster einer Dokumentation anschauen

Thema

Parameter

Chassis

HP Proliant DL360 G9 (SKU: 755262-B21)

Bios

HP P89 vom 27.12.2015 (aktuell)

CPU

2x  Intel Xeon E5-2630v3 (8 Core)

RAM

128 GB

Management

iLO 4 Version 2.40 vom 2. Dez 2015 (aktuell)

Storage1

1xSmartArray P440ar (onboard),  2GB Cache, BBU
Firmware 4.02  Treiber 63.12.0.64 aktuell
2x 600 GB SAS (Unterschiedliche Firmware!!)
1x RAID1   256k Stripe
   Part2: 300MB
   Part3: 99MB
   Part5: 558GB  C:\

Storage2

1xSmartArray P441 (Slot1), 4GB Cache, BBU
   Port 1E Box1: HP D3600 Firmware 1.72
      5x 8TB Disk
   Port 1E Box2: HP D3600 Firmware 1.72
      5x 8TB Disk

LAN

1x HP 331i  4-Port Gigabit (Treiber 17.2.0.0 OK)
                     Port1: nicht angeschlossen
                     Port2: nicht angeschlossen
                     Port3: nicht angeschlossen
                     Port4: nicht angeschlossen

1x HP533FLR-T  2x10Gigabit (Treiber 7.13.4.0 OK
                     Port1: angeschlossen 10 Gigabit
                     Port2: angeschlossen 10 Gigabit

Beide sind als dynamisches LACP-Team unter Windows 2012R2 eingerichtet.

BIOS-Einstellungen (Muster)

Wenn der Server nicht als virtuelle Maschine läuft, dann sollten Sie im BIOS die richtigen Einstellungen vornehmen. Hier ein Muster eines HP Proliant Servers

  • IP-Adresse ILO-Board ausfindig machen und ILO-User anlegen
    Damit wir auf die Hardware zugreifen können
  • Server neu starten und das Setup beim Start des Servers mit „F9“ aufrufen:
  • Hyperthreading wird deaktiviert (Default ist ON)
    Dies ist eine Empfehlung vom Microsoft Exchange Team

    Diese Einstellung ist im Windows Task-Manager später zu prüfen, indem die Anzahl der Cores und logischen Prozessoren gleich ist. ( 16 Core = 16 logical Processors
  • Energieoptionen auf High stellen (Default ist Balanced)
  • ILO
    Konfiguration der IP-Adressen und Zugänge
  • RAID-Controller Performance auf High und  Cache Rate 0%Read/100% Write

Windows Server Einstellungen

Thema

Status

Windows 2012R2 hat als Standard Energieplan die Einstellung „Balanced“. Für Exchange ist die Einstellung „High Performance“ empfohlen.

Windows Energiesparmode „High“

Windows AutoMount Funktion

Die Server haben 10 direkt angeschlossene Disks. Windows verbindet diese über die Funktion „Auto Mount“. Dies ist nicht erwünscht und wird abgeschaltet. Dies ist auf mehrere Wege möglich.

Abschalten AutoMount

  • mountvol /N
  • diskpart automount disable
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
    Services\MountMgr\NoAutoMount=1

https://technet.microsoft.com/de-de/library/cc753703(v=ws.11).aspx

Terminal Services

Über die Funktion „Terminal Services“ können Server sehr einfach von Administratoren aus der Ferne verwaltet werden. Die Server werden natürlich keine „vollwertigen“ Terminalserver und aus Schutzfunktionen ist zu prüfen, welche Komponenten beim Zugriff per RDP schon auf dem Server unterbunden werden

  • Abschalten „Druckermapping“
    Sie Server sind ja im LAN und können direkt drucken. Sie müssen nicht „on the fly“ Druckertreiber für per RDP verbundene Clientdrucker installieren
  • Single Session PerUser
    HKLM\System\CurrentControlSer\Control\Terminal Server\SingleSessionPerUser = 0
  • Filesharing
    Auch die Freigabe von Dateien üer RDP schalten einige Firmen ab 

Dateibasierter Virenscanner

Auch auf Servern machen Virenscanner Sinn. Allerdings sollten Sie Exchange Datenbanken u.a. nicht scannen. Das Risiko eines "False Positive" mit erheblichen Auswirkungen auf die Funktion als auch der überflüssige CPU-Bedarf sollte durch entsprechende Ausschlusslisten verhindert werden. Einige Produkte haben diese Ausnahmen sogar schon eingebaut.

Windows Netzwerk

Die Netzwerkkarten sind entsprechend zu konfigurieren, z.B. statische IP-Adresse oder Teaming oder VLANs

Für den späteren produktiven Betrieb sind die Empfehlungen der folgenden Beschreibung zu befolgen:

RAID-Konfiguration (Muster)

Der folgende Abschnitt beschreibt „exemplarisch“ die Einrichtung eines RAID-Controllers

Thema

Status

Cache einstellen

Für Exchange ist es ratsam den Cache auf 100% Write zu stellen, da der Exchangen selbst schon Lesezugriffe Cached

  • Starten von Run as Administrator
  • Controller auswählen und auf Configure klicken
  • Im Modify Cache Settings wählen
  • Cache wie im Bild einstellen

Power Mode

Auch RAID-Controller unterstützen „PowerSave“-Modes, die für Exchange natürlich kontraproduktiv sein und sollte abgeschaltet werden.

  • Auf gehen und rechts Modify Power Mode auswählen
  • Auf Max Performance gehen

Logische Devices

Folgende Einstellungen sind für Exchange Datenbanken optimal.

Create Array
nur eine Disk auswählen --> Create Array

Create Logical Drive --> Finish 

Partitionen (Muster)

Für den Betrieb vieler Datenbank hat es sich bewährt diese auf verschiedenen LUNs zu verteilen und diese als “Mountpoint” in das Root-Filesystem einzubinden.

RAID Level

Stripe Size

Sectors / Track

Size

Caching

Volume

Label

Mount Point (Laufwerk)

0

256KB

32

Maximum

enable

NTFS 64Kb

Disk1Part2

C:\disks\Disk1Part2

0

256KB

32

Maximum

enable

NTFS 64Kb

Disk2Part2

C:\disks\Disk2Part2

0

256KB

32

Maximum

enable

NTFS 64Kb

Disk3Part2

C:\disks\Disk3Part2

0

256KB

32

Maximum

enable

NTFS 64Kb

Disk4Part2

C:\disks\Disk4Part2

1

256KB

32

Maximum

enable

NTFS 64Kb

D-MessageQueue-Log

D:\

Bei größeren Umgebungen mit mehreren Servern kann dieser Prozess per Skript automatisiert werden. Das folgende Beispielskript sucht nach allen Disks, die nicht Boot oder System Disks sind. Wenn Disk größer als 1TB ist wird eine Partition über die ganze Disk erstellt, mit NTFS 64KB formatiert und nach C:\Disks\<LABEL> gemountet. Die Mount Points werden vorher automatisch erstellt.

Cls
Foreach ($disk in (Get-Disk|?{!$_.isboot} )) {
   Write-host "------ Current Disk:" $disk.number
   if ($disk.IsBoot -or $disk.IsSystem) {
      write-host " SKIP:System and Boot-Disk"
   }
   elseif ($disk.Size -lt 1tb) {
      write-host " SKIP: Disk smaller than 1 TB"
   }
   else {
      write-host "Processing Disk"
      if ($disk.isoffline) {
      write-host " Enable Offline Disk"
      set-disk -number $disk.number -IsOffline:$false 
      set-disk -number $disk.number -IsReadOnly:$false
   }
   if ($disk.PartitionStyle -eq "RAW") {
      write-host " Initialize Disk from RAW to GPT"
      Initialize-Disk -number $disk.number -PartitionStyle GPT
   }
   if ((get-disk -number $disk.number).LargestFreeExtent -lt 1TB) {
      write-host " SKIP Disk - no space available"
   }
   else {
      write-host " Create new partition"
      $part = New-Partition -DiskNumber $disk.Number -UseMaximumSize -DriveLetter D
       [string]$label = "Disk"+$part.DiskNumber+"Part"+$part.PartitionNumber
      write-host "Label $label"
      If ((get-Volume -partition $part).filesystem -eq "ntfs") {
         Write-host "Already formatted with NTFS"
      }
      Else {
         Format-Volume `
            -partition $part `
            -FileSystem ntfs `
            -AllocationUnitSize 64kb `
            -Confirm:$false `
            -NewFileSystemLabel $label
      }
      $mountpoint = ("c:\disks\$label")
      write-host "Mountpoint $mountpoint"
      If (test-path -path $mountpoint) {
         Write-host "MountpointDir exists"
      }
      Else {
         write-host " Create Mountpoint Directory $mountpoint"
         New-item -path $mountpoint -type directory | out-null
      }
      Add-PartitionAccessPath `
         -Disknumber $part.Disknumber `
         -PartitionNumber $part.PartitionNumber `
         -AccessPath $mountpoint
      Remove-PartitionAccessPath `
         -DiskNumber $part.DiskNumber `
         -PartitionNumber $part.PartitionNumber `
         -AccessPath D:
      }
   }
} 

Das Skript ist natürlich nur ein Sample und muss auf ihre Gegebenheiten angepasst werden.

Exchange Storage Design

Auf einem Exchange Server gibt es mehrere “Datenbereiche”, die unterschiedlich große Datenmengen beinhalten. Bei einer „Default Installation“ landen alle Daten auf der Installationspartition. Das ist natürlich ungeeignet für Datenbanken und auch der Speicherbereich Messagetracking oder Transportqueue sollten aufgrund des Wachstumspotential nicht auf der Systemfestplatte liegen. Über die Auswahl des Exchange Installationsverzeichnisses und entsprechender Konfiguration verschiedener Dienste werden die Datenbereich entsprechend der Planung verlagert.

Datenbereich

Ziel

Größe

Betriebssystem

C:

 

IISLog

D:\IISLogs

 

Exchange Binaries

D:\Programs\Exchange

 

Exchange Messagetracking

D:\Programs\Exchange

 

Exchange Logging

D:\Programs\Exchange

 

Exchange Datenbanken

D:\Programs\Exchange

 

Später werden die Datenbanken auf andere Disks verlagert. Eine Überwachung der Dateibereiche ist aber auf jeden Fall notwendig.

Installationsuser

Die Einrichtung kann mit einem beliebigen Anwender erfolgen, der Domänen Administrator oder zumindest Exchange “Organization Admin” und auf den Servern natürlich “lokaler” Admin ist.

Thema

Status

Technmischer User

GG\TECH149

Unified Communications Managed API 4.0 Runtime

Die Exchange UM-Rolle benötigt die UCMA 4.0 Runtime, die getrennt herunter zu laden und zu installieren ist. Sie ist nicht Bestandteil der Exchange Installation. Die früher noch erforderliche Windows Rolle „Server-Media-Foundation“ ist mittlerweile entfallen.

Rollen und Features für Exchange

Für Exchange sind einige Windows Features erforderlich. Dieses können vorab manuell installiert werden. Sie werden aber auch bei der Exchange Installation bei Bedarf nachinstalliert.

Thema

Status

Import-Module servermanager

Install-WindowsFeature `
   AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, `
   RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, `
   Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, `
   Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, `
   Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45,`
   Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, `
   Windows-Identity-Foundation, RSAT-ADDS, Failover-Clustering

Installation der Rollen

Die eigentliche Installation von Exchange ist schnell durchgeklickt.

Thema

Status

  • Quelle: Exchange 2016 CU8 vom lokalen ISO-File
  • Kein Check nach Update. Wir haben ja das aktuelle CU, oder nicht ?
  • Don’t use recommended Settings
  • Rollen: Mailbox Role, Management Role, Auto Install Windows Roles&Features
  • Zielverzeichnis: D:\Exchange
  • Malware Protection: ENABLE

Danach ist ein Neustart des Servers erforderlich.

Windows Update

Durch die Installation von neuen Windows Rollen und zusätzlichen Komponente können Windows Updates erforderlich sind.

Thema

Status

Windows Update

Server: Lizenz

Jede installiert Exchange Version ist mittlerweile eine 180 Tage Testversion, die erst durch die Eingabe eines Lizenzschlüssels lizenziert wird. Auch eine Trial-Version ist komplett funktionstüchtig aber bedient maximal 5 Datenbanken

Thema

Status

Eingabe des Lizenzkeys (Kontextmenü auf dem Server)

Die Exchange Dienste neu starten / Clusterressource müssen neu gestartet werden um die Lizenz sofort zu aktivieren.

Status

IIS: Logging konfigurieren

Mit Ausnahme der POP3/IMAP4-Cients nutzen alle anderen Clients das Protokoll HTTP zum Zugriff auf ihr Postfach und hinterlassen damit entsprechende Einträge im IISLog, die wachsen und nicht automatisch gelöscht werden.

Thema

Status

Die Logdateien des IIS werden von C: auf D: verlagert. das geht per GUI oder PowerShell

Import-Module servermanager
Add-WindowsFeature Web-Server -IncludeManagementTools
Import-Module Webadministration
$SITE = get-item "IIS:\Sites\Default Web Site"
$SITE.logFile.directory = "D:\Inetpub\logs\Logfiles"
$SITE | Set-Item
Iisreset 

X-Via Header in IISLog aufnehmen

IIS-Logging und dann „Add Custom Field

IIS Log  Bytes-Send und Bytes-received addiert

IISLOG Cleanup / Auswertung einrichten

DAG und Datenbank

Die installierten Server sind anfangs noch einzelne Server, die erst in eine „Database Availability Group“ (DAG) aufgenommen werden müssen.

Thema

Status

Vorbereitung Witness-Server

         Auswahl eines Zeugen-Servers

         Addieren von „Exchange Trusted Subsystem“ auf dem Server

         Exchange legt beim Erstellen der DAG selbst den Share und ACLs an

Hochverfügbarkeit

Erstellen einer DAG über /ECP mit „Datenbankverfügbarkeitsgruppe

Name: BSMSXP00
Witness: BSWNTP01.msxfaq.com
Witness Directory D:\Exchange_MSX01
IP-Addresse: Keine

Kein eigener Cluster Heartbeat

Mitgliedsserver addieren

         Add: MSX01

         Add: MSX02

Datenbanken, Replikation und Quota

Datenbankname: MB1:
Server1: xxx
Server2: xxx
DBPfad: C:\ExchangeDB\mb1\mb1.edb
Log: C:\ExchangeDB\mb1\Logs
Warn: 11945 MB
SendStop 12048MB
EmpfangStop 12355MB
DeletedItem 14 Tage
DeletedMailbox: 30 Tage
Keep deleted Mails until Backup
Public Folder:PF1
OAB: “Default Offline Addressbook”

Datenbankname: MB2:
Server1: xxx
Server2: xxx
DBPfad: C:\ExchangeDB\MB2\MB2.edb
Log: C:\ExchangeDB\MB2\Logs
Warn: 11945 MB
SendStop 12048MB
EmpfangStop 12355MB
DeletedItem 14 Tage
DeletedMailbox: 30 Tage
Keep deleted Mails until Backup
Public Folder:PF1
OAB: “Default Offline Addressbook”

PublicFolderDB: PF1
Server: Server: xxx
DBPfad: C:\ExchangeDB\PF1\PF1.EDB
Log: C:\ExchangeDB\PF1
Warn: 450 MB
Bereitstellung verbieten 470 MB
Max Itemsize: 50MB
Retention Time: 14 Tage

Sollen die durch das Setup angelegten Datenbanken gelöscht werden, müssen die darin enthaltene Postfächer SystemMailbox, FederationMailbox, DiscoveryMailbox verschoben werden:

Get-mailbox –database name –abrbitration | %{new-movereqest –identity $_.alias}

Postfachrecht auf alle Postfächer (Single Item Backup)
Der Gruppe „Exchange Full Mailbox“ wurden alle Rechte auf alle Mailboxen in einer Datenbank gewährt. Diese Einstellung ist je Datenbank erforderlich

Add-ADPermission -Identity "Store" -User " Exchange Full Mailbox " -ExtendedRights Receive-As

Dienstkonten Berechtigen (Blackberry o.ä.)

Get-MailboxServer `
| Add-ADPermission `
   -User domain\besservice `
   -AccessRights GenericRead, GenericWrite -ExtendedRights Send-As, Receive-As, ms-Exch-Store-Admin

Zertifikate

Die komplette Kommunikation zwischen den Server und den Clients zum Server erfolgt per SSL-Verschlüsselung. Dazu sind entsprechende Zertifikate erforderlich. Das Exchange Setup richtet dazu schon eigene Zertifikate ein. Abhängig vom Client-Konzept sind auf dem Exchange Server bzw. Loadbalancer die passenden Zertifikate zu installieren. Wenn die Clients über einen L7-Loadbalancer mit SSL-Offloading zugreifen, können auf den Exchange Servern die vorhandenen Zertifikate weiter genutzt werden. Ein Zertifikatsmanagement ist aber dennoch ratsam.

Thema

Status

Beispiel für die Erstellung eines Zertifikatrequests auf dem Exchange Server

$CertReq = (New-ExchangeCertificate `
   -GenerateRequest -FriendlyName 'Exchange2016 SAN Cert' `
   -SubjectName 'C=DE,CN=outlook.xxx.com' `
   -PrivateKeyExportable:$true `
   -DomainName `
          outlook.xxx.com, `
          autodiscover.xxx.com, `
          autodiscover.xxx.de,`
          webmail.xxx.com, `
          ews.xxx.com,`
          mobile.xxx.com, `
          mobile-mdm.xxx.com,`
          imap.xxx.com, `
          pop.xxx.com, `
          mail.xxx.com, `
          relay.xxx.com, `
          MSX01.msxfaq.com,`
          MSX02.msxfaq.com,`
          MSX01.,`
          MSX02.,`
   -Server xxxcas01)

Set-Content -path 'c:\temp\E2016SanCert.req'  
   -Value $CertReq

Der Request muss dann von einer PKI signiert und das Zertifikat wieder eingespielt werden.

Admin/User Rollen

Hier werden zusätzlich delegierte Berechtigungen und Rollen definiert

Thema

Status

Die Verwaltung von Exchange Servern und Empfängern wird per RBAC-Rollen

         OrgAdmin

         EmpfängerAdmin

         ViewOnly Admin

         ServerAdmin

User-Roles: Abschalten, dass Anwender ihre Kontaktdaten selbst verwalten können

Journaling

Wenn es Vorschriften bezüglich der Journalierung von Mails gibt, dann werden diese eingerichtet, ehe das eigentliche Routing eingestellt wird.

Thema

Status

Anlegen der Journalmailboxen
Wird ein Journal erforderlich, dann ist das Ziel des Journals (Kontakt oder Postfach) anzulegen (ohne externe Adresse)

Store-Journal

Auf dem Postfachspeicher kann ebenfalls die Journalfunktion aktiviert werden

Journalregeln auf dem Transport

Wenn bestimmte Nachrichten in ein Journal gesendet werden müssen, muss hier der Filter und das Ziel konfiguriert werden. Achtung: Transport-Journalling benötigt eine Enterprise CAL.

Transport: SendConnector

Über die Connectoren wird gesteuert, wie Exchange Mails zu anderen Partnersystemen und dem Internet versendet.

Thema

Status

Anlage eines Connectors zu NoSpamProxy als „Upstream“ Server

Name: „Internet via NoSpamProxy“
Route via Smarthost: nsp.msxfaq.com
Authentication: None
Addressspace: *:1
Source Server:; MSX01, MSX02

Weitere Konnektoren zu anderen verbundenen Systemen (ERP, CRM, Fax etc.)

Transport: Receive Connector

Über diese Connectoren wird gesteuert, wie Exchange Mails annimmt und ggfls. als Relay weiterleitet. Per Default nimmt Exchange 2016 Mails anonym an.

Thema

Status

Anpassen „Default Frontend %server“

Authentication: Abschalten von „Anonym“
Server:; MSX01, MSX02

Anlage eines Receive Connectors um Mails von NoSpamProxy  anonym anzunehmen

Name: „Internet via NoSpamProxy SMTP In“
ListenIP: Any:25
Source-IP: 10.99.84.148, 10.99.82.109
Authentication: None
Server:; MSX01, MSX02

Weitere Konnectoren können nach Bedarf eingerichtet werden, z.B. um bestimmte Absender einen anonymen Versand zu erlauben o.ä. Hier ein paar Beispiele:

Thema

Status

Receive Connector Anonym Annehmen

Name: „Anonym-.Annehmen“
Bindung: Alle:25
RemoteIP: xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxxx
Empfang für „anonym“ freischalten
Max Messagesize: 20480
Optional Default Domain setzen

Geändert auf MSX01/MSX02

Receive Connector Relay

IP-Beschränkungen
Optional Anonym freischalten
Default Domain setzen
Relay Option aktivieren.

Get-ReceiveConnector "connectorname" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

Transport: Message Tracking

Per Default loggt Exchange die letzten 30 Tage mit bis zu 1GBpro Server. Diese Einstellungen sind ggfls. anzupassen.

Thema

Status

Aktuelle Daten

get-transportserver | fl m* 

Der Pfad für das Messagetracking und die maximale Größe konfigurieren
Achtung: Pfad muss manuell angelegt werden
Rechte müssen für „Network Service“ vorliegen.

Set-Transportserver -Messagetrackinglogpath E:\
Set-Transportserver -Messagetrackingsize 10MB 
Set-Transportserver -MessagetrackingLogMaxDirectorySize 1GB 
Set-Mailboxserver -messagetrackinglogpSet-Mailboxserver -messagetrackinglogpath c:\Pro...\logs\Messagetracking 
Set-Mailboxserver -="" src="../images/checkbox24x24.gif" width="24" height="24" title=""

Transport: Queuepfade

Die Queue-Datenbank liegt per Default auch im Programmverzeichnis. Gerade in größeren Installationen ist es erforderlich diese Datenbank auf eine eigene LUN zu verschieben

Thema

Status

ZZuerst wird der Transport Dienst gestoppt

net stop MSExchangeTransport 

Dann werden die vorhandenen Datenbanken in das neue Ziel kopiert und der Pfad in der Konfiguration angepasst.

Edit C:\Program Files\Microsoft\Exchange Server\V15\Bin\EdgeTransport.exe.config

<appSettings>
    <add key="QueueDatabasePath" value="D:\TransportRoles\Data\Queue" />
    <add key="QueueDatabaseLoggingPath" value="D:\TransportRoles\Data\Queue" />
</appSettings>

Zuletzt wird der Dienst wieder gestartet

net start MSExchangeTransport

Domains

Diese Einstellungen werden vom Exchange xxx/2010 Setup von einer bestehenden Exchange

Thema

Status

Akzeptierte Domänen eintragen
(erforderlich für spätere Pflege der Empfängerrichtlinien)

New-remoteDomain `
   -domainname msxfaq.de `
   -type autoritative `
   -name ex.msxfaq.de

Remote Domänen
Sonderfälle pflegen zu Partnern u.a.

Transport: Empfängerrichtlinien und Mailboxrichtlinien

EExchange kann die Mailadressen von Objekten anhand von „Richtlinien“ vorgeben, so dass eine manuelle Änderung der Mailadresse nicht möglich ist. Als Filter können Felder wie Empfängertypen (Benutzer, Externe Benutzer, Kontakte, Ressourcenpostfächer, Verteiler, ..) und Land, Abteilung, Firma, ExtensionAttribute 0-15 etc. genutzt werden. Weitere Kriterien können per Powershell konfiguriert werden. Die Filterung nach OUs ist nur möglich, wenn keine Legacy Exchange Server in der Organisation existieren. Wir empfehlen eine Filterung über die Werte im Feld „Company“.

Es ist per Provisioning natürlich möglich, die Anwendung von Richtlinien pro Empfänger zu deaktivieren und die Adressen selbst zu verwalten. Sie müssen aber in „Accepted Domains“ aufgelistet sein.

Thema

Status

Postfachrichtlinien

Neu anlegen (Organisation - Mailboxmanager. Anhand der bisherigen Exchange 2000/2003 Richtlinien

Empfängerrichtlinien anlegen (GUI)

Default-Policy:  %g.%s@Xxx.tld 

Transport: Postmaster

SSchon immer sollte es ein Postfach „postmaster@%domain%“ geben, über welches die Administratoren über Firmen hinweg bei Problemen Kontakt aufnehmen können. Per Default ist aber auch in Exchange diese Adresse “leer“ und kann konfiguriert werden.

Thema

Status

Anlegen eines Postfachs/Mailadresse für Postmaster

AAuslesen der aktuellen Konfiguration

Get-transportserver | fl identity,ExternalPostmasterAddress

Setzen auf allen Servern

Get-transportserver | Set-Transport -externalPostmasterAddress admin@xxx.tld

Transport: Regeln/Disclaimer

Über Transportregeln können umfangreiche Steuerungen erfolgen, z.B. Mails serverseitig umzuleiten, Header zu ändern oder auch Pflichtabgaben addieren (Disclaimer).

Thema

Status

Disclaimer

Transport: Messagegrößen

Zusätzlich zu den globalen Einstellungen zur Nachrichtengröße, auf Ebene der Connectoren und einzelner Empfänger können sie auch auf dem Server Limits einstellen.

         Message size limits in Exchange 2016
https://technet.microsoft.com/de-de/library/bb124345(v=exchg.160).aspx#Server

Thema

Status

Org: Einstellung

Server

Receive Connector

Send Connector

Pro Anwender werden aktuell keine abweichenden Limits gesetzt

Transport: Malware Update

Exchange 2016 hat per Default einen „Malware-Scanner“ integriert, der jede übertragene Mail gegen eine vorhandene Pattern-Datenbank prüft.

Thema

Status

Malware Update einrichten

Unabhängig davon sollten die Systeme auf die per MX-Record die Mails aus dem Internet eintreffen, ungültige Empfänger ablehnen und natürlich auf Spam und Viren prüfen.

Frontend: Namen und URLs

Mit Exchange greifen alle Clients immer nur auf die Frontend-Rolle zu.

Thema

Status

Namenskonzept

Der Zugriff auf die Exchange Dienste erfolgt über „Namen“, für die ein Zertifikat erforderlich ist und die per Loadbalancer auf die Frontend-Server weitergeleitet werden.

Entsprechend sind Namen für die verschiedenen Zugriffswege zu definieren.

  • Exchange CAS-URLs  (Intern=Extern)
  • Autodiscover
    /autod: autodiscover.<maildomain>:443
  • Browser
    /OWA  : outlook.msxfaq.com:443
    /ECP  : outlook.msxfaq.com:443
  • Outlook, Skype u.a.
    /MAPI : outlook.msxfaq.com:443
    /RPC  : outlook.msxfaq.com:443
    /OAB  : outlook.msxfaq.com:443
  • WebServices (Outlook u.a.)
    /EWS  : outlook.msxfaq.com:443
  • Mobile Device
    /EAS  : outlook.msxfaq.com:443
  • Legacy Clients
    SMTP : outlook.msxfaq.com:25/465/587
    POP3 : outlook.msxfaq.com:110/995
    IMAP4: outlook.msxfaq.com:143/993

Zertifikat

Den Clients muss ein zum Namen passenden Zertifikat präsentiert werden. Dies kann auf den Exchange Servern oder auf dem Loadbalancer (Layer-7 HLB) installiert werden.

Es muss alle angesprochenen Namen enthalten.

Loadbalancer

Der Zugriff auf die virtuellen Namen erfolgt über Loadbalancer

Virtual Service mit IP: x.x.x.x
Zertifikat: *.msxfaq.com/*.msxfaq.de/Autodiscover.*  per SNI
Setzen des Headers: X-Forwarded-For
Real-IP:  Exchange Server
Healthcheck https://<realserver>:443/owa/healthcheck.htm  (u.a. URLs)
Keine Preauthentication/Anonym durch
Affinity/Stickyness: Optional

Internet Veröffentlichung

Der Zugriff auf die Exchange Dienste aus dem Internet ist noch zu konfigurieren.

Eintrag der Hostnamen im DNS (Intern/extern)

Konfiguration der Internal/ExternalURL für alle Server.

Das Konzept sieht vor, dass nur OWA aus dem Internet erreichbar ist und ActiveSync über Mobile Iron geht. Daher wird nur bei OWA eine „ExternalURL“ hinterlegt.

Set-ecpvirtualdirectory `
   -internalURL https://outlook.msxfaq.com/ecp

Set-ewsvirtualdirectory `
   -internalURL https://outlook.msxfaq.com/ews/exchange.asmx

Set-mapivirtualdirectory `
   -internalURL https://outlook.msxfaq.com/ews/mapi


Set-Autodiscovervirtualdirectory `
   -internalURL https://outlook.msxfaq.com/Microsoft-Server-ActiveSync/

Set-oabvirtualdirectory `
   -internalURL https://outlook.msxfaq.com/oab

Set-owavirtualdirectory `
   -ExternalURL https://outlook.msxfaq.com/owa
   -InternalURL https://outlook.msxfaq.com/owa

Set-PowerShellvirtualdirectory`
   -internalURL https://outlook.msxfaq.com/PowerShell/

Set-ClientAccessService `
   -Autodiscoverinternalurl

Konfiguration Outlook AnyWhere URL

Set-OutlookAnyWhere `
   -internalurl https://outlook.msxfaq.com

Konfiguration Autodiscover URL für ClientAccessService

Set-ClientAccessService `
   -AutoDiscoverServiceInternalUri "https://outlook.msxfaq.com/autodiscover/autodiscover.xml"

 

Frontend: Kerberos

Beim Zugriff auf einen virtuellen Namen wie „outlook.msxfaq.com“ finden die Clients keinen passenden Computer-Account und der KDC kann kein Kerberos-Ticket ausstellen. Damit Kerberos funktioniert, muss ein Service-Account eingerichtet und auf den Servern hinterlegt werden, die per Loadbalancer angesprochen werden-

Konfigurieren der Kerberos-Authentifizierung für Clientzugriffsdienste mit Lastenausgleich

Thema

Status

Konfiguration von Kerberos

Import-Module ActiveDirectory
   -Name EXCH2016ASA `
   -AccountPassword (Read-Host 'Enter password' -AsSecureString) `
   -Description 'Alternate Service Account credentials for Exchange' `
   -Enabled:$True `
   -SamAccountName EXCH2016ASA

.\RollAlternateServiceAccountPassword.ps1 `
   -ToSpecificServer MSX01.msxfaq.com `
-GenerateNewPasswordFor gg\EXCH2016ASA$

.\RollAlternateServiceAccountPassword.ps1 `
   -ToSpecificServer MSX02.msxfaq.com `
   -CopyFrom MSX01.msxfaq.com

Kontrolle

Get-ClientAccessServer <server> `
   -IncludeAlternateServiceAccountCredentialStatus `
| Format-List Name, AlternateServiceAccountConfiguration

SPN Abfragen

setspn -F -Q http/outlook.msxfaq.com

SPN eintragen

setspn -S http/outlook.msxfaq.com GG\EXCH2016ASA$

IIS Verzeichnisse für Kerberos aktivieren

GetClientaccessService `
| Set-OutlookAnywhere `
   -InternalClientAuthenticationMethod Negotiate

GetClientaccessService `
| Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm, Negotiate

 

Frontend: Outlook Web App

Der Zugriff per Browser ist einer der häufigsten Zugriffe aus dem Internet oder von öffentlichen Clients auf ein Postfach und ist entsprechend zu parametrisieren.

Thema

Status

Anpassen des OWA-Thema, ggfls. Abschalten der Änderungsmöglichkeit:

Set-OwaVirtualDirectory `
   -Identity <VirtualDirectoryIdentity> `
   -DefaultTheme <ThemeFolderName> `
   -ThemeSelectionEnabled $false

Einbindung von Office Web App für Word/Excel Viewing/Editing

Set-OrganizationConfig `
   -WACDiscoveryEndpoint https://xxx.xxx.com/hosting/discovery 

Doument-Handling und OfficeWebApp einstellen:

DOC, XLS, PPT, PDF Öffnen / Download required / WebView

Optional weitere Einstellungen z.B.

  • Remote-Dateiserver optional einrichten
  • OWA Segmentierung einrichten

Frontend: ActiveSync

Per Default können alle Anwender ein Mobiltelefon mit Exchange verbinden, wenn der Dienst aus dem Internet erreichbar ist. Seit Exchange 2010 ist eine Quarantäne als Vorfilter möglich. Aber auch eine MDM-Lösung kann den Zugriff und das Provisioning steuern.

Thema

Status

Exchange Quarantäne

ActiveSync Policies Pflegen und auf Anwender anwenden

Eine Policy für „Default ActiveSync“ wurde angelegt. (Keine hohe Sicherheit)

Veröffentlichung zum Internet

Frontend:POP3/IMAP4

Sofern der Zugriff per POP3 oder IMAP4 gewährt werden soll, muss die Exchange xxx Konfiguration angepasst werden.

AUSRUFE

Prüfen Sie genau die Anforderung für POP3/IMAP4 und die Option, OWA als sichere Alternative anzubieten.

Thema

Status

POP3 Dienst Startart auf automatisch und starten (wenn gefordert)
IMAP4: Dienst Startart auf automatisch und starten (wenn gefordert)

Auf den CAS-Servern wurde POP3 und IMAP4 auf automatisch gestellt

Alias für Namensauflösung einrichten

DNS: pop3.xxx.tld  A xxx.xxx.xxx.xxx
DNS: imap4.xxx.tld  A xxx.xxx.xxx.xxx

DNS: mailserver.xxx.tld A xxx.xxx.xxx.xxx (später)

Authentication

Per Default ist „Secure authentication“ erfordert Die Anmeldung mit einem Klartextkennwort wurde über folgende Zeile erlaubt:

set-pop3settings -logintype Plaintextlogin

POP3 für SSL aktivieren

Enable-ExchangeCertificate -Services POP

SMTP-ausgehend

Die Standard Receive Connectoren erlauben einen Versand „über Exchange“ für alle angemeldeten Benutzer, SMTP after POP3 o.ä. geht nicht.

Ungültige Mailadresse ergänzen
Exchange 2003 erlaubte ein „MAIL FROM: username“ und hängt die Domain dran. Exchange xxx erzwingt eine „saubere“ Mailadresse. Prozesse, die also nur „MAIL FROM: servername.domain.tld“ sendet, wird die Mail nicht mehr los

Get-receiveconector | set-receiveconnector -defaultdomain Xxx.tld

Nun werden alle „MAIL FROM: user“, um die Domäne ergänzt

Optional können die Logs weiterer Dienste angepasst werden:

  • POP3 Server Log
  • IMAP4 Server Log

Adresslisten

Exchange erstellt per Default einige Adresslisten (Benutzer, Kontakte, Verteiler, Räume, Ressourcen). Weitere Adresslisten können basieren auf Feldern (z.B. Land, Abteilung, Firma etc.) erstellt werden, um nach Firmen oder Standorten eigene Listen anzubieten.

Bei einer Migration sind bestehende Adresslisten ggfls. zu aktualisieren.

Thema

Status

Anzeige der zu konvertierenden Adresslisten

get-addresslist | where {$_.RecipientFilterType -match „Legacy“}

Anpassen oder Update der Adresslisten

set-addresslist "Alle Kontakte" -includedrecipient MailContacts 
set-addresslist "Alle Benutzer" -includedrecipient MailboxUsers
set-addresslist "Alle Gruppen" -includedrecipient Mailgroups

Eventuell eigene Filterregeln sind manuell zu übernehmen

Umstellen der GAL

Set-GlobalAddresslist "Globale Standardadressliste" `
   -RecipientFilter { (Alias -ne $null and (Object  (........)

Offline Adressbuch

Damit Outlook Clients auch „ohne Verbindung“ oder im Cached mode ein Adressbuch nutzen, werden auf dem Server entsprechende „Offline Adressbücher“ erstellt und repliziert. Bei einer geforderten Segmentierung sind mehrere Adressbücher erforderlich und den jeweiligen Empfängern zuzuweisen.

Thema

Status

Default OAB

Generierung durch xxx

ADD: Webdistribution auf xxx
ADD: Webdistribution auf xxx

Modern Public Folder

Sofern diese Dienste noch genutzt werden, sind entsprechende Public Folder Mailboxen und die Ordner anzulegen, zu replizieren und zu berechtigen

Thema

Status

Einrichten/Konfigurieren des Public Folder Store

Anlegen einer OrgForm Library
bzw. von Exchange 2003 replizieren.

Unified Messaging

Exchange kann über die UM-Funktion als Sprachmailbox und zur Wiedergabe von Mails per Telefon konfiguriert werden.

Thema

Status

Konfiguration UM Gateway

Konfiguration UM DialPlan

Konfiguration der Anwender

Datensicherung

Ab vier Replikaten einer Datenbank kann laut Microsoft auf eine klassische Datensicherung verzichtet werden. Ansonsten ist eine Sicherung der Datenbank gemäß der Geschäftsanforderungen einzurichten.

Thema

Status

Datensicherung einspielen und prüfen

Sicherung Betriebssystem

Datenbanksicherung

Monitoring/Reporting

Exchange überwacht sich umfangreich schon selbst und führt korrigierende Maßnahmen durch. Dennoch ist eine Überwachung des Gesamtsystems und die Erfassung von Kennzahlen wichtig um im Fehlerfall schnell die Ursache zu erkennen und nach Veränderungen (Patch, Updates etc.) auch die Performance kontrollieren zu können.

Thema

Status

Konfiguration der Überwachungslösung, Eventuell Installation von Agenten.

  • SNMP-Feature installieren
  • Pflegen der Communities, Agenten und Traps per GPO

ExBPA

Microsoft führt eine Datenbank der „Best Practices“ was Treiber und Installationen betrifft. Früher war dies ein separates Programm (BPA) und wird danach in das Produkt integriert. Mittlerweile ist es wieder ein eigenständiges Programm.

Thema

Status

Ergebnis ExBPA

 

Funktionstest

Die hier aufgezählten Tests sind nur eine sehr kleine Liste der aus meiner Sicht mindestens durchzuführenden Tests. Einige der Tests können auch zur permanenten Überwachung herangezogen werden.

Thema

Test

Testbenutzer auf Exchange einrichten

Zuerst müssen wir Benutzer zum Testen auf Exchange einrichten. Das muss natürlich funktionieren. Oft fallen hier Administratoren negativ auf (AdminADHolder)

Mailflow testen. Der einfachste Test ist natürlich das Versenden von Nachrichten

  • Zwischen Postfächern
  • Postfach -> Internet oder vorhandene Systeme
  • Internet oder vorhandene Systeme -> Postfach

Zugriff durch Clients testen

Das Exchange Postfach sollte nun auch über die anderen Wege geprüft werden. Besonders die Zertifikate und Authentifizierung sind hier relevant.

  • OWA per HTTPS über Exchange xxx CAS Server
  • ActiveSync per HTTPS über Exchange xxx CAS Server
  • RPC over http
  • Kerberos i.O.?

Auch die installierten Zusatzprogramme sind zu prüfen:

  • Antivirus
    Senden Sie Testmails mit Virus (Siehe MSXFAQ.DE - Eicarsender)
  • Datensicherung und Archiv
    Prüfen Sie auch diese Funktion. Speziell bei der Archivierung ist wichtig, ob die Benutzer ihre alten Nachrichten finden und auch wiederherstellen können. Das gilt auch für den Zugriff per OWA
  • Faxserver
    Können weiterhin Faxe versendet und empfangen werden?
  • Monitoring
    Erkennt ihre Überwachungssoftware den neuen Server und kann Sie auch die Fehler entsprechend berichten? Werden auch erforderliche statistische Daten und Performance Counter aufgezeichnet?

Test-Commandlets und Monitoring

Sowohl die in Exchange xxx vorhandenen TEST-Commandlets als auch die eigenen Überwachungswerkzeuge sollten die Funktion der Server prüfen. Noch können Sie auch Fehler simulieren (z.B. falsche Smarthost oder DNS, damit die Queues volllaufen oder Dienste stoppen) um Alarmierungen zu prüfen.

Dazu gehört aber auch eine Überwachung und Kontrolle der Hardware, d.h. dass ein Ausfall einer RAID-Festplatte auch gemeldet wird und sie auch die Schritte für ein Rebuild kennen. Auch redundante LAN (Teaming) und SAN Anbindungen müssen sowohl ihre Funktion als auch die Meldung des Fehlers beweisen.

Prüfen Sie auch die Clientzugriffe über die verschiedenen Wege (OWA, ActiveSync, POP3, IMAP4, SMTP, RPC/HTTP, Autodiscover, Exchange Web Services (EWS für OOF etc.)

Failover Tests

In einer hochverfügbaren Umgebung muss das System natürlich auch beweisen, dass es Ausfälle verkraftet. Es müssen die jeweils anderen Systeme übernehmen, Loadbalancer umschwenken, das Monitoring muss anschlagen und die Last und Umschaltzeit muss beachtet werden.

  • Serverdienste beenden
  • Netzwerkkabel ziehen
    Hier wäre dann Teaming zu prüfen
  • Festplatte ziehen
  • Server abschalten
  • Geplante Wartungsarbeiten
    Funktionieren die Routinen zum Setzen des Wartungsmodus etc.

Die Liste ist zwae recht umfangreich aber Sie müssen diese Dennoch an ihre individuellen Gegebenheiten anpassen.

Weitere Links