Proxy (Rechnernetz)
Ein Proxy oder Proxyserver (von engl. proxy representative = Stellvertreter, bzw. lat. "proximus" = "Der Nä(c)hste") ist ein Dienstprogramm für Computernetze, das im Datenverkehr vermittelt. Es macht den Datentransfer effizienter (weniger Netzbelastung durch große Datenmengen) bzw. schneller, kann aber auch die Sicherheit erhöhen.
Die Vermittlung erfolgt zwischen Computern oder Programmen in so genannten Rechnernetzen. Aus Sicht des Servers verhält sich der Proxy wie ein Client, dem Client gegenüber wie ein Server.
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:
- 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.
- 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.
- 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
- Bandbreitenkontrolle
- Der Proxy teilt verschieden Benutzern/Gruppen je nach Auslastung unterschiedliche Ressourcen zu. Der Proxyserver Squid beherrscht dieses Verfahren.
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.
- 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. 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. 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.
- Circuit-Level-Proxy (z. 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
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.
Es gibt mehrere Gründe für den Einsatz eines Reverse-Proxys:
- 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 Beschleunigungshardware ausgestattet ist. Somit ist es zudem möglich ein (SSL-)Zertifikat auf dem Proxy einzusetzen (anstelle einem 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)
- Cachen von statischen Inhalten: Ein Reverse-Proxy kann die Webserver deutlich entlasten, indem er unveränderliche Inhalte wie z. B. Bilder 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
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.
Offene Proxys werden bewusst verwendet, um die Herkunft (source address) eines Clients zu verschleiern. Speziell konfigurierte Proxys (Anonymizer) ermöglichen eine weitergehende 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.
Einige offene Proxys werden bewusst aufgesetzt (z. B. Anonymizer). Die meisten offenen Proxys entstehen jedoch durch falsche Konfiguration oder durch trojanisierte PCs. Siehe auch: Botnet.
Translating Proxy
Manche Proxys übersetzen ein Protokoll in ein anderes. Ein „Cern Proxy“ kommuniziert mit dem Client über HTTP, während er eine Verbindung zum Server über FTP oder Gopher aufbaut.
Sicherheit
Ein schlecht 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.
Proxys können auch zum Tunneln protokollfremder Informationen verwendet werden. Wenn sie unsicher konfiguriert sind, können Proxys beispielsweise, ähnlich einem offenen Mail-Relay, zum Versenden von Spam missbraucht werden.
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. B. Steganos internet anonym, der Java Anon Proxy oder Tor.
Konfiguration im Browser
Es gibt mehrere Möglichkeiten, die Zugriffe des Browsers über einen Proxy zu leiten:
- Direkte Konfiguration
- Hier werden der Name (oder die IP-Adresse) des Proxyservers und das Port, auf welches 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 (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.
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. 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.
Proxyserver im Zeitalter schneller Datenleitungen
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.
Trotzdem sind Proxy-Server unter bestimmten Einsatzbedingungen auch heute noch sinnvoll:
- 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.
- Ausfiltern von Werbung
- Werbung kann erhebliche Mengen an Datenverkehr erzeugen – viele Werbeflächen laden sich z. 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 % 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 GB zu setzen, nur weil man den Platz ja hat, ist selten eine gute Idee. In der Regel tun es 1–2 GB völlig.
- Verfügbarkeit
- Über Proxyverbund lassen sich mit relativ geringem Aufwand Lastverteilung und Verfügbarkeit erreichen.
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.
Siehe auch
- Local Area Network (LAN), Computercluster
- Router, Zwischenspeicher, Cache
- Squid
- Kommunikationstechnologie, OSI-Modell, Network Address Translation (NAT)
- Man-In-The-Middle-Angriff
- Tor (Netzwerk)
Weblinks
- Linkkatalog zum Thema Proxying and Filtering bei odp.org (ehemals DMOZ)