Proxies Entmystifiziert

(Originalartikel übernommen von Very Good Security)

Im Grunde genommen ein Mittelsmann. Im Umfeld von Computern ist das Konzept weitgehend identisch. Ein Web-Proxy ist einfach ein Stück Software, das eine HTTP-Anfrage für Sie weiterleitet.

Was ist ein Proxy?

Google definiert einen Proxy als

ein Befugter eine andere Person zu vertreten

HTTP-Proxies sind eine wesentliche Komponente bei der täglichen Nutzung des Internets – Load Balancer, Router, Contentbeschleuniger, Content-Protection-Systeme, das sind alles einfache Beispiele für Web-Proxies und sie alle fungieren als Vermittler, um Ihre HTTP-Anfragen dorthin zu senden, wo sie hin müssen, sie anonymisieren Anfragen, routen Netzwerkverkehr, beschleunigen das Netz und erfüllen viele andere Anwendungszwecke.

Wenn es darauf ankommt, fallen die meisten Web-Proxys in zwei Lager:

  1. Reverse-Proxies – Ein Reverse-Proxy ist in der Regel ein nach innen gerichteter Proxy, der als Frontend zur Kontrolle und zum Schutz des Zugriffs auf Server in einem privaten Netzwerk verwendet wird. Ein Reverse-Proxy führt in der Regel auch Aufgaben wie Load-Balancing, Authentifizierung, Entschlüsselung oder Caching aus.

  2. Forward-Proxies – Ein Forward-Proxy ist ein nach aussen ins Internet gerichteter Proxy, der verwendet wird, um aus einer Vielzahl von Quellen abzurufen.

Betrachten wir diese beiden Typen im Detail.

Was ist ein Reverse-Proxy

Sie verwenden wahrscheinlich einen Reverse-Proxy, um diesen Inhalt anzuzeigen. Wenn Sie eine Anfrage an den Server stellen, der diesen Blog-Post bedient, geht er durch einen Load Balancer. Dieser Load Balancer ist einer der Reverse-Proxy-Typen.

Reverse-Proxies sitzen vor einem von mehreren Servern und verteilen Anfragen an diese Server. Häufige Beispiele dafür sind das proxy_pass-Modul von Nginx, HAProxy, Squid und AWS› ELB.

Ein Reverse-Proxy empfängt eine Anfrage von einem Client im Internet und holt die angeforderten Ressourcen von einem von mehreren Servern, die dahinter stehen. Für den Client ist kein Wissen über die Server (oft auch Upstream-Server genannt) erforderlich, die den ursprünglichen Inhalt bereitstellen, und sie können nach Bedarf geändert werden, ohne dass die externen Clients von dieser Änderung wissen müssen. Der Reverse Proxy allein verarbeitet diese Informationen.

Als Teil dieser Bearbeitung der Anfrage bietet der Reverse-Proxy oft zusätzliche Funktionalität, wie z.B. SSL-Terminierung, die Durchführung von Authentifizierung und/oder Autorisierung, Beschleunigung (Caching oder Komprimierung) von Inhalten oder das Umschreiben von Anfrage und/oder Antwort.

Das Wort «reverse» im Namen Reverse-Proxy hat keine besondere Bedeutung, es wird nur verwendet um auf die Natur des Reverse-Proxys als Umkehrung des Forward-Proxys hinzuweisen. Letzteres hat – wie Sie anschliessend lesen werden – tatsächlich eine Bedeutung.

Was ist ein Forward-Proxy

Forward-Proxies werden häufig verwendet, um den Datenverkehr aus Netzwerken zu steuern. Wenn Sie eine Anfrage über den Proxy senden, leitet er Ihre Anfrage an die gewünschte Website weiter, daher der Name «Forward-Proxy» (“weiterleitender Proxy”).

Eine gängige Aufgabe eines Forward-Proxys ist es, sowohl den Zugriff auf das Internet zu steuern, indem bestimmte Attribute überprüft werden, während die Anfrage bearbeitet wird. Wenn Sie sich in einem Unternehmensnetzwerk befinden und es Ihnen untersagt ist, auf ein soziales Netzwerk wie facebook.com zuzugreifen, wird dies oft die Aufgabe eines Forward-Proxys sein. Der Forward-Proxy ist in der Lage, den Host-Teil der Anfrage zu inspizieren, und da in einem Unternehmensnetzwerk der Datenverkehr oft gezwungen ist, über den Proxy zu fließen, wird er alle Anfragen ablehnen, die den verbotenen Host verwenden.

Eine ähnliche Implementierung wie die obige scannt den ausgehenden Inhalt der Payload, während sie durch den Proxy geht. Dies kann für eine Vielzahl von Datenschutzanwendungen genutzt werden, z.B. zur Data Loss Prevention oder zur Überprüfung von Inhalten auf bösartige Software.

Ein weiterer häufiger Anwendungsfall für einen Forward-Proxy ist die Anonymisierung der Stelle, von der die Anfrage ursprünglich kam.

Der Forward-Proxy befindet sich zwischen den Anfragen des Benutzers und dem Internet. Wenn der Forward-Proxy eine Anforderung an einen Host sendet, sieht der Host-Computer die IP-Adresse des Forward-Proxy und nicht die des Benutzers. Dies wird häufig verwendet, um IP-Anonymisierung durchzuführen und ist ein wesentliches Merkmal von VPNs.

Layer 7 versus layer 3

Meistens bezieht sich der Begriff «Proxy» auf eine Layer-7-Anwendung auf dem OSI-Referenzmodell. Eine weitere Möglichkeit des Proxying ist jedoch über Layer-3 und ist bekannt als Network Address Translation (NAT). Der Unterschied zwischen diesen beiden Proxy-Technologien besteht in der Schicht, in der sie arbeiten, und der Vorgehensweise bei der Konfiguration der Proxy-Clients und Proxy-Server.

Layer-7-Proxies sind besser geeignet, wenn Sie den Inhalt der Anfrage überprüfen, um ein Routing durchzuführen oder anderweitig den Inhalt der Anfrage zu verändern.

Dieser Artikel wurde ursprünglich publiziert auf Very Good Security.

 

Siehe auch