Welt-Laptop-Sicherheit

Dienste im Internet bereitzustellen gehört heute zum Unternehmensalltag. Nicht immer möchte man dabei den Server direkt aus dem Internet verfügbar machen. Ein Reverse Proxy kann die Zugriffe per Zugriffssteuerung (ACLs) reglementieren. Auch kann der Reverse Proxy die Zahl der benötigten IP-Adressen reduzieren, da er den Zugriff auf mehrere Systeme hinter einer IP bereitstellen kann.

Webproxy und Reverse Proxy

Proxy Server gibt es in zwei Betriebsmodi. Diese unterscheiden sich in der Richtung, aus der die Zugriffe erfolgen.

Squid_Reverse_Proxy-01Ein typischer Webproxy, wie z.B. Squid, ruft von Clients angeforderte Webinhalte ab, speichert diese zwischen und liefert die zwischengespeicherte Version an alle nachfolgenden Clients aus. Webseiten können über ihre Header ein Ablaufdatum für die Cache-Inhalte mitschicken. Tun sie das nicht, kann Squid mit umfangreichen Refresh-Pattern ausgestattet werden, um den Cache-Inhalt entsprechend zu erneuern.

Im zweiten Betriebsmodus arbeitet der Proxy genau anders herum: Hier werden Inhalte von einem oder mehreren internen Webservern abgerufen, um sie externen Clients bereitzustellen. Dabei spielt es keine Rolle, wie viele Clients und Dienste es gibt.

Welche Vorteile bietet ein Reverse Proxy?

Reverse Proxies können die Netzsicherheit erhöhen, indem der Zugriff auf Webinhalte konfiguriert werden kann und das Webserver-System lediglich über einen definierten und kontrollierten Zwischenschritt verfügbar gemacht wird, statt es direkt „ins Internet“ zu stellen. Darüber hinaus können durch das Caching die Webserver entlastet werden oder der Reverse Proxy verteilt die Zugriffe auf die Webseite gleich auf mehrere Webserver – also ein klassisches Loadbalancing. Auch kann ein Reverse Proxy auch als SSL-Endpunkt verwendet werden: Alle SSL-verschlüsselten Verbindungen terminieren auf dem Proxy-System, was die Webserver ebenfalls entlasten kann und u.U. erst weitere Optionen wie ein effektives Caching erlaubt, die mit verschlüsselten Verbindungen eventuell nicht möglich wären. Letztlich kann ein Reverse Proxy auch die Zahl der externen IP-Adressen reduzieren.
Dabei werden hinter einem Proxy mehrere Services unter verschiedenen DNS Namen bereitgestellt. Diese können auch wieder verschlüsselt angeboten werden.

Wo setzen wir Webproxies ein?

Squid_Reverse_Proxy-03Als klassischer Webproxy wird Squid unter anderem standardmäßig in UCS@school eingesetzt. Dabei speichert Squid häufig aufgerufene Webseiten zwischen, um sie den Clients an der Schule performant ausliefern zu können. Besonders bei weniger gut ans Internet angebundenen Standorten ist das von erheblichem Vorteil. Zusätzlich wird über Squid eine Benutzerauthentifizierung realisiert – es darf also nur „ins Internet“, wer über ein Benutzerkonto in UCS verfügt und sich anmelden kann. Im Falle von Squid erfolgt die Authentifizierung automatisch im Hintergrund über Kerberos oder NTLM – es ist also keine Interaktion der Benutzer selber notwendig. Im Zusammenspiel mit der ergänzenden Software squidGuard wird in UCS@school auch die Internetsperre/-freigabe inklusive Black- und Whitelisting umgesetzt.



Mit Kunden und Partnern haben wir auch Szenarien umgesetzt, in denen Reverse Proxy zum Einsatz kommt. Beispielsweise ist ein UCS Basesystem mit Squid als Reverse Proxy einem internen Wiki vorgeschaltet. Der Zugriff von extern erfolgt dabei über eine externe Webadresse, unter der zunächst der Reverse Proxy erreicht wird. Dieser terminiert die SSL-Verbindung – es kommt ein als vertrauenswürdig eingestuftes SSL-Zertifikat zum Einsatz – und bindet den intern verfügbaren Webserver mit der Wiki-Installation an. So wurde ein ursprünglich nur intern verfügbares System nachträglich auch von extern erreichbar gemacht.

In einem zweiten Szenario kommt HAProxy zum Einsatz, um mehrere Dienste nach außen verfügbar zu machen. Dabei bietet der Proxy alle Dienste unter einem externen Namen mit einem öffentlichen Zertifikat an. Dadurch sichert der Kunde nicht nur seine Umgebung mit einem SSL-Zertifikat ab, sondern spart auch eine Vielzahl von IP-Adressen und damit viele Kosten. Dabei funktioniert auch die zentrale Authentifizierung per SAML über einen Reverseproxy.

Welche Software nutzen wir für Reverse-Proxies?

Mehrere Softwarelösungen stehen in UCS als Reserve-Proxy zur Verfügung. Abhängig von den benötigten Funktionen lässt sich dabei die Auswahl eingrenzen.

Für eine einfache eins-zu-eins Verbindung zwischen externer IP und Dienst bietet sich Squid an. Squid lässt sich einfach auf UCS installieren und konfigurieren. Die grundlegenden Schritte sind in dem Artikel Cool Solution – Squid as Reverse SSL Proxy im Univention-Wiki detailliert beschrieben.

Für die Weiterleitung ganzer Netzabschnitte, wie z.B. des Univention Portals, seiner Dienste und der Single Sign-On Umgebung, bieten sich Nginx und HAProxy an. Diese bieten weitreichende Möglichkeiten zur Weiterleitung und zum Umgang mit SSL-Verschlüsselung. Nginx bietet dabei die besten Möglichkeiten um HTTP Anfragen umzuschreiben und dem Server damit das Arbeiten zu erleichtern. HAProxy ist hingegen besonders geeignet, wenn nicht nur Webanwendungen weitergeleitet werden sollen, sondern auch Dienste wie IMAP verfügbar sein sollen.

Kevin Dominik Korte studierte Informatik an der Jacobs University Bremen und schloss 2011 mit einem Master of Science ab. Anschließend arbeitete er zwei Jahre im Professional Services Team von Univention. Seit Oktober 2013 ist er President of Univention North America Inc. und für die Geschäftsentwicklung in den USA verantwortlich.