„Proxy (Rechnernetz)“ – Versionsunterschied

[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Zeile 64: Zeile 64:
== F2F Proxy ==
== F2F Proxy ==


Bei einem [[F2F]] Proxy werden die Daten durch einen Freund geleitet, dieses erhoht die Sicherheit enorm, da keine unbekannten Proxyserver genutzt werden. Das Friend-to-Friend-Netzwerk garantiert, dass ausschliesslich private und geprufte Verbindungen genutzt werden.
Bei einem [[F2F]] Proxy werden die Daten durch einen Freund geleitet, dieses erhoht die Sicherheit enorm, da keine unbekannten Proxyserver genutzt werden. Das Friend-to-Friend-Netzwerk garantiert, dass ausschliesslich private und geprüfte Verbindungen genutzt werden.


== Sicherheit ==
== Sicherheit ==

Version vom 28. Februar 2007, 17:07 Uhr

Ein Proxy oder Proxyserver (von engl. proxy representative = Stellvertreter, bzw. lat. „proximus“ = „Der Nächste“) 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 durch Einsatz von Zugriffskontrollmechanismen 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. 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 verschiedenen 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 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.
  • Auch der Exchange Frontend Server stellt eine Proxy Funktion zur Verfügung. Durch diesen wird das RPC-Protokoll über http(s) getunnelt.
  • Ähnlich funktioniert das Citrix Secure Gateway hier wird das ICA-Protokoll über http(s) getunnelt

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 auf einem dahinterliegenden 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.

Transparenter Proxy

In verschiedenen Netzwerkstrukturen ist es wünschenswert, ein Umgehen des Proxyservers zu verhindern. Dies kann beispielsweise der Fall sein, wenn verschiedenen Nutzern eingeschränkte Internet-Ressourcen zur Verfügung stehen, deren Nutzung über einen Proxy gesteuert bzw. überwacht werden soll. Ein Proxy lässt sich häufig umgehen, indem man die Proxy-Einstellungen aus Software, wie z. B. Browsern, entfernt und direkt über den Internetgateway des Netzwerkes auf das Internet zugreift. Ein „Transparenter Proxy“ besteht grundsätzlich aus zwei Komponenten. Zunächst werden am Gateway die gewünschten 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 ein Gateway zu unterscheiden.

Das Vorhandensein eines „Transparenten Proxy“ bietet außerdem den Nutzen, dass eine Konfiguration der Proxy-Einstellungen am einzelnen PC unterbleiben kann, was in komplexeren Netzwerkumgebungen mit nicht unerheblichem Aufwand verbunden sein könnte.

Ein transparenter Proxy hat allerdings den Nachteil, dass Schadprogrammen über Port 80 ein Internetzugang zur Verfügung steht, ohne dass diese das Netz ausforschen müssen. Bei direkter Proxykonfiguration, z.B. über Port xyz, müssen solche Programme den Zugang erst finden. Das ist zwar möglich, wird aber von Verfassern solcher Programme oft nicht gemacht.

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 Jabber-Transports liegt dieses Konzept zu Grunde.

Lokaler Proxy

Als lokalen Proxy bezeichnet man einen Proxy-Server, wenn der Server und der Client auf demselben Rechner ausgeführt werden. Der Proxy hat dann die Adresse 127.0.0.1 (localhost). Der lokale Proxy wirkt als Webfilter, um unerwünschte Inhalte zu entfernen oder einen Cache anzulegen. Im Gegensatz zu anderen Proxys gibt es keinen Overhead, die Verbindungsgeschwindigkeit und Reaktionszeit (Ping) verlangsamt sich nicht (oder nur im Millisekundenbereich). Ein Beispiel für einen lokalen Proxy ist Proxomitron, der unter anderem Javascripten untersagt, die Browseridentität und dessen Versionsnummer, Auflösung und das Betriebssystem auszulesen.


F2F Proxy

Bei einem F2F Proxy werden die Daten durch einen Freund geleitet, dieses erhoht die Sicherheit enorm, da keine unbekannten Proxyserver genutzt werden. Das Friend-to-Friend-Netzwerk garantiert, dass ausschliesslich private und geprüfte Verbindungen genutzt werden.

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. Solche Applikationen sind z. B. der Java Anon Proxy oder Tor.

Konfiguration im Browser

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

Umgebungsvariable
Einige Browser, z. B. 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 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. HTTPS-Anfragen können von transparenten Proxys 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 schnellerer 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 rechtlichen 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 ratsam. In der Regel reichen 1–2 GB vollkommen aus.
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