Outlook Anywhere und Proxyserver

Sie können in Outlook keine HTTP-Proxies einstellen. Outlook nutzt einfach die gleichen Einstellungen, die Sie auch im Internet Explorer konfiguriert haben. Um Outlook daher über einen Proxy arbeiten zu lassen, müssen Sie die Proxyeinstellungen des Internet Explorers konfigurieren.

So schön das alles ist mit dem HTTP, aber es gibt immer noch weitere Aspekte, die betrachtet werden müssen. So können sich ja mehrere Proxies in der Verbindung befinden. So kann es sein, dass:

  • Outlook einen Proxy benötigt, um in das Internet zu kommen
  • Dieser Internet Proxy eine Authentifizierung erwartet
  • Zwischen Outlook und Internet ein Router mit NAT steht
  • Der Zugang aus dem Internet zum Exchange über einen reverse Proxy läuft
  • Der Zugang aus dem Internet zum Exchange über reverse NAT läuft
  • Der RPC-Proxy auf Exchange installiert ist
  • Der RPC-Proxy auf einem Frontendserver installiert ist

Und vieles mehr. mit folgenden Ketten habe ich bislang Erfahrung gemacht:

Client zum Internet Internet zum Exchange Server Server Ergebnis


Outlook

Direkt (Offizielle IP)

ISA-ReverseProxy->RPCProxy


Exchange 2003

Private IP (Router/NAT)

ISA-ReverseProxy->RPCProxy

SQUID-Proxy ohne Auth

ISA-ReverseProxy->RPCProxy

ISA-Proxy ohne Auth

ISA-ReverseProxy->RPCProxy

SQUID-Proxy-mit-auth

ISA-ReverseProxy->RPCProxy

Jana-Server mit AUTH an SQUID-Proxy(Auth)

ISA-ReverseProxy->RPCProxy

Die Verbindung über einen HTTP-Proxy mit expliziter nicht integrierter Anmeldung funktioniert nicht, da Outlook mit RPC over HTTP keine Möglichkeit bietet, zusätzlich zur Anmeldung an Exchange selbst auch noch eine Anmeldung an einem Proxy-Server zu machen. Der Zugriff über einen Proxy funktioniert also nur dann, wenn der Proxy die "integrierte Anmeldung" (ISA-Server, Microsoft Proxy 2.0) unterstützt oder auf eine Anmeldung verzichtet.

Um dieses Manko zu umgehen gibt es weitere Möglichkeiten:

  • VPN über HTTP
    Immer mehr Produkte erlauben es, eine VPN-Verbindung über HTTP aufzubauen, z.B.: www.htthost.com oder http://openvpn.sourceforge.net/. Dazu benötigen Sie aber zusätzlich eine Gegenseite.
  • Eigener Proxy
    Ein anderer Weg ist das Zwischenschalten eines eigenen Proxy Servers, welcher den eigentlichen Proxy Server als "Upstream Proxy" verwendet und hierbei die Anmeldung durchführt. Outlook verbinden Sich dann mit ihrem lokalen Proxy Server ohne weitere Anmeldung. So kann z.B. Proxomitron oder Jana Server (http://www.janaserver.de) diese Funktion ausführen.

Schade dass es nicht auch von Microsoft ein VPN über HTTP gibt. Kritisch kann sein, dass RPC over HTTP auf einen Timeout läuft. Dann kann mit Regedit ein entsprechender Eintrag vorgenommen werden.

  • 831060 Outlook 2003 Cannot Connect Over the Internet to Exchange Server 2003
  • Q822595 You receive a "server unavailable" error message when you try to connect to Exchange Server 2003 by using remote procedure call over HTTP

Einfacher ist es, einfach folgende Datei in Notepad als REG-Datei zu speichern und zu importieren:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_User\Software\Microsoft\Office\11.0\Outlook\RPC]
"ConnectTimeout"=dword:000493e0
"ConnectTimeoutLow"=dword:000493e0
"RFRTimeout"=dword:000493e0

RPC über fremden Proxy mit Proxomitron

Im vorherigen Abschnitt habe ich erläutert, dass Outlook RPC over HTTP nur nutzen kann, wenn der Proxy entweder keine oder eine integrierte Authentifizierung nutzt und damit ihr PC keine weitere Authentifizierung erfordert. Verlangt der Proxy jedoch beim Zugriff auf das Internet zusätzliche Benutzerdaten, dann ist eine Nutzung mit Outlook ohne Hilfsmittel ausgeschlossen. Aber nur weil Outlook keine zusätzliche Authentifizierung für den Zugang per HTTP über das Internet zum Exchange Server unterstützt, heißt das noch lange nicht, dass es überhaupt nicht geht. Die Lösung funktioniert so, dass wir zwischen Outlook und dem Proxy, der eine Authentifizierung erfordert, einen weiteren Proxy schalten.

Bei mir hat sich dazu das kostenfreie Programm Proxomitron bewährt, welches einmal gestartet als kleines Icon in der Systemsteuerung liegt und als Proxy fungiert. In Proxomitron stelle ich nun den Firmenproxy als "Upstream Proxy" ein. Hier kann ich auch die Anmeldedaten hinterlegen. Nun muss ich meinen Internet Explorer nur noch so einstellen, dass er als Proxy "localhost:8080" verwendet. Proxomitron selbst erlaubt per Default nur den Zugriff vom lokalen PC selbst und fordert keine Anmeldung an. So kann ich dann auch in Umgebungen mit unfreundlichem Proxy doch RPC over HTTP nutzen. Nur wenn der upstream Proxy keine BasicAuth anbietet, ist auch dieser Weg verbaut.

RPC/HTTP und andere Proxies

Wer . Outlook Anywhere (RPC over HTTP) veröffentlichen will, dann müssen Sie wissen, dass Outlook immer einen Request mit 1GB (1073741824 genaue Bytes) anfordert, selbst wenn die Menge an Daten dann kleiner ist. Das können Sie bei der Fehlersuche mit Fiddler sehen:

Diverse Firewalls mögen so etwas natürlich nicht. Beim Einsatz des IIS7 AAR (siehe auch LoadBalancer) stoppt ein Default Limit von 30 MB (HTTP Request Limit) die Funktion. Im IISLog kann man aber nicht erkennen, dass der Client einen so großen Request anfordert aber nicht wirklich verwendet. Entsprechend müssen Sie den Wert für "maximum allowed content length (Bytes)" im IIS7 anpassen.

HTTPS über entschlüsselnde Proxies

Als Dienstleister darf man sich das ein oder andere Mal natürlich auch beim Kunden anschließen und bekommt freundlicherweise einen Zugang über einen Proxy. Natürlich nutze ich für alle Zugriffe SSL, damit eine echte Verschlüsselung von Ende zu Ende erfolgt. Leider können damit normale Proxies nicht in den Traffic rein schauen. Aber es gibt Proxy-Systeme, die dann sich behelfen und mir meinen Webserver mit einem anderen Zertifikat vorgaukeln, um den SSL-Tunnel aufzubrechen. Da solch ein Proxy natürlich kein "offizielles" Zertifikat für den Namen bekommt (und bezahlen kann), muss er mit einer eigenen CA arbeiten. Auf meinem Notebook fällt das natürlich auf:

Auf Clients in einer Firma können diese Meldungen natürlich einfach unterdrückt werden, indem die "WebWasher Root CA" einfach als "Trusted" automatische (-> Gruppenrichtlinien) eingetragen wird. Insofern kann man als Mitarbeiter in einer Firma bei der Verwendung von SSL keineswegs sicher sein, dass es wirklich eine Ende zu Ende Verschlüsselung ist.

Proxy und Authentifizierung

Outlook Anywhere erfordert natürlich eine "Anmeldung". Der Exchange Administrator kann dazu in den Einstellungen zwischen "Basic" und "NTLM" wählen. Dies ist aber primär die Einstellung, die an den Client per Autodiscover gesendet wird. Aber die Wahl will gut bedacht sein:

  • Basic
    Einfach, schnell aber sollte per SSL verschlüsselt werden, damit die Daten nicht abgefischt werden. Allerdings erlauben ältere Outlooks nicht das Kennwort zu speichern.
  • NTLM
    Diverse Outlook Versionen senden per Default die "lokalen Anmeldedaten" mit. Wenn der Anbieter in der "Cloud" ist, wird das aber nicht funktionieren. Nicht jede Outlook-Version fragt dann nach alternativen Anmeldedaten. Hier hilft dann die Konfiguration auf Outlook, explizit nachzufragen

Dann gibt es noch die Einflüsse eines Proxy:

Use Basic Authentication or Windows Integrated Authentication to authenticate to the RPC Proxy?
RPC over HTTP currently supports only NTLM - it doesn't support Kerberos. Also, if there is an HTTP Proxy or a firewall between the RPC over HTTP client and the RPC Proxy which inserts the via pragma in the HTTP header, NTLM authentication will not work.
Quelle: http://msdn.microsoft.com/en-us/library/aa378641(v=vs.85).aspx 

Insofern ist "Basic" oft die kompatibelste Version und in Verbindung mit neueren Outlooks kann der Anwender das Kennwort ja auch speichern. Nur wenn die Clients und Server im gleichen Forest sind und man die Probleme mit Proxies vermeiden kann, wäre NTLM eine option