Reverse proxy: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
[[Datei:Reverse proxy h2g2bob.svg|mini|alt=Ein Proxy-Server, der das Internet zu einem internen Netzwerk verbindet.|Ein Reverse-Proxy in Arbeit.<br />Die Anfragenden aus dem Internet verbinden sich mit dem Proxy | [[Datei:Reverse proxy h2g2bob.svg|mini|alt=Ein Proxy-Server, der das Internet zu einem internen Netzwerk verbindet.|Ein Reverse-Proxy in Arbeit.<br />Die Anfragenden aus dem Internet verbinden sich mit dem Proxy | ||
Ein '''Reverse-Proxy''' ist ein [[Proxy (Rechnernetz)|Proxy]] in einem [[Rechnernetz]], der Ressourcen für einen externen [[Client]] von einem oder mehreren internen [[Server (Software)|Servern]] holt | * Das interne Netzwerk muss nicht bekannt sein.]] | ||
Ein '''Reverse-Proxy''' ist ein [[Proxy (Rechnernetz)|Proxy]] in einem [[Rechnernetz]], der Ressourcen für einen externen [[Client]] von einem oder mehreren internen [[Server (Software)|Servern]] holt | |||
* Die Umsetzung der Adresse ist atypisch und der Richtung des Aufrufes entgegengesetzt (deutsch „''umgekehrter Proxy''“) | |||
* Die wahre Adresse des internen Zielsystems bleibt dem externen Client verborgen | |||
* Das unterscheidet ihn vom typischen (Forward-)Proxy, der mehreren Clients eines internen (in sich abgeschlossenen) Netzes den Zugriff auf ein externes Netz gewährt | |||
== Weiterleitungsmodul einer Firewall == | == Weiterleitungsmodul einer Firewall == | ||
Die Reverse-Proxys einer [[Firewall]] bieten zunächst die gleiche Funktionalität wie [[Portweiterleitung]] und ermöglichen so einen ''von außen'' initiierten Verbindungsaufbau zu einem hinter der Weiterleitung liegenden Server des internen Netzes | Die Reverse-Proxys einer [[Firewall]] bieten zunächst die gleiche Funktionalität wie [[Portweiterleitung]] und ermöglichen so einen ''von außen'' initiierten Verbindungsaufbau zu einem hinter der Weiterleitung liegenden Server des internen Netzes | ||
* Sobald sie als ''Dedicated Proxy'' arbeiten, verstehen sie das Netzwerkprotokoll und sind dann zudem in der Lage, die Daten der Netzwerkpakete zu analysieren und zu bearbeiten | |||
* So können sie z. B. einen Virenscan vornehmen oder Regeln anwenden, die sich auf die Paketinhalte beziehen | |||
Demgegenüber gibt es auch Reverse-Proxys, die nicht Bestandteil der Firewallsoftware sind und dennoch den Zweck haben, den Zugriff aus dem externen Netz heraus auf einen internen Rechner zu ermöglichen, ohne jedoch die Firewall entsprechend manuell konfigurieren zu müssen | Demgegenüber gibt es auch Reverse-Proxys, die nicht Bestandteil der Firewallsoftware sind und dennoch den Zweck haben, den Zugriff aus dem externen Netz heraus auf einen internen Rechner zu ermöglichen, ohne jedoch die Firewall entsprechend manuell konfigurieren zu müssen | ||
* Dazu baut der interne Rechner zunächst eine Verbindung zu einem bestimmten externen Rechner auf, wodurch der externe Rechner über die Firewall hinweg mit dem internen Rechner kommunizieren kann | |||
* Läuft auf dem externen Rechner ein Reverse-Proxy, so können nun auch beliebige andere Rechner aus dem externen Netz auf den internen Rechner hinter der Firewall zugreifen, indem sie ihre Anfragen an den Reverse-Proxy des externen Rechners schicken (der Reverse-Proxy leitet die Anfragen an den internen Rechner weiter) | |||
== Performance-Optimierung == | == Performance-Optimierung == | ||
Eine gänzlich andere Aufgabe kann ein Reverse-Proxy erfüllen, der die Anfragen für einen Dienst entgegennimmt, um die [[Rechenleistung|Geschwindigkeit]] bzw. Zugriffsrate auf den Dienst zu verbessern oder funktionell zu erweitern | Eine gänzlich andere Aufgabe kann ein Reverse-Proxy erfüllen, der die Anfragen für einen Dienst entgegennimmt, um die [[Rechenleistung|Geschwindigkeit]] bzw. Zugriffsrate auf den Dienst zu verbessern oder funktionell zu erweitern | ||
* Er kann lokal auf dem Zielsystem installiert sein, oder auf einer separaten Hardware laufen, und arbeitet beispielsweise als ''HTTP-Accelerator'', auch ''Surrogate Proxy'' genannt | |||
* Verbindungen aus dem [[Internet]] an einen [[Webserver]] werden durch den Proxy bearbeitet, der die Anfragen selbst beantwortet, sofern sie in dem eigenen [[Cache]] stehen, oder andernfalls an die nachgeordneten Dienste oder an einen entfernten Server weiterleitet | |||
== Weitere Einsatzszenarien == | == Weitere Einsatzszenarien == | ||
; Es gibt mehrere Gründe für den Einsatz eines Reverse-Proxys | ; Es gibt mehrere Gründe für den Einsatz eines Reverse-Proxys | ||
{| | {| | ||
| [[Netzwerksicherheit]] || Der Reverse-Proxy stellt ein weiteres Glied in der Sicherheitskette dar und trägt so zur Sicherheit der Webserver bei, denn es ist möglich, auf einem Reverse-Proxy Virenscanner, Firewalls oder Paketfilter zu installieren | | [[Netzwerksicherheit]] || Der Reverse-Proxy stellt ein weiteres Glied in der Sicherheitskette dar und trägt so zur Sicherheit der Webserver bei, denn es ist möglich, auf einem Reverse-Proxy Virenscanner, Firewalls oder Paketfilter zu installieren | ||
|- | |- | ||
| [[Single Sign-on]] (SSO) || Der Reverse-Proxy kann die Benutzer-[[Authentifizierung]] für mehrere Webserver übernehmen | | [[Single Sign-on]] (SSO) || Der Reverse-Proxy kann die Benutzer-[[Authentifizierung]] für mehrere Webserver übernehmen | ||
* Dadurch muss sich der Benutzer nur einmal anmelden, um die Dienste mehrerer Server zu nutzen | |||
|- | |- | ||
| [[Verschlüsselung]]/[[Transport Layer Security|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 | | [[Verschlüsselung]]/[[Transport Layer Security|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 | ||
:* Der Webserver wird durch die Auslagerung der Verschlüsselung (u. U. erheblich) entlastet | * Somit ist es zudem möglich, ''ein'' (SSL-)Zertifikat auf dem Proxy einzusetzen (anstelle auf einem dahinterliegenden Webserver) | ||
:* Der Proxy kann die Webinhalte cachen, was sonst nicht möglich wäre und eine weitere Entlastung des Webservers bedeutet | * Bei Squid (ab Version 2.6) geht dies auch per Software | ||
:* [[Access Control List|ACLs]] können auch auf verschlüsselten Seiten angewendet werden, da der Proxy die Header im Klartext sieht | * Durch das Verlagern der Verschlüsselung auf den Proxy erzielt man folgende Vorteile: | ||
:* Der Webserver wird durch die Auslagerung der Verschlüsselung (u. U. erheblich) entlastet | |||
:* Der Proxy kann die Webinhalte cachen, was sonst nicht möglich wäre und eine weitere Entlastung des Webservers bedeutet | |||
:* [[Access Control List|ACLs]] können auch auf verschlüsselten Seiten angewendet werden, da der Proxy die Header im Klartext sieht | |||
|- | |- | ||
| [[Lastverteilung (Informatik)|Lastverteilung]] || Der Reverse-Proxy kann die Last auf mehrere Server verteilen, wobei jeder Server sein Anwendungsfeld bedient | | [[Lastverteilung (Informatik)|Lastverteilung]] || Der Reverse-Proxy kann die Last auf mehrere Server verteilen, wobei jeder Server sein Anwendungsfeld bedient | ||
* Auch einzelne Server-Ausfälle können hiermit abgefangen werden | |||
* 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 Inhalten || Ein Reverse-Proxy kann die Webserver entlasten, indem er statische Inhalte wie etwa [[Bilddatei|Bilder]] sowie die Ergebnisse häufig aufgerufener dynamisch erstellter Seiten (aus [[Skriptsprache#Skriptsprachen im WWW|Skriptsprachen]]) zwischenspeichert | | [[Cache]]n von Inhalten || Ein Reverse-Proxy kann die Webserver entlasten, indem er statische Inhalte wie etwa [[Bilddatei|Bilder]] sowie die Ergebnisse häufig aufgerufener dynamisch erstellter Seiten (aus [[Skriptsprache#Skriptsprachen im WWW|Skriptsprachen]]) zwischenspeichert | ||
* Auf diese Weise kann eine deutlich höhere Anzahl an Webseitenanfragen bewältigt werden | |||
|} | |} | ||
Weiterhin kann ein Reverse-Proxy auch als offener Proxy genutzt werden, um Anfragen unter „seinem Namen“ an fremde Server zu schicken, ohne dass dies vom Betreiber so gedacht ist | Bei Ausfall des dahinterliegenden Webservers (oder im Fehlerfall: beispielsweise HTTP 500) kann zudem eine „benutzerfreundliche“ Meldung angezeigt werden | ||
Weiterhin kann ein Reverse-Proxy auch als offener Proxy genutzt werden, um Anfragen unter „seinem Namen“ an fremde Server zu schicken, ohne dass dies vom Betreiber so gedacht ist | |||
* Daher kann es empfehlenswert sein, ihn derart zu konfigurieren, dass er nur auf Anfragen an bestimmte Server antwortet | |||
* Als Beispiel geschieht dies bei [[Squid]] durch eine Regel <code>http_access allow </code> mit der abschließenden Regel <code>http_access deny all</code> | |||
<noinclude> | <noinclude> | ||
Version vom 1. März 2024, 12:54 Uhr
topic - Kurzbeschreibung
Beschreibung
Ein Reverse-Proxy ist ein Proxy in einem Rechnernetz, der Ressourcen für einen externen Client von einem oder mehreren internen Servern holt
- Die Umsetzung der Adresse ist atypisch und der Richtung des Aufrufes entgegengesetzt (deutsch „umgekehrter Proxy“)
- Die wahre Adresse des internen Zielsystems bleibt dem externen Client verborgen
- Das unterscheidet ihn vom typischen (Forward-)Proxy, der mehreren Clients eines internen (in sich abgeschlossenen) Netzes den Zugriff auf ein externes Netz gewährt
Weiterleitungsmodul einer Firewall
Die Reverse-Proxys einer Firewall bieten zunächst die gleiche Funktionalität wie Portweiterleitung und ermöglichen so einen von außen initiierten Verbindungsaufbau zu einem hinter der Weiterleitung liegenden Server des internen Netzes
- Sobald sie als Dedicated Proxy arbeiten, verstehen sie das Netzwerkprotokoll und sind dann zudem in der Lage, die Daten der Netzwerkpakete zu analysieren und zu bearbeiten
- So können sie z. B. einen Virenscan vornehmen oder Regeln anwenden, die sich auf die Paketinhalte beziehen
Demgegenüber gibt es auch Reverse-Proxys, die nicht Bestandteil der Firewallsoftware sind und dennoch den Zweck haben, den Zugriff aus dem externen Netz heraus auf einen internen Rechner zu ermöglichen, ohne jedoch die Firewall entsprechend manuell konfigurieren zu müssen
- Dazu baut der interne Rechner zunächst eine Verbindung zu einem bestimmten externen Rechner auf, wodurch der externe Rechner über die Firewall hinweg mit dem internen Rechner kommunizieren kann
- Läuft auf dem externen Rechner ein Reverse-Proxy, so können nun auch beliebige andere Rechner aus dem externen Netz auf den internen Rechner hinter der Firewall zugreifen, indem sie ihre Anfragen an den Reverse-Proxy des externen Rechners schicken (der Reverse-Proxy leitet die Anfragen an den internen Rechner weiter)
Performance-Optimierung
Eine gänzlich andere Aufgabe kann ein Reverse-Proxy erfüllen, der die Anfragen für einen Dienst entgegennimmt, um die Geschwindigkeit bzw. Zugriffsrate auf den Dienst zu verbessern oder funktionell zu erweitern
- Er kann lokal auf dem Zielsystem installiert sein, oder auf einer separaten Hardware laufen, und arbeitet beispielsweise als HTTP-Accelerator, auch Surrogate Proxy genannt
- Verbindungen aus dem Internet an einen Webserver werden durch den Proxy bearbeitet, der die Anfragen selbst beantwortet, sofern sie in dem eigenen Cache stehen, oder andernfalls an die nachgeordneten Dienste oder an einen entfernten Server weiterleitet
Weitere Einsatzszenarien
- Es gibt mehrere Gründe für den Einsatz eines Reverse-Proxys
Netzwerksicherheit | Der Reverse-Proxy stellt ein weiteres Glied in der Sicherheitskette dar und trägt so zur Sicherheit der Webserver bei, denn es ist möglich, auf einem Reverse-Proxy Virenscanner, Firewalls oder Paketfilter zu installieren |
Single Sign-on (SSO) | Der Reverse-Proxy kann die Benutzer-Authentifizierung für mehrere Webserver übernehmen
|
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
|
Lastverteilung | Der Reverse-Proxy kann die Last auf mehrere Server verteilen, wobei jeder Server sein Anwendungsfeld bedient
|
Cachen von Inhalten | Ein Reverse-Proxy kann die Webserver entlasten, indem er statische Inhalte wie etwa Bilder sowie die Ergebnisse häufig aufgerufener dynamisch erstellter Seiten (aus Skriptsprachen) zwischenspeichert
|
Bei Ausfall des dahinterliegenden Webservers (oder im Fehlerfall: beispielsweise HTTP 500) kann zudem eine „benutzerfreundliche“ Meldung angezeigt werden
Weiterhin kann ein Reverse-Proxy auch als offener Proxy genutzt werden, um Anfragen unter „seinem Namen“ an fremde Server zu schicken, ohne dass dies vom Betreiber so gedacht ist
- Daher kann es empfehlenswert sein, ihn derart zu konfigurieren, dass er nur auf Anfragen an bestimmte Server antwortet
- Als Beispiel geschieht dies bei Squid durch eine Regel
http_access allow
mit der abschließenden Regelhttp_access deny all