mini|Schematische Darstellung eines Proxys (in der Bildmitte), der die Datenübertragung zwischen den beiden äußeren Rechnern weiterreicht In einem Computernetzwerk ist der Proxy ein Vermittler zwischen Client und Server. Anstatt sich direkt mit einem Server zu verbinden, wird die Anfrage vom Client über den Proxy geleitet, der sie filtern und verändern kann, bevor der sie an den tatsächlichen Server weiterleitet.
Der Begriff kommt von „Stellvertreter“ bzw. „Stellvertreter, Besorger, Verwalter“. Er wurde von William R. Cheswick geprägt.
Der Proxy soll die Sicherheit und Leistung (über Lastausgleich) verbessern oder dient als Translating Proxy. Er kann verteilte Systeme strukturieren und kapseln.
Wird der Proxy auf einem Server (und nicht als lokaler Proxy) eingesetzt, maskiert er dabei meist den wahren Ursprung der Anfrage gegenüber dem Server, was eine gewisse Anonymität schafft.
Arbeitsweise und Abgrenzung Unterschied zu einem NAT-Gerät
Zwar kann ein Proxy als Bindeglied zwischen unterschiedlichen Netzwerken agieren, damit eine Verbindung zwischen Kommunikationspartnern zustande kommen kann, wenn deren Adressen inkompatibel sind und eine direkte Adressierung nicht möglich wäre.
Aber im Unterschied zu einer einfachen Adressumsetzung (NAT) kann ein Proxy-Server, auch Dedicated Proxy genannt, die Kommunikation beeinflussen, statt die Pakete ungesehen durchzureichen. Auf ein bestimmtes Kommunikationsprotokoll spezialisiert, wie z. B. HTTP oder FTP, kann er die Daten zusammenhängend analysieren, Anfragen filtern und bei Bedarf beliebige Anpassungen vornehmen, aber auch entscheiden, ob und in welcher Form die Antwort des Ziels an den Client weitergereicht wird. Früher diente er als Cache, um wiederkehrenden Anfragen schneller zu beantworten. Auf einem einzigen Gerät kommen oft mehrere Dedicated Proxies parallel zum Einsatz, um unterschiedliche Protokolle bedienen zu können.
Ein Generischer Proxy, auch Circuit Level Proxy genannt, wird als protokollunabhängiger Filter als Teil einer Firewall angewandt. Er realisiert dort eine port- und adressbasierte Filterung, welche zudem eine mögliche Authentifizierung für den Verbindungsaufbau unterstützt. Daneben kann er für eine einfache Weiterleitung genutzt werden, indem er auf einem Port einer Netzwerkschnittstelle lauscht und die Daten auf eine andere Netzwerkschnittstelle weitergibt. Da er das Kommunikationsprotokoll nicht kennt, kann er die Kommunikation weder einsehen noch beeinflussen.
OSI-Schichten Technisch gesehen arbeitet ein typischer Proxy als ein in den Verkehr eingreifender Kommunikationspartner auf der OSI-Schicht 7, wobei die Verbindungen auf beiden Seiten terminiert werden (es handelt sich somit um zwei eigenständige Verbindungen), statt die Pakete wie ein NAT-Gerät einfach durchzureichen. Ein solcher Dedicated Proxy ist also ein Dienstprogramm, das im Datenverkehr vermittelt, und wird daher auch Proxy-Server genannt: Als aktiver Vermittler verhält er sich dem anfragenden Client gegenüber wie ein Server, der anderen Seite, dem Zielsystem, gegenüber wie ein Client.
Überschneidungen zu NAT gibt es allerdings bei dem generischen, auf den OSI-Schichten 3 und 4 operierenden Circuit Level Proxy, der unter Umständen auf die Technik der einfachen Adressumsetzung zurückgreift. Dessen ungeachtet nimmt NAT eine kaum beachtete Rolle unter den Proxys ein. Daher wird im Folgenden von der erstbeschriebenen Variante ausgegangen, wenn allgemein von einem (typischen) Proxy die Rede ist.
Überblick Sichtbarkeit Ein konventioneller Proxy tritt beiden Seiten selbst als Kommunikationspartner gegenüber. Er wird von ihnen also bewusst adressiert. Hier bittet der Client den Proxy, stellvertretend für ihn die Kommunikation mit dem Zielsystem zu übernehmen. So wird z. B. der Webbrowser derart konfiguriert, dass er sämtliche Anfragen nicht direkt zur Zieladresse schickt, sondern als Anforderung formuliert zum Proxy sendet.
Daneben gibt es den transparenten Proxy als spezielle Netzwerkkomponente, der sich einer der beiden Seiten gegenüber transparent (nahezu unsichtbar) verhält. Diese Seite adressiert direkt das Ziel und nicht den Proxy. Durch eine entsprechend konfigurierte Infrastruktur des Netzes wird die betreffende Anfrage automatisch über den Proxy dorthin geleitet, ohne dass der Absender dies bemerkt oder gar beeinflussen kann. Für die andere Seite aber stellt der Proxy weiterhin den zu adressierenden Kommunikationspartner dar, der stellvertretend für den tatsächlichen Kommunikationspartner angesprochen wird. siehe auch: #Transparenter Proxy
Somit tritt ein Proxy generell für wenigstens eine der beiden Seiten selbst als vermeintlicher Kommunikationspartner in Erscheinung.
Lage Ein Proxy als separate Netzwerkkomponente befindet sich physisch zwischen dem Quell- und Zielsystem. Innerhalb eines IP-Netzes nimmt er eine Übersetzung der IP-Adresse vor, sobald die Datenpakete durch das Netz hindurch auf ihrem Weg zum Ziel den Proxy passieren. Dadurch lässt sich die IP-Adresse des tatsächlichen Kommunikationspartners verbergen und einzelne Teilnehmer eines Netzes oder gar ganze Netzwerke selbst dann miteinander verbinden, wenn sie adressierungstechnisch inkompatibel zueinander sind. Letzteres wird durch eine Netzwerkadressübersetzung (NAT) ermöglicht, die es einem Proxy z. B. gestattet, ein privates (in sich geschlossenes) Netz über eine einzige offizielle IP-Adresse mit dem Internet zu verbinden. Da das Zielsystem nicht den Client, sondern nur den Proxy sieht, sind mögliche Angriffe von dort auf den Proxy gerichtet und treffen nicht direkt den Client.
Der lokale Proxy läuft dagegen direkt auf dem Quell- oder Zielsystem und befindet sich zwischen dem zu kontaktierenden Netzwerkdienst und dem anfragenden Client. Er wird meist als Filter oder Konverter eingesetzt. Da er vor Ort in Aktion tritt, also noch bevor die Pakete in das Netz geleitet werden (lokaler Proxy auf dem Quellsystem), oder nachdem die Pakete das Zielsystem erreicht haben (lokaler Proxy auf dem Zielsystem), ist dieser Proxy nicht in der Lage, die wahre IP-Adresse des Kommunikationssystems zu verbergen. Das unterscheidet ihn maßgeblich von anderen Proxys eines IP-Netzwerkes. Allerdings kann ein lokaler Proxy auf dem Quellsystem dabei behilflich sein, einen Teil der Netzwerkzugriffe automatisiert über einen externen Proxy zu schicken.
Mögliche Funktionen eines Proxys Schutz der Clients (Forward-Proxy) Der Proxy kann eine Schnittstelle zwischen privaten und öffentlichen Netz bilden. Die Clients des privaten Netzes greifen nur über den Proxy beispielsweise auf Webserver des öffentlichen Netzes zu. Da das kontaktierte Zielsystem aus dem öffentlichen Netz seine Antwortpakete nicht direkt an den Client schickt, sondern an den Proxy, kann dieser die Verbindung aktiv kontrollieren. Ein unerwünschter Fernzugriff auf den Client (der über die Antwortpakete hinausgeht) wird somit erschwert, falls dessen Software sicherer ist, als die auf dem Client. Entsprechende Sicherungsmaßnahmen und deren fortwährende Kontrolle beschränken sich so auf einen einzelnen oder einige wenige Proxys, statt auf eine Vielzahl von Clients. Sie lassen sich in einem vorgeschalteten Bastionsnetz (jump host) auch einfacher und zuverlässiger realisieren. So sind zusätzlich eigene Server besser geschützt, die selbst keinen Zugriff auf das Internet benötigen, aber im selben Segment stehen, wie die durch den Proxy abgeschirmten Clients. Damit bleibt das interne Netz auch bei einer Kompromittierung des Proxys zunächst geschützt und verschafft so der IT-Abteilung zusätzliche Zeit für geeignete Reaktionen auf einen Angriff von außen, so der Angriff überhaupt bemerkt wird. Schutz der Server (Reverse-Proxy) Ein Proxyserver kann allgemein dazu verwendet werden, den eigentlichen Server in ein geschütztes Netz zu stellen, wodurch er vom externen Netz aus nur durch den Proxy erreichbar wird. Auf diese Weise versucht man den Server vor Angriffen zu schützen. Die Proxy-Software ist weniger komplex und bietet daher weniger Angriffspunkte. Diese Lösung wird zum Beispiel bei Online-Shops angewendet: Der Webserver befindet sich samt Proxy im Internet und greift auf die Datenbank mit Kundendaten hinter einer Firewall zu. siehe auch: #Reverse Proxy Funktionserweiterung eines Netzwerkdienstes Ein Reverse-Proxy kann den üblichen Funktionsumfang eines Dienstes erweitern, indem er dank der Analyse des Protokolls z. B. spezielle Statistiken erstellt, die der Dienst normalerweise nicht anbietet. Da er Anfragen selbst beantworten kann, sind beliebige weitere funktionelle Erweiterungen denkbar. Bandbreitenkontrolle Der Proxy teilt verschiedenen Benutzern und Gruppen je nach Auslastung unterschiedliche Ressourcen zu. Der Proxy-Server Squid beherrscht dieses Verfahren. Heute wird dazu Quality of Service verwendet. Verfügbarkeit Über einen Proxyverbund lassen sich mit relativ geringem Aufwand Lastverteilung und Verfügbarkeit erreichen. Aufbereitung von Daten Proxy-Server können auch gewisse Applikationsfunktionen übernehmen, beispielsweise Daten in ein standardisiertes Format bringen. Inhaltliche Kontrolle häufig verwendeter Protokolle Auf ein bestimmtes Netzwerkprotokoll spezialisiert kann ein Proxy die Pakete des jeweiligen Protokolls analysieren und dabei als Verbindungs- und Befehlsfilter fungieren. Protokollierung Viele Proxys erlauben es, Verbindungen, die über sie laufen, zu protokollieren. Das ermöglicht statistische Auswertungen und Erkennen ungewollter Verbindungen. Offener Proxy Als offenen Proxy oder Open Proxy (englisch ) bezeichnet man einen Proxy, der von jedem ohne Anmeldung (offen bzw. öffentlich) benutzt werden kann. Einerseits entstehen sie unwissentlich durch falsche Konfiguration oder durch trojanisierte PCs (siehe auch: Botnet), andererseits werden aber auch viele offene Proxy-Server absichtlich aufgesetzt, um eine weitgehende Anonymität zu ermöglichen – wie beispielsweise im Freifunk-Netz; solche Proxys sind häufig mit zusätzlichen Funktionen zur Anonymisierung versehen. Proxy als Anonymisierungsdienst Der Anonymisierungs-Proxy (z. B. Anonymizer, Tor) leitet die Daten des Clients zum Server weiter, wodurch der Server die IP-Adresse des Clients nicht mehr direkt auslesen kann (siehe auch: Anonymität im Internet). Sie werden verwendet, um die Herkunft eines Clients zu verschleiern. So können Internetnutzer versuchen, sich vor staatlicher oder anderer Verfolgung bzw. Kontrolle zu schützen. In einem anderen Szenario werden Proxys angeboten – teils frei verfügbar – bei denen man unter der URL des Proxys beliebige Webseiten anfordern kann. Diese Proxys können dazu verwendet werden, um beispielsweise Einschränkungen von Firmen- oder Schulnetzen zu umgehen (manchmal werden allerdings diese, wenn es der Betreiber merkt, gesperrt). Sie sind insofern anonym, als der Zielserver nur die URL des Anonymisierungsdienstes sieht. Zugang zu gesperrten Inhalten Durch die Nutzung eines Proxy-Servers in einem anderen Land kann Geoblocking umgangen werden. Translating Proxy Manche Proxys übersetzen ein Protokoll in ein anderes. Diese heißen dann Gateway, Transport, Agent. Ein Cern Proxy kommuniziert beispielsweise mit dem Client über HTTP, während er eine Verbindung zum Server über FTP oder Gopher aufbaut. Auch XMPP-Transports liegt dieses Konzept zu Grunde.
Der Proxy als Netzwerkkomponente Um zu verstehen wie es einem solchen Gerät gelingen kann, die Identität der wahren Kommunikationspartner zu verbergen, kann es hilfreich sein, wenn man sich den Proxy als automatisiertes Postfach vorstellt: Wird von der verdeckten (internen) Adresse aus ein Paket durch den Proxy hindurch in das externe Netz geschickt, verbindet sich der Proxy selbst mit dem Zielsystem und versieht so die ausgehenden Pakete automatisch mit seiner eigenen Absenderadresse.
Das Zielsystem schickt seine Antwortpakete nun zurück zum Postfach (Proxy), welcher die empfangenen Pakete ggf. analysiert und danach an den internen Client weiterreicht.