Zum Inhalt springen

„Proxy (Rechnernetz)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Beistrich entfernt, da der Satzteil nach dem „und“ kein Subjekt hat
 
(888 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
[[Datei:Schematic Proxy Server.svg|mini|Schematische Darstellung eines Proxys (in der Bildmitte), der die Datenübertragung zwischen den beiden äußeren Rechnern weiterreicht]]
{{Dieser Artikel|behandelt Computersysteme/-programme mit Zwischenspeicherfunktion. Für den Proxy als Softwareschnittstelle in verteilten Applikationen siehe [[Stellvertreter (Entwurfsmuster)]]. Für den Proxy als Datenlieferant für [[Klima]]rekonstruktion, siehe [[Proxy (Klimaforschung)]].}}
In einem [[Rechnernetz|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.<ref>{{cite web |url=http://courses.cs.vt.edu/~cs4244/spring.09/documents/Proxies.pdf |title=World-Wide Web Proxies |first1=Ari |last1=Luotonen |author-link1=Ari Luotonen |first2=Kevin |last2=Altis |date=April 1994 |language=en |accessdate=2023-10-10 |archiveurl=https://web.archive.org/web/20161009061935/http://courses.cs.vt.edu/~cs4244/spring.09/documents/Proxies.pdf |archivedate=2016-10-09 |url-status=live |archivebot=2024-04-19 21:19:48 InternetArchiveBot }}</ref>


Der Begriff kommt von {{enS|proxy representative}} „Stellvertreter“ bzw. {{laS|Procurator}} „Stellvertreter, Besorger, Verwalter“. Er wurde von [[William R. Cheswick]] geprägt.
Ein '''Proxy''' oder '''Proxyserver''' (von engl. ''[[:en:proxy representative|proxy representative]]'' = Stellvertreter, bzw. lat. ''"proximus"'' = "Der Nä(c)hste") ist ein [[Dienstprogramm]] für [[Computernetz]]e, das im Datenverkehr vermittelt. Es macht den [[Datentransfer]] effizienter (weniger Netzbelastung durch große Datenmengen) bzw. schneller, kann aber auch die [[Firewall|Sicherheit]] erhöhen.


Der Proxy soll die Sicherheit und Leistung (über Lastausgleich) verbessern oder dient als [[Proxy (Rechnernetz)#Translating Proxy|Translating Proxy]]. Er kann verteilte Systeme strukturieren und kapseln.<ref>{{cite conference |last=Shapiro |first=Marc |title=Structure and Encapsulation in Distributed Systems: the Proxy Principle |language=en |conference=6th International Conference on Distributed Computing Systems (ICDCS) |location=Cambridge, MA, USA |date=May 1986 |pages=198–204 |id=inria-00444651 |url=https://hal.inria.fr/inria-00444651/document |archive-url=https://web.archive.org/web/20181226233042/https://hal.inria.fr/inria-00444651/document |archive-date=26 December 2018 |url-status=live |access-date=26 December 2018}}</ref>
Die Vermittlung erfolgt zwischen Computern oder [[Computerprogramm|Programmen]] in so genannten [[Rechnernetz]]en. Aus Sicht des [[Server]]s verhält sich der Proxy wie ein [[Client]], dem Client gegenüber wie ein Server.


Wird der [[#Lage|Proxy auf einem Server]] (und nicht als [[Proxy (Rechnernetz)#Lokaler Proxy|lokaler Proxy]]) eingesetzt, maskiert er dabei meist den wahren Ursprung der Anfrage gegenüber dem Server, was eine gewisse Anonymität schafft.
== Funktion von Proxy-Servern ==
Im einfachsten Fall leitet der Proxy die Daten einfach weiter. Hier ist von der Existenz des Proxys nichts zu spüren (Transparenter Proxy). In der Regel meint man bei der landläufigen Verwendung des Begriffes ''Proxy'' einen HTTP-Proxy, der zwischen Webbrowser (Client) und Webserver vermittelt. Hier hat der Proxy eine oder mehrere der folgenden Funktionen:


== Arbeitsweise und Abgrenzung ==
;Zwischenspeicher ([[Cache]]): Der Proxy kann gestellte Anfragen bzw. vielmehr deren Ergebnis speichern. Wird die gleiche Anfrage erneut gestellt, kann diese aus dem Speicher beantwortet werden, ohne zuerst den [[Webserver]] zu fragen. Der Proxy stellt sicher, dass die von ihm ausgelieferten Informationen nicht allzu veraltet sind. Eine vollständige [[Aktualität]] wird daher in der Regel nicht gewährleistet. Durch das Zwischenspeichern können Anfragen schneller beantwortet werden, und es wird gleichzeitig die [[Netzlast]] verringert. Beispielsweise vermittelt ein Proxyserver einer Firma den gesamten Datenverkehr der Computer der Mitarbeiter mit dem [[Internet]].
=== Unterschied zu einem NAT-Gerät{{Anker|Der Unterschied zu einem NAT-Gerät}} ===
;[[Filter]]: Mittels Proxys können beispielsweise bestimmte Kategorien von Webseiten für den Benutzer gesperrt oder Zugriffe darauf protokolliert werden. Es kann auch der Inhalt auf schädliche Programme durchsucht werden. Somit ist ein Proxy meist Teil eines [[Firewall]]-Konzepts.
;Trennung von lokalem Netz und Internet: Normalerweise wird man Rechnern im lokalen Netz keinen direkten Internetzugang erlauben. Der Proxy bildet dann die Schnittstelle zwischen beiden Netzen.
;[[Zugriff]]ssteuerung: Ist der Server nicht frei im Internet erreichbar, so kann ein vorgeschalteter Proxy den Zugriff ermöglichen. Ein Angreifer kann dann den Server nicht mehr direkt [[Angriff|angreifen]], sondern nur den Proxy. Es kann auch der Zugriff von Clients auf Webserver nur über einen Proxy ermöglicht werden.
;[[Vorverarbeitung]] von Daten: Proxys können auch gewisse Applikationsfunktionen übernehmen, beispielsweise Daten in ein standardisiertes Format bringen.
;[[Anonymisierung]]sdienst: Der Proxy leitet die Daten des Clients zum Server weiter, wodurch der Server die [[IP-Adresse]] des Clients nicht auslesen kann. Siehe auch: [[Anonymität im Internet]]
;[[Bandbreitenkontrolle]]: Der Proxy teilt verschiedenen Benutzern/Gruppen je nach Auslastung unterschiedliche Ressourcen zu. Der Proxyserver [[Squid]] beherrscht dieses Verfahren.


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.
Strukturell/logisch liegt der Proxyserver zwischen anfragendem Client und dem angefragten Server, zu dem er vermittelt. Der strukturell Nächste ist hier aber nicht notwendigerweise auch der räumlich Nächste.


Aber im Unterschied zu einer einfachen Adressumsetzung ([[Network Address Translation|NAT]]) kann ein '''Proxy-Server''', auch ''[[Proxy (Rechnernetz)#Dedicated Proxy (Proxy-Server)|Dedicated Proxy]]'' genannt, die Kommunikation beeinflussen, statt die Pakete ungesehen durchzureichen. Auf ein bestimmtes Kommunikationsprotokoll spezialisiert, wie z.&nbsp;B. [[Hypertext Transfer Protocol|HTTP]] oder [[File Transfer Protocol|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.
Proxys sind generell für jedes verbindungsorientierte Protokoll möglich. Häufig werden sie für die folgenden [[Protokoll]]e verwendet:


Ein '''Generischer Proxy''', auch ''[[#Circuit Level Proxy|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 (Netzwerkadresse)|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.
* [[Hypertext Transfer Protocol|HTTP]]: Die meisten Provider bieten ihren Kunden die Verwendung eines Proxys an. Dadurch wird die Netzlast verringert und der Zugriff beschleunigt. In Firmen hingegen wird über solche Proxys oft das Surfverhalten der Mitarbeiter eingeschränkt bzw. kontrolliert.
* [[SMTP]]: Manche Firewalls bieten einen SMTP-Proxy an, der den Mailverkehr zwischen Internet und Mailserver überwacht und bestimmte gefährliche bzw. unerwünschte Befehle ausfiltert. Durch das Design des SMTP-Protokolls ist jeder SMTP-Server auch als SMTP-Proxy verwendbar.
* Application-Level-Proxy (z.&nbsp;B. [[Squid]]): Ein Proxy, der auf ein bestimmtes Server-Programm zugeschnitten ist und nur dessen Protokoll erkennt. Diese Form eines Proxys wird oft dazu verwendet, den eigentlichen Server in ein geschütztes [[Netz]] zu stellen und nur durch den Proxy erreichbar zu machen. Auf diese Art ist der Server weitgehend vor Angriffen geschützt. Die Proxy-Software ist weit weniger komplex und daher auch sicherer gegen Angriffe. Dies wird z.&nbsp;B. oft bei [[Online-Shop]]s angewendet: Der Webserver befindet sich samt Proxy im Internet und greift auf die Datenbank mit Kundendaten hinter einer Firewall zu.
* Circuit-Level-Proxy (z.&nbsp;B. [[SOCKS]]): Ein Proxy für beliebige Ports, bei dem Programme zur Authentifikation zwischengeschaltet werden können.
* Der denkbar einfachste Proxy ist das Linux-Programm Redir, das auf einem Interface und einem Port lauscht und die Daten auf ein anderes Interface und Port weitergibt.


== Reverse-Proxy ==
=== OSI-Schichten ===
Technisch gesehen arbeitet ein typischer Proxy als ein in den Verkehr eingreifender Kommunikationspartner auf der [[OSI-Modell|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 (Software)|Server]], der anderen Seite, dem Zielsystem, gegenüber wie ein Client.
Ein Reverse-Proxy (auch 'HTTP-Accelerator' oder 'Surrogate Proxy' genannt) ist ein Proxyserver, der in der Umgebung von einem oder mehreren Servern installiert ist. Typischerweise werden Reverse-Proxys logisch vor Webservern aufgestellt. Alle Verbindungen aus dem [[Internet]] an einen der [[Webserver]] werden durch den Proxyserver bearbeitet, der die Anfragen entweder vollständig selbst beantwortet, oder sie teilweise oder ganz an den bzw. einen der nachgeordneten Webserver weiterleitet.


Ü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.
Es gibt mehrere Gründe für den Einsatz eines Reverse-Proxys:
* ''[[Netzwerksicherheit|Netzsicherheit]]'': Der Reverse-Proxy stellt ein weiteres Glied in der Sicherheitskette dar und trägt so zur Sicherheit der Webserver bei.
* ''[[Single Sign On]]'': Der Reverse-Proxy kann die Benutzer-Authentifizierung für mehrere Webserver übernehmen. Dadurch braucht sich der Benutzer nur einmal anzumelden, um die Dienste mehrerer Server zu nutzen.
* ''[[Verschlüsselung]] / SSL Beschleunigung'': Wenn sichere Webseiten erzeugt werden, wird die SSL-Verschlüsselung gelegentlich nicht vom Webserver selbst erledigt, sondern durch einen Reverse-Proxy, der mit einer entsprechenden Beschleunigungs[[hardware]] ausgestattet ist. Somit ist es zudem möglich ''ein'' (SSL-)Zertifikat auf dem Proxy einzusetzen (anstelle eines dahinterliegendem Webserver)
* ''[[Lastverteilung]]'': Der Reverse-Proxy kann die Last auf mehrere Server verteilen, wobei jeder Server sein Anwendungsfeld bedient. Bei Webservern muss der Reverse-Proxy gegebenenfalls die URLs in jeder Webseite umschreiben (Übersetzung der extern bekannten URLs auf die internen Standorte)
* ''[[Cache]]n von statischen Inhalten'': Ein Reverse-Proxy kann die Webserver deutlich entlasten, indem er unveränderliche Inhalte wie z.&nbsp;B. [[Bild]]er cacht. Auf diese Weise kann eine deutlich höhere Anzahl an Webseitenanfragen bewältigt werden.
* Bei Ausfall des dahinterliegenden Webservers (oder im Fehlerfall: Bsp. HTTP 500) kann zudem eine „benutzerfreundliche“ Meldung angezeigt werden.


== Offener Proxy ==
== Überblick ==
=== {{Anker|Sichtbarkeiten}}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.&nbsp;B. der Webbrowser [[#Die Internetzugriffe des Browsers über einen Proxy leiten|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]]
Als offenen Proxy oder „Open Proxy“ bezeichnet man einen Proxy-Server, der – im Gegensatz zu normalen Proxy-Servern – von jedem ohne Anmeldung (offen) benutzt werden kann.


Somit tritt ein Proxy generell für wenigstens eine der beiden Seiten selbst als vermeintlicher Kommunikationspartner in Erscheinung.
Offene Proxys werden bewusst verwendet, um die Herkunft ([[IP-Paket|source address]]) eines [[Client]]s zu verschleiern.
Speziell konfigurierte Proxys ([[Anonymizer]]) ermöglichen eine weitergehende [[Anonymität|Anonymisierung]], speziell wenn diese kaskadiert werden.
Einige Internet-Nutzer versuchen, sich bei illegalen Aktivitäten vor [[Strafverfolgung]] zu schützen, indem sie einen offenen Proxy verwenden – übersehen aber dabei oftmals, dass offen nicht zwangsläufig auch anonym bedeutet.


=== Lage ===
Einige offene Proxys werden bewusst aufgesetzt (z.&nbsp;B. Anonymizer). Die meisten offenen Proxys entstehen jedoch durch falsche Konfiguration oder durch [[Trojanisches Pferd (Computerprogramm)|trojanisierte]] PCs. ''Siehe auch:'' [[Botnet]].
Ein ''Proxy als separate Netzwerkkomponente'' befindet sich physisch zwischen dem Quell- und Zielsystem. Innerhalb eines [[Internet Protocol|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.&nbsp;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.


{{Anker|Lokaler Proxy}}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.
== Translating Proxy ==
Manche Proxys übersetzen ein Protokoll in ein anderes.
Ein „Cern Proxy“ kommuniziert mit dem Client über [[Hypertext Transfer Protocol|HTTP]], während er eine Verbindung
zum Server über [[File Transfer Protocol|FTP]] oder [[Gopher]] aufbaut.


=== Mögliche Funktionen eines Proxys ===
== Sicherheit ==
; 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 [[Bastion Host|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.
Ein schlecht [[Konfiguration|konfigurierter]] Proxy kann eine Gefahr darstellen, da er Dritten erlaubt die eigene Adresse zu verbergen. Daher wird diese Vorgehensweise häufig bei Angriffen verwendet. Ein fehlkonfigurierter Reverse Proxy kann die Sicherheit des dahinter liegenden Netzes gefährden.
; Schutz der Server (Reverse-Proxy): Ein Proxyserver kann allgemein dazu verwendet werden, den eigentlichen Server in ein geschütztes [[Rechnernetz|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 [[Elektronischer Handel|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.&nbsp;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#QoS in IP-Netzen|Quality of Service]] verwendet.
; Verfügbarkeit: Über einen Proxyverbund lassen sich mit relativ geringem Aufwand [[Lastverteilung (Informatik)|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{{Anker|Offener Proxy|Open Proxy}}: Als offenen Proxy oder ''Open Proxy'' (englisch ''{{lang|en|open proxy}}'') bezeichnet man einen Proxy, der von jedem ohne Anmeldung (offen bzw. öffentlich) benutzt werden kann. Einerseits entstehen sie unwissentlich durch falsche Konfiguration oder durch [[Trojanisches Pferd (Computerprogramm)|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{{Anker|Proxy als Anonymisierungsdienst}}: Der [[Anonymisierung und Pseudonymisierung|Anonymisierungs]]-Proxy (z.&nbsp;B. [[Anonymizer]], [[Tor (Netzwerk)|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 [[Uniform Resource Locator|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{{Anker|Translating Proxy|Konverter}}: Manche Proxys übersetzen ein Protokoll in ein anderes. Diese heißen dann [[Gateway (Informatik)|Gateway]], Transport, Agent. Ein ''Cern Proxy'' kommuniziert beispielsweise mit dem Client über [[Hypertext Transfer Protocol|HTTP]], während er eine Verbindung zum Server über [[File Transfer Protocol|FTP]] oder [[Gopher]] aufbaut. Auch [[XMPP-Transport]]s liegt dieses Konzept zu Grunde.


== Der Proxy als Netzwerkkomponente ==
Proxys können auch zum [[Tunnel (EDV)|Tunnel]]n protokollfremder Informationen verwendet werden. Wenn sie unsicher konfiguriert sind, können Proxys beispielsweise, ähnlich einem [[Offenes Mail-Relay|offenen Mail-Relay]], zum Versenden von [[Spam]] missbraucht werden.
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. <!-- provisorische Kommunikationsbeschreibung (es wäre gut, wenn sich das irgendwie hier integrieren ließe; falls jemand die Zeit hat, eine entsprechende Grafik zu erstellen...):
[Client]-internes Netz (Absenderadresse: Client)->[Proxy]-externes Netz (Absenderadresse: Proxy)->[Server] -->


Das Zielsystem schickt seine Antwortpakete nun zurück zum Postfach (Proxy), welcher die empfangenen Pakete ggf. analysiert und danach an den internen Client weiterreicht.<!-- [Client]<-internes Netz (Zieladresse: Client)-[Proxy]<-externes Netz (Zieladresse: Proxy)-[Server] -->
Es gibt aber auch Programme, die Proxys nutzen, um jemanden im Internet anonym zu machen. Dadurch soll man sicherer im Netz surfen können, da die [[IP-Adresse]] immer wechselt. Ein solches [[Tool]] ist z.&nbsp;B. Steganos internet anonym, der [[Java Anon Proxy]] oder [[Tor (Netzwerk)|Tor]].
Auf diese Weise leitet der Proxy alle aus dem externen Netz eingehenden Antwortpakete an den tatsächlichen Empfänger aus dem internen Netz weiter, ohne dass der Absender die tatsächliche (interne) Adresse des Empfängers kennt.


== Konfiguration im Browser ==
== Der lokale Proxy ==
Auch bei einer lokal auf dem Quell- oder Zielsystem installierten Proxy-Software wird intern eine Adresskonvertierung vorgenommen. Das ist Teil ihrer internen Arbeitsweise und kann sich auf eine Umleitung des Ports beschränken, bezieht sich oft aber auf eine Umsetzung zu [[Localhost]] (''Loopback''-Schnittstelle 127.0.0.1).


=== Auf dem Quellsystem ===
Es gibt mehrere Möglichkeiten, die Zugriffe des Browsers über einen Proxy zu leiten:
Als Beispiel könnte eine Anwendung ihre Internetanfragen nicht mehr direkt zum Zielsystem, sondern an ihr eigenes System zum Port der dort installierten Proxysoftware schicken. Dafür muss die Anwendung entsprechend konfiguriert werden. Die Proxy-Software ermittelt nun die Adresse des gewünschten Zielsystems und leitet die Anfrage stellvertretend für die Anwendung dorthin. Dabei wird als Absender die Adresse des Quellsystems nebst Rückgabeport der Proxy-Software angegeben, damit die Antwortpakete wieder den lokalen Proxy erreichen, der sie dann an die ursprüngliche Anwendung durchreichen kann. Auf diese Weise kann ein solcher Proxy ausgehende Anforderungen genauso analysieren (und ggf. filtern) wie die Antworten des Zielsystems.
<!--


provisorische Kommunikationsbeschreibung (es wäre gut, wenn sich das irgendwie hier integrieren ließe; falls jemand die Zeit hat, eine entsprechende Grafik zu erstellen...):
;Direkte Konfiguration: Hier werden der Name (oder die IP-Adresse) des Proxyservers und der Port, auf welchen er hört, direkt im Browser eingetragen. Der Nachteil ist, dass man dies bei jedem Client manuell tun muss und jede Änderung auf allen Clients nachtragen muss.
;Transparenter Proxy: Hier wird an den Clients nichts konfiguriert; sie richten ihre Anfragen an das Ziel auf die Ports 80 (http), als ob sie eine direkte Verbindung zum Internet hätten. Eine Firewallregel sorgt dafür, dass diese Anfragen an den Proxy geleitet werden. Der Vorteil liegt auf der Hand: Bei den Clients muss nichts konfiguriert werden. Wenn der Proxy ohne Passwort arbeitet, können etwaige Schadprogramme diesen Zugriff allerdings auch nutzen, ohne erst im Netz nach einer Verbindung zur Außenwelt suchen zu müssen. Ein weiterer Nachteil ist die Möglichkeit zur [[Zensur im Internet|Zensur]] (Beispiel dort). HTTPS-Anfragen können von transparenten Proxies nicht abgefangen werden, da dies einem [[Man-In-The-Middle-Angriff]] entsprechen würde.
;Automatische Proxy-Konfiguration: Hier wird im Browser die URL eines Javascripts eingetragen, das Adresse und Port des Proxyservers zurückgibt. Wenn diese Arbeit einmalig getan ist, können weitere Änderungen zentral im Skript erfolgen. Das Skript kann auch auf einen Reserve-Proxy zuweisen. Ein Beispiel findet sich in http://linuxwiki.de/ unter dem Stichwort Squid.


[Client: Anwendung=Anfrage an den lokalen Proxy stellen (localhost:PortX) -> Proxy richtet die Anfrage an Server:PortY]-Netz->[Server:PortY=Anfrage wird bearbeitet, Absender ist Client:RückgabeportDerProxysoftware]
== Statistik für Zugriffe ==


[Server: Antwort an Client:RückgabeportDerProxysoftware]-Netz->[Client:RückgabeportDerProxysoftware=Proxysoftware erhält die Antwort -> Weiterleiten an localhost:RückgabeportDerAnwendung]
Besonders kommerzielle Server, die Werbeflächen vermieten, begründen ihre Attraktivität für Werbung mit Zugriffszahlen, deren Statistik vom Webserver erzeugt wird. Proxyserver und Filter beeinflussen diese Zahlen natürlich negativ, da aus dem Cache gelieferte Inhalte dort nicht erscheinen und ein Teil der Werbung erst gar nicht geladen wird. Manche Anbieter von Webseiten bemühen sich daher, ihre Inhalte schlecht oder gar nicht cachebar zu gestalten.
-->
[[Polipo]] ist so eine freie Proxy-Software für das [[Hypertext Transfer Protocol]] (HTTP) mit [[Cache|Caching]]- und [[Contentfilter|Filterfunktionalität]], z.&nbsp;B. für den Laptop oder das Netbook. Ein anderes Beispiel für einen lokalen Proxy ist [[Proxomitron]], der unter anderem verhindert, dass [[JavaScript]]e die Browseridentität und dessen Versionsnummer auflösen und das Betriebssystem auslesen. Auch der Spam-Filter [[SpamPal]] wird mit einem lokalen Proxy installiert, zumindest für gewisse Mailclients wie Vivian Mail.


=== Auf dem Zielsystem ===
== Proxyserver im Zeitalter schneller Datenleitungen ==
Hierbei schickt die Anwendung auf dem Quellsystem ihre Anfragen direkt zum Zielsystem. Ohne dass es dem Quellsystem bewusst sein muss, verbirgt sich jedoch hinter dem adressierten Port des Zielsystems nicht der begehrte Netzwerkdienst, sondern eine Proxy-Software.


Die Proxy-Software nimmt somit Anfragen aus dem Netz entgegen und stellt dann stellvertretend für das Quellsystem eine Verbindung zum tatsächlichen Netzwerkdienst seines eigenen Systems her. Dieser beantwortet die Anfrage und schickt die Antwort zurück zur Proxy-Software, welche sie nun analysieren und beliebig verändern oder auch nur statistisch auswerten kann, bevor sie sie zum tatsächlichen Client weiterleitet.<!-- provisorische Kommunikationsbeschreibung (es wäre gut, wenn sich das irgendwie hier integrieren ließe; falls jemand die Zeit hat, eine entsprechende Grafik zu erstellen...):
Ein Proxy beansprucht Ressourcen und erzeugt [[Overhead]]. Über die gleiche Leitung wird eine Seite direkt häufig schneller geladen als über einen dazwischen geschalteten Proxy. Leitungsanbieter stellen ihren Kunden heute im allgemeinen keinen Proxy mehr zur Verfügung, um diesen Overhead zu vermeiden.
[Client: Anwendung=Anfrage an Server:PortX]-Netz->[Server:PortX=Proxysoftware welche die Anfrage an den PortY des tatsächlichen Dienstes weiterleitet -> Dienst: Anfrage wird bearbeitet, Absender ist localhost:RückgabeportDesProxys]
[Server: Proxy-Software hat die Antwort des Dienstes erhalten -> Weiterleiten an Client:RückgabeportDerAnwendung]-Netz->[Client:RückgabeportDerAnwendung=Antwort erhalten] -->


== Proxybezeichnungen ==
Trotzdem sind Proxy-Server unter bestimmten Einsatzbedingungen auch heute noch sinnvoll:


=== {{Anker|Dedicated Proxy (Proxy-Server)}}Dedicated Proxy (Proxy-Server) ===
;Zugriffskontrolle: Schulen oder öffentliche Einrichtungen wollen aus verständlichen Gründen verhindern, dass aus ihrem Netz auf beliebige Webseiten zugegriffen werden kann. Auch in Firmennetzen ist beispielsweise das Herunterladen von Musikaufzeichnungen nicht gern gesehen – schon wegen der damit verbundenen legalen Probleme.
Ein ''Dedicated Proxy'' ist ein [[Dienstprogramm]], das im Datenverkehr zwischen dem anfragenden Client und dem Zielsystem vermittelt. Er ist auf das Kommunikationsprotokoll spezialisiert, das der Dienst verwendet, und kann daher die Kommunikation analysieren und bei Bedarf deren Inhalt manipulieren. Darüber hinaus kann er eigenständig Anfragen an den Kommunikationspartner senden und mitunter als Zwischenspeicher (Cache) fungieren.
;Ausfiltern von Werbung: Werbung kann erhebliche Mengen an Datenverkehr erzeugen – viele Werbeflächen laden sich z.&nbsp;B. regelmäßig neu. Was für den Privatanwender an einer ADSL-Leitung unproblematisch ist, kann für ein Netz von 20 Anwendern an dieser Leitung zum Problem werden.
;Caching: Bei einem Leitungsanbieter ist dieser Effekt heute vernachlässigbar. Bei einem Netz, in welchem viele Benutzer häufig auf gleiche Web-Inhalte zugreifen, sieht dies anders aus. Hier können Trefferraten (Cache-Hits) von 50&nbsp;% ohne weiteres erzielt werden. Bei der Dimensionierung des Caches sollte man allerdings bedenken, dass alle Einträge bei einer Anforderung auch tatsächlich durchsucht werden. Den Cache beispielsweise auf 40&nbsp;GB zu setzen, nur weil man den Platz ja hat, ist selten eine gute Idee. In der Regel tun es 1–2&nbsp;GB völlig.
;Verfügbarkeit: Über [[Proxyverbund]] lassen sich mit relativ geringem Aufwand Lastverteilung und Verfügbarkeit erreichen.


Manchmal wird er lokal auf dem Quell- oder Zielsystem installiert, um dort die entsprechende Aufgabe vor Ort umzusetzen. Demgegenüber kann es sich hierbei auch um ein aktiv in die Kommunikation eingreifendes Filtermodul handeln, das auf einer ''Proxy-Firewall'' aufgesetzt wird. Unter anderem kommen ''Dedicated Proxys'' als (z.&nbsp;B. [[Simple Mail Transfer Protocol|SMTP]]-) Virenscanner oder (z.&nbsp;B. [[File Transfer Protocol|FTP]]-) Verbindungs- und Befehlsfilter zum Einsatz.
Zusammenfassung: Wer sich einen Proxy aufbaut, sollte sich genau überlegen, aus welchen Gründen er das tut. Ohne Analyse des Verwendungszwecks kann er sich sonst unnötigen Overhead ohne tatsächlichen Nutzen einhandeln.


Auf einem einzigen Gerät können mehrere ''Dedicated Proxys'' parallel laufen, um unterschiedliche Protokolle bedienen zu können. Da er in die Pakete hineinsehen muss, verrichtet ein ''Dedicated Proxy'' seine Arbeit auf der [[OSI-Modell|OSI-Schicht]] 7.
== Siehe auch ==

* [[Local Area Network]] ([[Local Area Network|LAN]]), [[Computercluster]]
Häufig werden ''Dedicated Proxys'' für die folgenden Protokolle verwendet:
* [[Router]], [[Zwischenspeicher]], [[Cache]]

* [[Squid]]
; [[Hypertext Transfer Protocol|HTTP]]/[[Hypertext Transfer Protocol Secure|HTTPS]]: Die meisten Provider boten ihren Kunden die Verwendung eines solchen Proxys an. Er kann folgende Funktionen erfüllen:
* [[Kommunikationstechnologie]], [[OSI-Modell]], [[Network Address Translation]] (NAT)
:; SSL-Terminierung: Eine [[Hypertext Transfer Protocol Secure|HTTPS]]-Verbindung kann mittels Webproxy aufgebrochen (terminiert) werden, um auch dessen Inhalt auf Schädlinge zu überprüfen. Die weitere Verschlüsselung zum Client (Browser) erfolgt dann mit einem vom Proxy angebotenen Zertifikat. Das Problem dabei ist, dass der Benutzer des Browsers nicht mehr das Originalzertifikat des Webservers zu sehen bekommt und dem Proxy-Server vertrauen muss, dass er eine Gültigkeitsprüfung des Webserver-Zertifikats übernommen hat, was oft nicht der Fall ist.
* [[Man-In-The-Middle-Angriff]]
:; Zwischenspeicher ([[Cache]]): Der Proxy kann gestellte Anfragen zwischenspeichern. Wird die gleiche Anfrage erneut gestellt, kann diese aus dem Speicher beantwortet werden, ohne zuerst den [[Webserver]] zu fragen. Der Proxy stellt sicher, dass die von ihm ausgelieferten Informationen nicht allzu veraltet sind. Eine vollständige [[Aktualität]] wird in der Regel nicht gewährleistet. Durch das Zwischenspeichern konnten Anfragen schneller beantwortet werden, und es wird gleichzeitig die [[Netzlast]] verringert. Beispielsweise vermittelt ein derartiger Proxy eines Unternehmens den gesamten Datenverkehr der Mitarbeiter mit dem [[Internet]].
* [[Tor (Netzwerk)]]
:; [[Zensur (Informationskontrolle)|Zensur]]/[[Zugriffskontrolle|Zugriffssteuerung]]: Der Proxy ist meist Teil eines [[Firewall]]-Konzepts. Mittels Proxy können bestimmte Webseiten für den Benutzer gesperrt oder Zugriffe darauf protokolliert werden. Firmen, Schulen, öffentliche Einrichtungen verhindern so den Zugriff auf bestimmte Webseiten oder schädliche Inhalte wie [[Computervirus|Viren]], [[Malware]], Skripte etc. Auch das Herunterladen von Musikdateien wegen der damit verbundenen rechtlichen Probleme lässt sich unterbinden. Schutzbefohlene können vor Pornographie, rassistischen Webseiten oder ähnlichem geschützt werden. Mittels Benutzerauthentisierung können einzelnen Benutzergruppen unterschiedlichen Filter (Whitelist, Blacklist) zugewiesen werden.
:; Ausfiltern von Werbung: Werbung kann erhebliche Mengen an Datenverkehr erzeugen, diese kann vom Proxy gefiltert werden.
; [[Simple Mail Transfer Protocol|SMTP]]: Manche Firewalls bieten einen SMTP-Proxy an, der den Mailverkehr zwischen Internet und Mailserver überwacht und bestimmte gefährliche bzw. unerwünschte Befehle ausfiltert. Durch das Design des SMTP-Protokolls ist jeder SMTP-Server auch als SMTP-Proxy verwendbar.
; [[Internet Message Access Protocol|IMAP-Proxy]]: Holt z.&nbsp;B. automatisch E-Mails vom zentralen IMAP-Server auf eine lokale Maschine, von der die Clients dann die E-Mail abholen.
; [[Internet Relay Chat|IRC-Proxy]]: Ein solcher Proxy vermittelt IRC-Verbindungen und kann diese aufrechterhalten, auch wenn der Client abgeschaltet ist.
; [[Network News Transfer Protocol|NNTP-Proxy]]: Der Proxy (z.&nbsp;B. Leafnode) kann für News verwendet werden und erlaubt es z.&nbsp;B. Filter für unerwünschte Gruppen zu definieren.
; Exchange-Frontend-Server: Er stellt eine Proxy-Funktion zur Verfügung, der das [[Remote Procedure Call|RPC]]-Protokoll über HTTP(S) [[Tunnel (Rechnernetz)|tunnelt]].
; Citrix Secure Gateway: Hier wird das [[Independent Computing Architecture|ICA-Protokoll]] über HTTP(S) getunnelt.

=== {{Anker|Circuit Level Proxy}} Circuit Level Proxy (generischer Proxy) ===
Als ''Circuit Level Proxy'' (auch ''Generischer Proxy'' genannt) wird ein Paketfiltermodul bezeichnet, mit dem man auf einer Firewall beliebige IP-Adressen und Ports sperren bzw. freischalten kann, ohne jedoch die Möglichkeit zu haben, die Paketinhalte damit zu analysieren.

Ein solcher Proxy, der auf den OSI-Schichten 3 und 4 operiert, reicht die Pakete mitunter einfach durch, ohne die Verbindungen selbst zu terminieren. Der ''Circuit Level Proxy'' realisiert die Adressumsetzung dann mithilfe von [[Network Address Translation|NAT]] auf der OSI-Schicht 3. Während die Adressfilterung ebenfalls auf der dritten OSI-Schicht angesiedelt ist, realisiert er zudem eine Port-Filterung auf der vierten OSI-Schicht.

Es gibt auch ''Circuit Level Proxys'', die dank einem speziellen Protokoll eine Authentifizierung auf der OSI-Schicht 5 realisieren können. Der Client holt sich so eine Verbindungsgenehmigung z.&nbsp;B. per Eingabe einer Kennung nebst Passwort. Dieses spezielle Authentifizierungsprotokoll muss der Client allerdings kennen, weshalb ein derart befähigter ''Circuit Level Proxy'' weniger generisch ist (er funktioniert nur mit Anwendungen auf dem Client zusammen, die entsprechend erweitert wurden). Als Beispiel für ein solches Authentifizierungsprotokoll sei [[SOCKS]] genannt. Solch ein erweiterter Circuit Level Proxy greift nicht zwangsläufig auf NAT zurück. Einige von ihnen machen dies gar vom Protokoll abhängig; so wird z.&nbsp;B. die TCP-Verbindung terminiert, während eine UDP-Verbindung schlicht weitergereicht wird.

Ein generischer Proxy kann auch für eine einfache Weiterleitung genutzt werden. Der denkbar einfachste Proxy ist das Linux-Programm ''Redir'', das auf einer Schnittstelle und einem Port lauscht und die Daten auf ein anderes Interface und Port weitergibt. Dies ist auch mit dem [[iptables]]-Kommando unter [[Linux]] möglich und wird beispielsweise verwendet, um den Exit-Datenverkehr eines [[Tor (Netzwerk)|Tor]]-Servers über mehrere Proxys zu leiten, um so den Tor-Server zu schützen.

=== Proxy-Firewall ===
{{Hauptartikel|Firewall}}
Eine Proxy-Firewall ist eine Firewall, die auf ''Dedicated Proxys'' oder ''Circuit Level Proxys'' als Filtermodule zurückgreift. Diese Filtermodule setzen Regeln um, indem sie entscheiden, welche Daten an den tatsächlichen Kommunikationspartner weitergeleitet werden und welche nicht. Auf diese Weise versucht die Proxy-Firewall das eigene Netz(segment) vor unerlaubten Zugriffen zu schützen. Sie kann darüber hinaus aber auch eine Konvertierung der Daten vornehmen, bestimmte Inhalte zwischenspeichern und sämtliche weiteren Funktionen ausüben, die einem Proxy eigen sind.

==== Dedicated Proxys auf einer Stateful Inspection Firewall ====
Einige Hersteller bieten für ihre ''Stateful Inspection Firewall'' (SIF) ebenfalls ''Dedicated Proxys'' an. Definitionstechnisch ist das allerdings ein wenig problematisch: Da dieser Firewalltyp nach dem ursprünglichen Konzept von Checkpoint lediglich auf einem generischen [[Paketfilter]] basiert und sich so ausschließlich auf Paketfilter-Regeln konzentriert, wird eine SIF ganz klar als ''Paketfilter-Firewall'' klassifiziert. Wird dort allerdings ein ''Dedicated Proxy'' aktiviert, so ist die SIF tatsächlich keine Paketfilter-Firewall mehr, sondern gehört dann der Kategorie Proxy-Firewall an, die eine [[Stateful Packet Inspection]] durchführt. Diese exakte Unterscheidung wird in der Fachwelt jedoch selten vorgenommen, weshalb eine als SIF klassifizierte Firewall in der Praxis nur zum Teil der Definition einer Paketfilter-Firewall gerecht wird.

=== Transparenter Proxy ===
Ein ''Transparenter Proxy'' besteht grundsätzlich aus zwei Komponenten. Zunächst werden am [[Router]] die gewünschten Ports der Protokolle abgegriffen (beispielsweise über [[Iptables#Zusammenfassung der Funktion|Iptables]] unter Einsatz eines Redirects) und dann an einen Proxy weitergeleitet. Für den Anwender ist die Verbindung über einen transparenten Proxy in der Benutzung nicht von einer direkten Verbindung über den Router zu unterscheiden. Das Vorhandensein eines transparenten Proxys bietet aber den Vorteil, dass eine Konfiguration der Proxyeinstellungen am einzelnen PC unterbleiben kann (siehe Abschnitt ''[[#Sichtbarkeiten|Sichtbarkeiten]]'').

=== Reverse Proxy ===
{{Hauptartikel|Reverse Proxy}}
[[Datei:Reverse proxy h2g2bob.svg|mini|280px|alt=Ein Proxy-Server, der das Internet zu einem internen Netzwerk verbindet.|Ein Reverse Proxy, der Anfragen vom Internet übernimmt und sie zu anderen Servern im internen Netzwerk weiterleitet. Die Anfragenden verbinden sich zum Proxy, und es mag sein, dass sie vom internen Netzwerk nicht Bescheid wissen.]]
Ein Proxy tritt im Falle des ''Reverse Proxys'' als vermeintliches Zielsystem in Erscheinung, wobei die Adressumsetzung dann in der entgegengesetzten Richtung vorgenommen wird und so dem Client die wahre Adresse des Zielsystems verborgen bleibt. Während ein typischer Proxy dafür verwendet werden kann, mehreren Clients eines internen (privaten – in sich geschlossenen) Netzes den Zugriff auf ein externes Netz zu gewähren, funktioniert ein Reverse Proxy genau andersherum.
{{Absatz}}

== {{Anker|Die Internetzugriffe des Browsers über einen Proxy leiten}}HTTP-Proxy ==
Es gibt mehrere Möglichkeiten, die Zugriffe des Browsers über einen Proxy zu leiten:
; Umgebungsvariable: Einige Browser, zum Beispiel [[Lynx (Browser)|Lynx]], werten eine [[Umgebungsvariable]] (in diesem Fall 'http_proxy=') aus und verwenden den dort eingetragenen Wert, wenn er nicht leer ist.
; Direkte Konfiguration: Hier werden der Name (oder die IP-Adresse) des Proxy-Servers und der Port, auf welchen er hört, direkt im Browser eingetragen. Der Nachteil ist, dass man dies bei jedem Client manuell tun muss und Änderungen daran auf jeden Client einzeln nachzutragen sind.
; Transparenter Proxy: Hier wird an den Clients nichts konfiguriert; sie richten ihre Anfragen an das Ziel auf die Ports 80 (HTTP), als ob sie eine direkte Verbindung zum Internet hätten. Die Infrastruktur des Netzes sorgt dafür, dass ihre Anfragen an den Proxy geleitet werden.
; Automatische Proxy-Konfiguration ([[Proxy Auto-Config]]): Hier wird im Browser die URL einer JavaScript-Datei eingetragen, die Adresse und Port des Proxy-Servers enthält. Wenn diese Arbeit einmalig getan ist, können weitere Änderungen zentral im Skript erfolgen.
; [[Web Proxy Autodiscovery Protocol]] (WPAD): Dies ist ein Protokoll, mit dem Web-Clients wie ein Browser automatisiert zu verwendende Web-Proxys innerhalb eines [[Rechnernetz]]es finden können, indem eine [[Proxy Auto-Config]] (PAC-Datei) unter einer erratbaren URL gespeichert wird, beispielsweise: <code><nowiki>http://wpad.example.com/wpad.dat</nowiki></code>

== {{Anker|Mögliche Probleme bei der Verwendung eines Proxys}}Probleme ==
=== Gefahren ===
Ein schlecht konfigurierter Proxy kann eine Gefahr darstellen, da er Dritten erlaubt, über die Adresse des Proxys im Internet zu agieren. Als Beispiel könnte der Proxy für einen Angriff oder – ähnlich einem [[SMTP-Relay-Server|offenen Mail-Relay]] – zum Versenden von [[Spam]] missbraucht werden. Bei einem Missbrauch wird dann als Quelle der Proxy ermittelt, was unter Umständen unangenehme Folgen für den Betreiber haben kann.

=== Statistik für Zugriffe ===
Besonders kommerzielle Server, die Werbeflächen vermieten, begründen ihre Attraktivität für Werbung mit Zugriffszahlen, deren Statistik vom Webserver erzeugt wird. Proxy-Server und Filter beeinflussen diese Zahlen natürlich negativ, da aus dem Cache gelieferte Inhalte dort nicht erscheinen und ein Teil der Werbung erst gar nicht geladen wird. Manche Anbieter von Webseiten bemühen sich daher, ihre Inhalte schlecht oder gar nicht cache-fähig zu gestalten.

Proxy-Protokolldateien können anwenderspezifisch ausgewertet werden. So können Statistiken über Benutzer (oder IP-Adressen), deren besuchte Webseiten und Verweildauer auf den Webseiten erstellt werden.

=== Proxy als Anonymisierungsdienst ===
In verschiedenen [[Internetforum|Internetforen]], und auch der Wikipedia, wird das Anlegen oder Verändern von Beiträgen über offene Proxy-Server oft durch Sperrung der entsprechenden IP-Adressen verhindert, um eine anonyme Teilnahme zu erschweren. Sinnvollerweise wird dies nur für nicht angemeldete Anwender vorgenommen, somit bleibt eine [[Pseudonymität im Internet|pseudonyme Nutzung]] möglich.

Zu bedenken bleibt, dass der Betreiber eines offenen Proxys nahezu die volle Kontrolle über die Sitzung hat, dabei Daten aufzeichnen und beliebige Webinhalte fälschen kann, ohne dass der Anwender davon etwas bemerkt.

Um die Gefahr eines Missbrauchs des [[Anonymisierungsdienst]]es durch den Betreiber des Proxys einzugrenzen, könnten Konzepte wie [[Friend-to-friend|Friend-to-Friend]] (F2F) eine Lösung bieten: Bei einem F2F-Proxy werden die Daten durch einen „Freund“ geleitet; dies erhöht die Sicherheit, da keine unbekannten Proxy-Server genutzt werden. Das F2F-Netzwerk garantiert, dass ausschließlich private und geprüfte Verbindungen genutzt werden. Abhilfe können auch gängige Verschlüsselungs- und Zertifizierungsverfahren bieten, wie [[Transport Layer Security|SSL/TLS]] mit dem Zielsystem hinter dem Proxy, beispielsweise durch die Nutzung einer [[Hypertext Transfer Protocol Secure|HTTPS]]-Verbindung. Hierbei kann der Proxy keine Manipulation vornehmen, zumindest solange die Implementierung des genutzten Verfahrens nicht fehlerhaft ist und das Verfahren selbst nicht untergraben wird.


== Weblinks ==
== Weblinks ==
* {{dmoz|Computers/Internet/Proxying_and_Filtering/|Proxying and Filtering}}
* {{dmoz|Computers/Internet/Proxying_and_Filtering/Products_and_Tools/Software|Proxy software and scripts}}
* {{dmoz|Computers/Internet/Proxying_and_Filtering/Hosted_Proxy_Services/Free/CGI_Proxy|Free web-based proxy services}}
* {{dmoz|Computers/Internet/Proxying_and_Filtering/Hosted_Proxy_Services/Free/Proxy_Lists|Free http proxy servers}}


== Einzelnachweise ==
<!--Proxylisten sind hier unerwünscht!-->
<references />


[[Kategorie:IT-Architektur]]
[[Kategorie:IT-Architektur]]
[[Kategorie:Internet]]
[[Kategorie:Server]]
[[Kategorie:Anonymität]]

[[Kategorie:Rechnernetze]]
[[cs:Proxy server]]
[[da:Proxyserver]]
[[en:Proxy server]]
[[es:Proxy]]
[[fi:Välityspalvelin]]
[[fr:Serveur mandataire]]
[[he:שרת פרוקסי]]
[[hr:Proxy poslužitelj]]
[[it:Proxy]]
[[ja:プロキシ]]
[[ko:프록시 서버]]
[[nl:Proxyserver]]
[[pl:Serwer pośredniczący]]
[[pt:Proxy]]
[[ru:Прокси-сервер]]
[[sk:Proxy server]]
[[sl:Anonymizer]]
[[sv:Proxy]]
[[tr:Vekil sunucu]]
[[zh:代理服务器]]

Aktuelle Version vom 6. Juni 2025, 20:52 Uhr

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.[1]

Der Begriff kommt von englisch proxy representative „Stellvertreter“ bzw. lateinisch Procurator „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.[2]

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

[Bearbeiten | Quelltext bearbeiten]

Unterschied zu einem NAT-Gerät

[Bearbeiten | Quelltext bearbeiten]

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.

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.

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.

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

[Bearbeiten | Quelltext bearbeiten]
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 open proxy) 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

[Bearbeiten | Quelltext bearbeiten]

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. Auf diese Weise leitet der Proxy alle aus dem externen Netz eingehenden Antwortpakete an den tatsächlichen Empfänger aus dem internen Netz weiter, ohne dass der Absender die tatsächliche (interne) Adresse des Empfängers kennt.

Der lokale Proxy

[Bearbeiten | Quelltext bearbeiten]

Auch bei einer lokal auf dem Quell- oder Zielsystem installierten Proxy-Software wird intern eine Adresskonvertierung vorgenommen. Das ist Teil ihrer internen Arbeitsweise und kann sich auf eine Umleitung des Ports beschränken, bezieht sich oft aber auf eine Umsetzung zu Localhost (Loopback-Schnittstelle 127.0.0.1).

Auf dem Quellsystem

[Bearbeiten | Quelltext bearbeiten]

Als Beispiel könnte eine Anwendung ihre Internetanfragen nicht mehr direkt zum Zielsystem, sondern an ihr eigenes System zum Port der dort installierten Proxysoftware schicken. Dafür muss die Anwendung entsprechend konfiguriert werden. Die Proxy-Software ermittelt nun die Adresse des gewünschten Zielsystems und leitet die Anfrage stellvertretend für die Anwendung dorthin. Dabei wird als Absender die Adresse des Quellsystems nebst Rückgabeport der Proxy-Software angegeben, damit die Antwortpakete wieder den lokalen Proxy erreichen, der sie dann an die ursprüngliche Anwendung durchreichen kann. Auf diese Weise kann ein solcher Proxy ausgehende Anforderungen genauso analysieren (und ggf. filtern) wie die Antworten des Zielsystems. Polipo ist so eine freie Proxy-Software für das Hypertext Transfer Protocol (HTTP) mit Caching- und Filterfunktionalität, z. B. für den Laptop oder das Netbook. Ein anderes Beispiel für einen lokalen Proxy ist Proxomitron, der unter anderem verhindert, dass JavaScripte die Browseridentität und dessen Versionsnummer auflösen und das Betriebssystem auslesen. Auch der Spam-Filter SpamPal wird mit einem lokalen Proxy installiert, zumindest für gewisse Mailclients wie Vivian Mail.

Auf dem Zielsystem

[Bearbeiten | Quelltext bearbeiten]

Hierbei schickt die Anwendung auf dem Quellsystem ihre Anfragen direkt zum Zielsystem. Ohne dass es dem Quellsystem bewusst sein muss, verbirgt sich jedoch hinter dem adressierten Port des Zielsystems nicht der begehrte Netzwerkdienst, sondern eine Proxy-Software.

Die Proxy-Software nimmt somit Anfragen aus dem Netz entgegen und stellt dann stellvertretend für das Quellsystem eine Verbindung zum tatsächlichen Netzwerkdienst seines eigenen Systems her. Dieser beantwortet die Anfrage und schickt die Antwort zurück zur Proxy-Software, welche sie nun analysieren und beliebig verändern oder auch nur statistisch auswerten kann, bevor sie sie zum tatsächlichen Client weiterleitet.

Proxybezeichnungen

[Bearbeiten | Quelltext bearbeiten]

Dedicated Proxy (Proxy-Server)

[Bearbeiten | Quelltext bearbeiten]

Ein Dedicated Proxy ist ein Dienstprogramm, das im Datenverkehr zwischen dem anfragenden Client und dem Zielsystem vermittelt. Er ist auf das Kommunikationsprotokoll spezialisiert, das der Dienst verwendet, und kann daher die Kommunikation analysieren und bei Bedarf deren Inhalt manipulieren. Darüber hinaus kann er eigenständig Anfragen an den Kommunikationspartner senden und mitunter als Zwischenspeicher (Cache) fungieren.

Manchmal wird er lokal auf dem Quell- oder Zielsystem installiert, um dort die entsprechende Aufgabe vor Ort umzusetzen. Demgegenüber kann es sich hierbei auch um ein aktiv in die Kommunikation eingreifendes Filtermodul handeln, das auf einer Proxy-Firewall aufgesetzt wird. Unter anderem kommen Dedicated Proxys als (z. B. SMTP-) Virenscanner oder (z. B. FTP-) Verbindungs- und Befehlsfilter zum Einsatz.

Auf einem einzigen Gerät können mehrere Dedicated Proxys parallel laufen, um unterschiedliche Protokolle bedienen zu können. Da er in die Pakete hineinsehen muss, verrichtet ein Dedicated Proxy seine Arbeit auf der OSI-Schicht 7.

Häufig werden Dedicated Proxys für die folgenden Protokolle verwendet:

HTTP/HTTPS
Die meisten Provider boten ihren Kunden die Verwendung eines solchen Proxys an. Er kann folgende Funktionen erfüllen:
SSL-Terminierung
Eine HTTPS-Verbindung kann mittels Webproxy aufgebrochen (terminiert) werden, um auch dessen Inhalt auf Schädlinge zu überprüfen. Die weitere Verschlüsselung zum Client (Browser) erfolgt dann mit einem vom Proxy angebotenen Zertifikat. Das Problem dabei ist, dass der Benutzer des Browsers nicht mehr das Originalzertifikat des Webservers zu sehen bekommt und dem Proxy-Server vertrauen muss, dass er eine Gültigkeitsprüfung des Webserver-Zertifikats übernommen hat, was oft nicht der Fall ist.
Zwischenspeicher (Cache)
Der Proxy kann gestellte Anfragen zwischenspeichern. Wird die gleiche Anfrage erneut gestellt, kann diese aus dem Speicher beantwortet werden, ohne zuerst den Webserver zu fragen. Der Proxy stellt sicher, dass die von ihm ausgelieferten Informationen nicht allzu veraltet sind. Eine vollständige Aktualität wird in der Regel nicht gewährleistet. Durch das Zwischenspeichern konnten Anfragen schneller beantwortet werden, und es wird gleichzeitig die Netzlast verringert. Beispielsweise vermittelt ein derartiger Proxy eines Unternehmens den gesamten Datenverkehr der Mitarbeiter mit dem Internet.
Zensur/Zugriffssteuerung
Der Proxy ist meist Teil eines Firewall-Konzepts. Mittels Proxy können bestimmte Webseiten für den Benutzer gesperrt oder Zugriffe darauf protokolliert werden. Firmen, Schulen, öffentliche Einrichtungen verhindern so den Zugriff auf bestimmte Webseiten oder schädliche Inhalte wie Viren, Malware, Skripte etc. Auch das Herunterladen von Musikdateien wegen der damit verbundenen rechtlichen Probleme lässt sich unterbinden. Schutzbefohlene können vor Pornographie, rassistischen Webseiten oder ähnlichem geschützt werden. Mittels Benutzerauthentisierung können einzelnen Benutzergruppen unterschiedlichen Filter (Whitelist, Blacklist) zugewiesen werden.
Ausfiltern von Werbung
Werbung kann erhebliche Mengen an Datenverkehr erzeugen, diese kann vom Proxy gefiltert werden.
SMTP
Manche Firewalls bieten einen SMTP-Proxy an, der den Mailverkehr zwischen Internet und Mailserver überwacht und bestimmte gefährliche bzw. unerwünschte Befehle ausfiltert. Durch das Design des SMTP-Protokolls ist jeder SMTP-Server auch als SMTP-Proxy verwendbar.
IMAP-Proxy
Holt z. B. automatisch E-Mails vom zentralen IMAP-Server auf eine lokale Maschine, von der die Clients dann die E-Mail abholen.
IRC-Proxy
Ein solcher Proxy vermittelt IRC-Verbindungen und kann diese aufrechterhalten, auch wenn der Client abgeschaltet ist.
NNTP-Proxy
Der Proxy (z. B. Leafnode) kann für News verwendet werden und erlaubt es z. B. Filter für unerwünschte Gruppen zu definieren.
Exchange-Frontend-Server
Er stellt eine Proxy-Funktion zur Verfügung, der das RPC-Protokoll über HTTP(S) tunnelt.
Citrix Secure Gateway
Hier wird das ICA-Protokoll über HTTP(S) getunnelt.

Circuit Level Proxy (generischer Proxy)

[Bearbeiten | Quelltext bearbeiten]

Als Circuit Level Proxy (auch Generischer Proxy genannt) wird ein Paketfiltermodul bezeichnet, mit dem man auf einer Firewall beliebige IP-Adressen und Ports sperren bzw. freischalten kann, ohne jedoch die Möglichkeit zu haben, die Paketinhalte damit zu analysieren.

Ein solcher Proxy, der auf den OSI-Schichten 3 und 4 operiert, reicht die Pakete mitunter einfach durch, ohne die Verbindungen selbst zu terminieren. Der Circuit Level Proxy realisiert die Adressumsetzung dann mithilfe von NAT auf der OSI-Schicht 3. Während die Adressfilterung ebenfalls auf der dritten OSI-Schicht angesiedelt ist, realisiert er zudem eine Port-Filterung auf der vierten OSI-Schicht.

Es gibt auch Circuit Level Proxys, die dank einem speziellen Protokoll eine Authentifizierung auf der OSI-Schicht 5 realisieren können. Der Client holt sich so eine Verbindungsgenehmigung z. B. per Eingabe einer Kennung nebst Passwort. Dieses spezielle Authentifizierungsprotokoll muss der Client allerdings kennen, weshalb ein derart befähigter Circuit Level Proxy weniger generisch ist (er funktioniert nur mit Anwendungen auf dem Client zusammen, die entsprechend erweitert wurden). Als Beispiel für ein solches Authentifizierungsprotokoll sei SOCKS genannt. Solch ein erweiterter Circuit Level Proxy greift nicht zwangsläufig auf NAT zurück. Einige von ihnen machen dies gar vom Protokoll abhängig; so wird z. B. die TCP-Verbindung terminiert, während eine UDP-Verbindung schlicht weitergereicht wird.

Ein generischer Proxy kann auch für eine einfache Weiterleitung genutzt werden. Der denkbar einfachste Proxy ist das Linux-Programm Redir, das auf einer Schnittstelle und einem Port lauscht und die Daten auf ein anderes Interface und Port weitergibt. Dies ist auch mit dem iptables-Kommando unter Linux möglich und wird beispielsweise verwendet, um den Exit-Datenverkehr eines Tor-Servers über mehrere Proxys zu leiten, um so den Tor-Server zu schützen.

Eine Proxy-Firewall ist eine Firewall, die auf Dedicated Proxys oder Circuit Level Proxys als Filtermodule zurückgreift. Diese Filtermodule setzen Regeln um, indem sie entscheiden, welche Daten an den tatsächlichen Kommunikationspartner weitergeleitet werden und welche nicht. Auf diese Weise versucht die Proxy-Firewall das eigene Netz(segment) vor unerlaubten Zugriffen zu schützen. Sie kann darüber hinaus aber auch eine Konvertierung der Daten vornehmen, bestimmte Inhalte zwischenspeichern und sämtliche weiteren Funktionen ausüben, die einem Proxy eigen sind.

Dedicated Proxys auf einer Stateful Inspection Firewall

[Bearbeiten | Quelltext bearbeiten]

Einige Hersteller bieten für ihre Stateful Inspection Firewall (SIF) ebenfalls Dedicated Proxys an. Definitionstechnisch ist das allerdings ein wenig problematisch: Da dieser Firewalltyp nach dem ursprünglichen Konzept von Checkpoint lediglich auf einem generischen Paketfilter basiert und sich so ausschließlich auf Paketfilter-Regeln konzentriert, wird eine SIF ganz klar als Paketfilter-Firewall klassifiziert. Wird dort allerdings ein Dedicated Proxy aktiviert, so ist die SIF tatsächlich keine Paketfilter-Firewall mehr, sondern gehört dann der Kategorie Proxy-Firewall an, die eine Stateful Packet Inspection durchführt. Diese exakte Unterscheidung wird in der Fachwelt jedoch selten vorgenommen, weshalb eine als SIF klassifizierte Firewall in der Praxis nur zum Teil der Definition einer Paketfilter-Firewall gerecht wird.

Transparenter Proxy

[Bearbeiten | Quelltext bearbeiten]

Ein Transparenter Proxy besteht grundsätzlich aus zwei Komponenten. Zunächst werden am Router die gewünschten Ports der Protokolle abgegriffen (beispielsweise über Iptables unter Einsatz eines Redirects) und dann an einen Proxy weitergeleitet. Für den Anwender ist die Verbindung über einen transparenten Proxy in der Benutzung nicht von einer direkten Verbindung über den Router zu unterscheiden. Das Vorhandensein eines transparenten Proxys bietet aber den Vorteil, dass eine Konfiguration der Proxyeinstellungen am einzelnen PC unterbleiben kann (siehe Abschnitt Sichtbarkeiten).

Ein Proxy-Server, der das Internet zu einem internen Netzwerk verbindet.
Ein Reverse Proxy, der Anfragen vom Internet übernimmt und sie zu anderen Servern im internen Netzwerk weiterleitet. Die Anfragenden verbinden sich zum Proxy, und es mag sein, dass sie vom internen Netzwerk nicht Bescheid wissen.

Ein Proxy tritt im Falle des Reverse Proxys als vermeintliches Zielsystem in Erscheinung, wobei die Adressumsetzung dann in der entgegengesetzten Richtung vorgenommen wird und so dem Client die wahre Adresse des Zielsystems verborgen bleibt. Während ein typischer Proxy dafür verwendet werden kann, mehreren Clients eines internen (privaten – in sich geschlossenen) Netzes den Zugriff auf ein externes Netz zu gewähren, funktioniert ein Reverse Proxy genau andersherum.

Es gibt mehrere Möglichkeiten, die Zugriffe des Browsers über einen Proxy zu leiten:

Umgebungsvariable
Einige Browser, zum Beispiel Lynx, werten eine Umgebungsvariable (in diesem Fall 'http_proxy=') aus und verwenden den dort eingetragenen Wert, wenn er nicht leer ist.
Direkte Konfiguration
Hier werden der Name (oder die IP-Adresse) des Proxy-Servers und der Port, auf welchen er hört, direkt im Browser eingetragen. Der Nachteil ist, dass man dies bei jedem Client manuell tun muss und Änderungen daran auf jeden Client einzeln nachzutragen sind.
Transparenter Proxy
Hier wird an den Clients nichts konfiguriert; sie richten ihre Anfragen an das Ziel auf die Ports 80 (HTTP), als ob sie eine direkte Verbindung zum Internet hätten. Die Infrastruktur des Netzes sorgt dafür, dass ihre Anfragen an den Proxy geleitet werden.
Automatische Proxy-Konfiguration (Proxy Auto-Config)
Hier wird im Browser die URL einer JavaScript-Datei eingetragen, die Adresse und Port des Proxy-Servers enthält. Wenn diese Arbeit einmalig getan ist, können weitere Änderungen zentral im Skript erfolgen.
Web Proxy Autodiscovery Protocol (WPAD)
Dies ist ein Protokoll, mit dem Web-Clients wie ein Browser automatisiert zu verwendende Web-Proxys innerhalb eines Rechnernetzes finden können, indem eine Proxy Auto-Config (PAC-Datei) unter einer erratbaren URL gespeichert wird, beispielsweise: http://wpad.example.com/wpad.dat

Ein schlecht konfigurierter Proxy kann eine Gefahr darstellen, da er Dritten erlaubt, über die Adresse des Proxys im Internet zu agieren. Als Beispiel könnte der Proxy für einen Angriff oder – ähnlich einem offenen Mail-Relay – zum Versenden von Spam missbraucht werden. Bei einem Missbrauch wird dann als Quelle der Proxy ermittelt, was unter Umständen unangenehme Folgen für den Betreiber haben kann.

Statistik für Zugriffe

[Bearbeiten | Quelltext bearbeiten]

Besonders kommerzielle Server, die Werbeflächen vermieten, begründen ihre Attraktivität für Werbung mit Zugriffszahlen, deren Statistik vom Webserver erzeugt wird. Proxy-Server und Filter beeinflussen diese Zahlen natürlich negativ, da aus dem Cache gelieferte Inhalte dort nicht erscheinen und ein Teil der Werbung erst gar nicht geladen wird. Manche Anbieter von Webseiten bemühen sich daher, ihre Inhalte schlecht oder gar nicht cache-fähig zu gestalten.

Proxy-Protokolldateien können anwenderspezifisch ausgewertet werden. So können Statistiken über Benutzer (oder IP-Adressen), deren besuchte Webseiten und Verweildauer auf den Webseiten erstellt werden.

Proxy als Anonymisierungsdienst

[Bearbeiten | Quelltext bearbeiten]

In verschiedenen Internetforen, und auch der Wikipedia, wird das Anlegen oder Verändern von Beiträgen über offene Proxy-Server oft durch Sperrung der entsprechenden IP-Adressen verhindert, um eine anonyme Teilnahme zu erschweren. Sinnvollerweise wird dies nur für nicht angemeldete Anwender vorgenommen, somit bleibt eine pseudonyme Nutzung möglich.

Zu bedenken bleibt, dass der Betreiber eines offenen Proxys nahezu die volle Kontrolle über die Sitzung hat, dabei Daten aufzeichnen und beliebige Webinhalte fälschen kann, ohne dass der Anwender davon etwas bemerkt.

Um die Gefahr eines Missbrauchs des Anonymisierungsdienstes durch den Betreiber des Proxys einzugrenzen, könnten Konzepte wie Friend-to-Friend (F2F) eine Lösung bieten: Bei einem F2F-Proxy werden die Daten durch einen „Freund“ geleitet; dies erhöht die Sicherheit, da keine unbekannten Proxy-Server genutzt werden. Das F2F-Netzwerk garantiert, dass ausschließlich private und geprüfte Verbindungen genutzt werden. Abhilfe können auch gängige Verschlüsselungs- und Zertifizierungsverfahren bieten, wie SSL/TLS mit dem Zielsystem hinter dem Proxy, beispielsweise durch die Nutzung einer HTTPS-Verbindung. Hierbei kann der Proxy keine Manipulation vornehmen, zumindest solange die Implementierung des genutzten Verfahrens nicht fehlerhaft ist und das Verfahren selbst nicht untergraben wird.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Ari Luotonen, Kevin Altis: World-Wide Web Proxies. April 1994, abgerufen am 10. Oktober 2023 (englisch).
  2. Marc Shapiro: Structure and Encapsulation in Distributed Systems: the Proxy Principle. 6th International Conference on Distributed Computing Systems (ICDCS). Cambridge, MA, USA Mai 1986, inria-00444651, S. 198–204 (englisch, inria.fr [abgerufen am 26. Dezember 2018]).