Proxy (Rechnernetz)
Ein Proxy oder Proxyserver (vom engl. proxy representative = Stellvertreter von lat. "proximus" = "Der Nä(c)hste") ist ein Computerprogramm, das im Datenverkehr zwischen Computern oder Computer-Programmen in so genannten Computernetzen zwischen angefragtem Server und anfragendem Client vermittelt.
Dem Server gegenüber verhält sich das Programm wie ein Client, dem Client gegenüber wie ein Server.
Funktion
Im einfachsten Fall leitet der Proxy die Daten einfach weiter. Oft hat ein Proxy jedoch zusätzlich einige der folgenden Funktionen:
- Zwischenspeicher (Cache): Der Proxy speichert gestellte Anfragen bzw. vielmehr deren Ergebnis. Wird die gleiche Anfrage erneut gestellt, kann diese aus dem Speicher beantwortet werden, ohne zuerst den Webserver zu fragen. Die Proxys stellen sicher, dass die Anfrage nicht veraltet ist. Durch das Zwischenspeichern können Anfragen schneller beantwortet werden, und es wird gleichzeitig die Netzlast verringert. Beispielsweise vermittelt ein Proxyserver einer Firma allen Datenverkehr der Computer der Mitarbeiter mit dem Internet.
- Filter: Mittels Proxy 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 von Firewalls.
- Zugriffssteuerung: 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 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.
- Anonymisierungsdienst: 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
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.
Proxys sind generell für jedes verbindungsorientierte Protokoll möglich. Häufig werden sie für die folgenden Protokolle verwendet:
- 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.
- ICP: Das Inter Cache Protokoll wird in Netzen aus Proxyservern zum Informationsaustausch verwendet.
- 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.
- Applikationsproxy: 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.B. oft bei Online-Shops angewendet: Der Webserver befindet sich samt Proxy im Internet und greift auf die Datenbank mit Kundendaten hinter einer Firewall zu.
Sonderformen
- Transparenter Proxy: Die Verwendung eines Proxyservers muss meist dem Client explizit mitgeteilt werden. Ein transparenter Proxy muss hingegen nicht explizit angegeben werden. Ein Paketfilter auf einem Gateway zwischen Client und Server kann die Datenpakete abfangen und sie an den Proxy weiterleiten. Dieses Verfahren ist für den Client transparent, d. h. er bemerkt nicht, dass er einen Proxy verwendet.
- Automatischer Proxy: Eine URL, die auf einen Webserver zeigt, auf dem ein Javascript-Programm liegt, das den Proxy des Clients konfiguriert. Das Javascript kann auch bedingte Verzweigungen enthalten, z.B. primärer und sekundärer Proxy.
- Reverse Proxy: Tritt statt des eigentlichen Servers in Erscheinung. Es können auch mehrere Web Server im internen Netz über eine einzige öffentliche IP Adresse erreicht werden. Die Filterung erfolgt über den Header des TCP-Pakets, bzw. über die URL. Dadurch können etwa Zugriffskontrollen oder Caches realisiert werden.