MDM und Quarantäne

Um zu steuern, welche Mobilegeräte ein Postfach mit Exchange synchronisieren dürfen, gibt es seit Exchange 2010 die ActiveSync Quarantäne, die optional aktiviert werden kann. So können Mobilgeräte über Regeln oder manuell "zugelassen" oder "geblockt" werden. Eine MDM-Lösung wie z.B. Intune oder MobileIron geht darüber hinaus aber bei der Einführung gilt es beide Wege zu managen.

Zugriff auf Exchange

Wenn Sie heute schon Exchange mit ActiveSync nutzen, dann veröffentlichen Sie in der Regel ihren Exchange Server über einen Reverse Proxy, so dass Mobilgeräte sich mit Exchange über ActiveSync (HTTPS) verbinden können. Sie können auf dem Reverse-Proxy ggfls. eine Preauthentifizierung vornehmen aber eine effektiver Kontrolle, welches Endgerät sich mit welchem Postfach verbinden kann, ist über die Exchange Quarantäne möglich. Exchange prüft die eindeutige ActiveSync ID und verhindert eine Verbindung mit anderen Geräten. Ob das Endgerät allerdings "compliant" ist, kann die Quarantäne nicht sicherstellen.

Dafür gibt es MDM-Lösungen, die über eine Konfiguration und App auf dem Mobilclient die entsprechenden Richtlinien durchsetzt und z.B. erst dann ein Client-Zertifikat installiert oder anderweitig über den MDM-Service die Konformität mit den Firmenvorgaben meldet. Dieser Service kann dann das Gerät freischalten. Je nach Lösung erfolgt dies ebenfalls über die Einstellung der Quarantäne oder einen eigenen Reverse Proxy der MDM-Lösung. Der Weg über die Quarantäne ist nur bedingt sicher, denn der Anwender könnte ja die MDM-App samt den Einstellungen auf dem Smartphone nach erfolgreicher Einrichtung wieder entfernen und weiterhin ActiveSync nutzen. Hier könnte der MDM-Service nur nach einiger Zeit die Erlaubnis entziehen, wenn das Gerät nicht immer wieder seinen Status meldet.

MDM Umgang mit der Quarantäne

Nun gibt es natürlich verschiedene MDM-Lösungen mit ganz unterschiedlichen Ansätzen:

  • Keine Unterstützung der Exchange Quarantäne
    In dem Fall geht die Lösung davon aus, dass der Exchange Server gar nicht "öffentlich" erreichbar ist und jeder Zugriff über den Proxy des MDM-Systems laufen muss. So funktioniert z.B. MobileIron. Die Herausforderung ist hier dann bei der Migration zu sehen, wie ich später beschreibe
  • Nutzung der Quarantäne
    Andere Produkte verzichten auf eigene Proxy-Systeme und verwalten die Einträge in der ActiveSync Quarantäne basierend auf Rückmeldungen einer App auf dem Mobilgerät, welches die Konfiguration durchführt und am Ende den Status meldet. Es bleibt hier die Sicherheitslücke, dass ein Gerät in der Quarantäne weiter freigeschaltet ist, obwohl es nicht mehr "compliant" ist.
  • Proxy mit Quarantäne
    Zuletzt gibt es Systeme, die eine Kombination von beiden Elementen unterstützen, d.h. sie veröffentlichen Exchange über einen eigenen Proxy aber tragen zusätzlich den Client in der Quarantäne mit ein.

Jeder Ansatz hat also seine individuellen Vor- und Nachteile.

Migration und Koexistenz

Diese Seite habe ich geschrieben, weil ich bei der Migration von Exchange Quarantäne zu MobileIron einbezogen wurde. Der Kunde hat Exchange mit der ActiveSync Quarantäne mehrere Jahre verwendet und jedes neue Gerät ist in der Quarantäne gelandet. Der Helpdesk hat dann über einen manuellen Prozess geprüft, ob das Gerät ein "Firmensmartphone" war und der Anwender entsprechend unterwiesen wurde. Mittlerweile ist dieser Weg aber zu aufwändig und vor allem nicht mehr bequem und sicher genug. Eine kommerzielle MDM-Lösung wurde evaluiert, um die Geräte, die darauf installierte Software und die Konfiguration zu steuern. Als Lösung wurde hier MobileIron letztlich gewählt, welches aber nun bei der Migration eine Herausforderung bedeutete.

  • MobileIron hat einen eigenen Proxy
    d.h. der öffentliche DNS-Namen musste auf allen Endgeräten geändert werden, was eine neue ActiveSync Partnerschaft bedeutet hat. Die Verteilung der Konfiguration per MoibileIron ist aber einfach
  • MobileIron und ActiveSync Quarantäne geht nicht
    Der MobileIron-Proxy gibt die ActiveSync-Zugriffe von legitimen Geräten natürlich an Exchange weiter. Dazu nutzt MobileIron auch Kerberos Constraint Delegation aber für Exchange bleibt es dennoch ein Zugriff eines Geräts auf das Postfach. Solange dieses Gerät nicht in der Quarantäne als "Allowed" gepflegt ist, verweigert Exchange den Zugriff bis das Gerät addiert wurde
  • Viele Endgeräte - Kein  Stichtag
    Wer mehrere tausend Endgeräte betreibt, kann nicht alle Geräte zu einem Stichtag umstellen. Die Anwender müssen ja erst die MobileIron-App installieren und die Konfiguration vom MDM-Server beziehen, damit durch das neue Profil dann die neue ActiveSync-Partnerschaft eingerichtet werden. Es ist utopisch dies zu einem Stichtag ausführen zu wollen.
  • Unterschiedliche Endgeräte - nicht alle "Managed"
    Im Laufe der letzten Jahre wurden viele unterschiedliche Geräte und Plattformen angebunden, IPhone, verschiedene Androiden und Windows Phone. Mit der MDM Einführung wurde der Gerätepark gestrafft und z.B. Windows Phone komplett auslaufen lassen. Aber auch hier waren Übergangsfristen (Vertragslaufzeiten, Speziallösungen) zu beachten oder eine Integration in MobileIron gar nicht mehr möglich oder gefordert

Nach allen Abwägungen wurde der Weg gewählt, neben dem per Exchange Quarantäne abgesicherten Zugang einen zweiten Zugang über MobileIron einzurichten und für eine Übergangszeit beide Zugänge zu unterstützen und erst am Ende, wenn alle Geräte über MobileIron verwaltet werden, den direkten Zugang und dann auch die Quarantäne abzuschalten.

Manage-MDMQuarantine

Für diese Koexistenzphase ist es aber erforderlich, dass jedes Gerät, welches in MobileIron zugelassen wird, auch in der Exchange Quarantäne freigeschaltet wird. Das kann und sollte nicht manuell erfolgen. Es galt daher herauszufinden, wie wird den Datenbestand von MobileIron auslesen und dazu die Exchange Quarantäne-Einstellungen der Postfächer vornehmen können. Dabei sollten in MobileIron zugelassene Geräte in Exchange addiert aber gesperrte Geräte auch wieder entfernt werden, damit diese nicht irgendwie an MobileIron vorbei auf Exchange zugreifen könnten.

Das ganze wurde dann als PowerShell-Script entwickelt, welches auf einem System per Taskplaner immer wieder gestartet wurde. Das Skript liest über eine von MobileIron bereitgestellte REST-API die Liste der Geräte aus und aktualisiert entsprechend die Einstellungen bei den Postfächern.

Damit das alles recht schnell funktioniert, werden natürlich die Daten zwischengespeichert, so dass bei jedem Aufruf genau ermittelt werden kann, welche Geräte neu addiert und welche Endgeräte auch wieder entfernt wurden. So ist der Aufwand per Exchange PowerShell die Einträge mit Set-CASMailbox" zu machen, deutlich reduziert. Ein "Full-Update" von vielen tausend Endgeräten würde zu lange dauern.

Die erste Hürde bei der Abfrage per REST-API ist, dass ein Zugriff ohne Anmeldedaten oder falschen Anmeldedaten keinen 401-Fehler liefert. Damit wird beim "Invoke-RestMethod" bzw. beim "Invoke-WebRequest" die mitgelieferte Authentifizierung gar nicht angewendet. Die Powershell erwartet nämlich einen 401 Fehler um anhand der Antwort die möglichen Anmeldeverfahren zu ermitteln. Hier muss man als Programmierer dann die Header für "Basic Auth" eben selbst erzeugen und blind lossenden. Die Rückgabe der per REST abgefragte Liste ist eine Tabelle:

"DeviceId","MailboxId","Status","SyncStatus","Retired","LastSyncTime","SentryType"
"12345678","User1","Registered","Allowed","true","2017-01-20 10:29:52 GMT","Standalone"
"23456789","User2","Unregistered","Allowed","true","2017-06-27 07:33:50 GMT","Standalone"

Interessant sind dabei neben der DeviceID die Spalten Status, SyncStatus,Retired mit der folgenden Bedeutung

  • Status = Registered
    Das Gerät wird über MobileIron verwaltet und muss daher auch in Exchange zugelassen werden
  • Retired = true
    Das Gerät wird wieder aus der "allowedDevice"-Liste entfernt, wenn es vorher addiert wurde

Wichtig ist, dass ein Skript eine eigene Datenbank der Änderungen pflegt, damit es auch nur "seine Geräte" verwaltet und nicht die Einträge der manuellen Quarantäne verändert.

Dennoch ist die Lösung nicht "Echtzeit", denn die Abfrage der zugelassenen Geräte erfolgt natürlich als "Polling" in einen gewissen Abstand und bis die Änderungen bezüglich der "erlaubten Geräte" an der Mailbox im AD repliziert und von den Exchange Servern auch geladen wurden, vergehen durchaus einige Minuten. Dennoch ist dieser Weg "sicherer", weil Fehlbedienungen ausscheiden und die Verzögerung vorhersehbar ist. Eine manuelle Verwaltung der Quarantäne für über die MDM-Lösung verwaltete Geräte wäre weniger zuverlässig.

Management Skript!

Bitte haben Sie Verständnis, dass ich das für Kunden entwickelte Skript nicht zum Download bereitstellen kann. Es ist für genau eine Umgebung entwickelt und nicht allgemein verwendbar.

Einige Skripte haben ich bei Kunden geschrieben und sind sehr speziell angepasst und daher nicht allgemein zugänglich
Sprechen Sie mich einfach an, wenn Sie eine ähnliche Anforderung haben, die wir gemeinsam lösen können.

Status Skript

Das erste Skript liest die aktuell zugelassenen Geräte aus MobileIron aus und trägt diese in der Exchange Quarantäne ein. Irgendwann kommt aber der Moment, dass Sie gerne wissen würden, wie viele Geräte noch an MobileIron vorbei mit ihrem Exchange Server reden. Sicher könnten Sie die Protokolldateien des Reverse-Proxy befragen. Darauf haben Exchange Administratoren oftmals aber keinen Zugriff und es geht natürlich einfacher und vor allem vollständig mit dem Exchange Server. Über ein "Get-MobileDevice" können Sie sich alle ActiveSync-Partnerschaften von Exchange ausgeben lassen

$UserList = Get-CASMailbox `
               -Filter {HasActiveSyncDevicePartnership -eq $true -and -not DisplayName -like "CAS_{*"}  `
               -resultsize unlimited  `
| Get-Mailbox

write-host "Export all Mobile Device Users to CSV-File"
$Userlist | export-csv .\easUsers.csv -notypeinformation 

write-host "Export all Mobile Device Statistic to CSV-File $($easstatcsvname)"
$Userlist `
| %{Get-MobileDeviceStatistics -mailbox $_} `
| export-csv $easstatcsvname -notypeinformation

Wenn Sie dann noch die passenden Daten aus MobileIron als Streichliste verarbeiten, bleiben nur noch die Geräte übrig, die es noch in Exchange gibt aber nicht in MobileIron vorhanden sind. Sie können sicher sein, dass Sie sehr viele "Altlasten" finden, d.h. Geräte, die schon lange nicht mehr Synchronisieren aber einfach nie gelöscht wurden. Auf jeden Fall sollten Sie diese aber gegenprüfen, ehe Sie den "alten" Zugang an MobileIron vorbei abschalten. 

Einige Skripte haben ich bei Kunden geschrieben und sind sehr speziell angepasst und daher nicht allgemein zugänglich
Sprechen Sie mich einfach an, wenn Sie eine ähnliche Anforderung haben, die wir gemeinsam lösen können.

Weitere Links