Sophos Mobile Control mit HAProxy

Zugegeben: Die Dokumentation von Sophos Mobile Control ist- schmeichelhaft ausgedrückt- spartanisch.
Hat man das System jedoch erstmal am Laufen so gibt es kaum noch Kritikpunkte.
Ein Punkt, über den sich die Dokumentation gänzlich ausschweigt, ist die Konfiguration von Lastverteilungsszenarien.
Das Ziel war die bereits bestehende Lösung mit einem Loadbalancer (HAProxy) und 2 CAS- Servern auch für SMC (Sophos Mobile Control) nutzen zu können.
Herausgekommen bei allen Überlegungen ist folgendes Konstrukt:

Das Prinzip

Die SSL-Verbindung der Clients geht durch die Firewall und terminiert am HAProxy. Die Verbindung zu den CAS Servern erfolgt unverschlüsselt. Der HAProxy filtert, basierend auf der aufgerufenen URL den ActiveSync Traffic heraus, und leitet diesen an die auf den CAS Servern installierten Sophos EAS Proxies. Der restliche Traffic, wie z.B. Outlook WebAccess wird direkt zu den CAS Servern geleitet.

Grundvoraussetzung ist hierfür, dass der HAProxy auch SSL Offloading macht, da der Proxy ansonsten keine Möglichkeit hat die aufgerufene URL analysieren zu können, sondern lediglich "dumm" auf TCP/IP Pakete reagiert.
SSL Offloading beherrscht HAProxy seit der Version 1.5. Die Installation auf einem FreeBSD System kann entweder aus den Paketen oder auch aus den Sources erfolgen. Der zweite Weg sieht in etwa so aus:  
# tar xvfz haproxy-ss-20130118.tar.gz
# cd haproxy-ss-20130118
# gmake TARGET=freebsd USE_OPENSSL=1 USE_ZLIB=1 USE_PRIVATE_CACHE=1
# gmake install
  Nach der Installation erwartet das System eine Konfigurationsdatei haproxy.conf unter /usr/local/etc/.
Diese sieht stark vereinfacht wie folgt aus:
frontend WebAccess
  mode http
  bind 192.168.1.1:443 ssl crt /usr/local/etc/cert.pem
  acl ACLActiveSync path_beg /Microsoft-Server-ActiveSync
  use_backend ActiveSync
  default_backend ExchangeOWA
  option forwardfor
 
backend ActiveSync
  balance roundrobin
  server cas1 192.168.10.1:4430 maxconn 20000
  server cas2 192.168.10.2:4430 maxconn 20000
 
backend ExchangeOWA
  balance roundrobin
  server cas1 192.168.10.1:80
  server cas2 192.168.10.2:80
Besonders wichtig sind an dieser Konfiguration die Zeilen 4 und 5. Dort erfolgt die "Auskopplung" des ActiveSync Traffics und die Umleitung auf den Sophos EAS Proxy, der im Beispiel auf Port 4430 hört. Nach dem Start des HAProxy ist dieser nun soweit einsatzbereit. Ein weiterer wichtiger Punkt ist die Anpassung der CAS Server damit diese das SSL Offloading unterstützen und vor allem auch nicht auf SSL verschlüsselten Traffic bestehen.

Registry Anpassung der CAS Server

Unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MSExchange OWA
muß eine neuer Schlüssel (REG_DWORD) SSLOffloaded mit dem Wert 1 eingefügt werden.
Danach ist ein Neustart des IIS (z.B. mit einem iisreset) notwendig.

Abschalten von SSL für Outlook WebAccess und ActiveSync

Nun muß noch bei allen beteiligten Verzeichnissen geprüft werden, daß zum Aufruf SSL nicht zwingend notwendig ist.

Installation der Sophos EAS Proxies

Auf die Installation der Sophos EAS Proxies, sowie des Sophos Mobile Control Servers selbst werde ich hier nicht weiter eingehen, da genau hierfür bunt bebilderte Anleitungen direkt bei Sophos verfügbar sind.

Finale

Nach der Fertigstellung sämtlicher Installation- und Konfigurationsarbeiten ist das System nun voll einsatzbereit. Das Wegbrechen eines EAS Proxies wird durch das Umschalten der Verbindungen auf die/den verbleibenden Proxy abgefangen.