Web-Proxy-ServerBearbeiten

Web-Proxys leiten HTTP-Anfragen weiter. Die Anfrage vom Client ist die gleiche wie eine normale HTTP-Anfrage, außer dass die vollständige URL übergeben wird, statt nur der Pfad.

GET https://en.wikipedia.org/wiki/Proxy_server HTTP/1.1Proxy-Authorization: Basic encoded-credentialsAccept: text/html

Diese Anfrage wird an den Proxy-Server gesendet, der Proxy führt die angegebene Anfrage aus und gibt die Antwort zurück.

HTTP/1.1 200 OKContent-Type: text/html; charset UTF-8

Einige Web-Proxys erlauben die HTTP CONNECT-Methode, um die Weiterleitung beliebiger Daten über die Verbindung einzurichten; eine gängige Richtlinie ist, nur Port 443 weiterzuleiten, um HTTPS-Verkehr zuzulassen.

Beispiele für Web-Proxy-Server sind Apache (mit mod_proxy oder Traffic Server), HAProxy, IIS, der als Proxy konfiguriert ist (z. B., mit Application Request Routing), Nginx, Privoxy, Squid, Varnish (nur Reverse Proxy), WinGate, Ziproxy, Tinyproxy, RabbIT und Polipo.

Für Clients wird das Problem komplexer oder mehrerer Proxy-Server durch ein Client-Server-Proxy-Auto-Config-Protokoll (PAC-Datei) gelöst.

SOCKS-ProxyEdit

SOCKS leitet nach einer Verbindungsphase ebenfalls beliebige Daten weiter und ähnelt dem HTTP CONNECT bei Web-Proxies.

Transparenter ProxyEdit

Auch bekannt als Intercepting Proxy, Inline Proxy oder Forced Proxy, fängt ein transparenter Proxy die normale Kommunikation der Anwendungsschicht ab, ohne dass eine spezielle Client-Konfiguration erforderlich ist. Clients müssen sich der Existenz des Proxys nicht bewusst sein. Ein transparenter Proxy befindet sich normalerweise zwischen dem Client und dem Internet, wobei der Proxy einige der Funktionen eines Gateways oder Routers übernimmt.

RFC 2616 (Hypertext Transfer Protocol-HTTP/1.1) bietet Standarddefinitionen:

„Ein ‚transparenter Proxy‘ ist ein Proxy, der die Anfrage oder Antwort nicht über das hinaus modifiziert, was für die Proxy-Authentifizierung und -Identifikation erforderlich ist. „Ein ’nicht-transparenter Proxy‘ ist ein Proxy, der die Anfrage oder die Antwort modifiziert, um dem User-Agent einen zusätzlichen Dienst anzubieten, wie z. B. Gruppenanmerkungsdienste, Medientypumwandlung, Protokollreduzierung oder Anonymitätsfilterung“.

TCP Intercept ist eine Sicherheitsfunktion zur Verkehrsfilterung, die TCP-Server vor TCP-SYN-Flood-Angriffen schützt, die eine Art von Denial-of-Service-Angriffen darstellen. TCP Intercept ist nur für IP-Verkehr verfügbar.

Im Jahr 2009 wurde eine Sicherheitslücke in der Funktionsweise von transparenten Proxys von Robert Auger veröffentlicht, und das Computer Emergency Response Team gab ein Advisory heraus, in dem Dutzende von betroffenen transparenten und abfangenden Proxyservern aufgelistet sind.

ZweckEdit

Abfangende Proxys werden häufig in Unternehmen eingesetzt, um Richtlinien zur akzeptablen Nutzung durchzusetzen und um den Verwaltungsaufwand zu verringern, da keine Konfiguration des Client-Browsers erforderlich ist. Dieser zweite Grund wird jedoch durch Funktionen wie Active Directory-Gruppenrichtlinien oder DHCP und automatische Proxy-Erkennung abgeschwächt.

Intercepting-Proxys werden in einigen Ländern auch häufig von ISPs eingesetzt, um Upstream-Bandbreite zu sparen und die Antwortzeiten der Kunden durch Caching zu verbessern. Dies ist eher in Ländern üblich, in denen die Bandbreite begrenzt ist (z. B. Inselstaaten) oder bezahlt werden muss.

Probleme

Das Umleiten/Abfangen einer TCP-Verbindung verursacht mehrere Probleme. Erstens müssen die ursprüngliche Ziel-IP und der Port dem Proxy irgendwie mitgeteilt werden. Dies ist nicht immer möglich (z. B. wenn sich das Gateway und der Proxy auf verschiedenen Rechnern befinden). Es gibt eine Klasse von seitenübergreifenden Angriffen, die von einem bestimmten Verhalten von abfangenden Proxys abhängen, die Informationen über das ursprüngliche (abgefangene) Ziel nicht überprüfen oder darauf zugreifen können. Dieses Problem kann durch die Verwendung einer integrierten Appliance oder Software auf Paket- und Anwendungsebene gelöst werden, die dann in der Lage ist, diese Informationen zwischen dem Packet-Handler und dem Proxy zu kommunizieren.

Abfangen schafft auch Probleme für die HTTP-Authentifizierung, insbesondere für die verbindungsorientierte Authentifizierung wie NTLM, da der Client-Browser glaubt, dass er mit einem Server und nicht mit einem Proxy spricht. Dies kann zu Problemen führen, wenn ein abfangender Proxy eine Authentifizierung verlangt und der Benutzer dann eine Verbindung zu einer Website herstellt, die ebenfalls eine Authentifizierung verlangt.

Schließlich kann das Abfangen von Verbindungen Probleme für HTTP-Caches verursachen, da einige Anfragen und Antworten durch einen gemeinsamen Cache nicht mehr gecacht werden können.

Implementierungsmethoden

Bei integrierten Firewall-/Proxy-Servern, bei denen sich der Router/Firewall auf demselben Host wie der Proxy befindet, kann die Übermittlung der ursprünglichen Zielinformationen mit einer beliebigen Methode erfolgen, z. B. Microsoft TMG oder WinGate.

Das Abfangen kann auch mit dem WCCP (Web Cache Control Protocol) von Cisco erfolgen. Dieses proprietäre Protokoll befindet sich auf dem Router und wird vom Cache konfiguriert, so dass der Cache über eine transparente Umleitung vom Router aus bestimmen kann, welche Ports und welcher Datenverkehr an ihn gesendet werden. Diese Umleitung kann auf eine von zwei Arten erfolgen: GRE-Tunneling (OSI-Schicht 3) oder MAC-Rewrites (OSI-Schicht 2).

Wenn der Verkehr den Proxy-Rechner selbst erreicht, wird das Abfangen üblicherweise mit NAT (Network Address Translation) durchgeführt. Solche Setups sind für den Client-Browser unsichtbar, lassen den Proxy aber für den Webserver und andere Geräte auf der Internet-Seite des Proxys sichtbar. Neuere Linux- und einige BSD-Versionen bieten TPROXY (transparenter Proxy), der auf IP-Ebene (OSI-Schicht 3) transparentes Abfangen und Spoofing von ausgehendem Datenverkehr durchführt und die Proxy-IP-Adresse vor anderen Netzwerkgeräten verbirgt.

Erkennung

Es gibt verschiedene Methoden, um das Vorhandensein eines abfangenden Proxy-Servers zu erkennen:

  • Durch den Vergleich der externen IP-Adresse des Clients mit der Adresse, die von einem externen Webserver gesehen wird, oder manchmal durch die Untersuchung der von einem Server empfangenen HTTP-Header. Es gibt eine Reihe von Websites, die dieses Problem angehen, indem sie die IP-Adresse des Benutzers, wie sie von der Website gesehen wird, an den Benutzer auf einer Webseite zurückmelden. Google gibt auch die IP-Adresse zurück, wie sie von der Seite gesehen wird, wenn der Benutzer nach „IP“ sucht.
  • Durch den Vergleich der Ergebnisse von Online-IP-Prüfgeräten beim Zugriff über HTTPS gegenüber HTTP, da die meisten abfangenden Proxys SSL nicht abfangen. Wenn der Verdacht besteht, dass SSL abgefangen wird, kann man das Zertifikat untersuchen, das mit jeder sicheren Website verknüpft ist. Das Root-Zertifikat sollte anzeigen, ob es zum Zweck des Abfangens ausgestellt wurde.
  • Durch den Vergleich der Abfolge von Netzwerk-Hops, die von einem Tool wie Traceroute für ein Proxy-Protokoll wie http (Port 80) gemeldet werden, mit der Abfolge für ein nicht-proxiertes Protokoll wie SMTP (Port 25).
  • Bei dem Versuch, eine Verbindung zu einer IP-Adresse herzustellen, von der bekannt ist, dass es dort keinen Server gibt. Der Proxy nimmt die Verbindung an und versucht dann, sie weiter zu vermitteln. Wenn der Proxy keinen Server findet, der die Verbindung annimmt, kann er eine Fehlermeldung zurückgeben oder einfach die Verbindung zum Client schließen. Dieser Unterschied im Verhalten ist einfach zu erkennen. Beispielsweise erzeugen die meisten Webbrowser eine vom Browser erstellte Fehlerseite, wenn sie keine Verbindung zu einem HTTP-Server herstellen können, geben aber eine andere Fehlermeldung zurück, wenn die Verbindung akzeptiert und dann geschlossen wird.
  • Indem sie dem Endbenutzer speziell programmierte Adobe Flash SWF-Anwendungen oder Sun Java Applets anbieten, die HTTP-Aufrufe zurück an den Server senden.

CGI-ProxyEdit

Ein CGI-Web-Proxy nimmt Ziel-URLs über ein Web-Formular im Browser-Fenster des Benutzers entgegen, verarbeitet die Anfrage und gibt die Ergebnisse an den Browser des Benutzers zurück. Daher kann er auf einem Gerät oder in einem Netzwerk verwendet werden, das keine Änderung der „echten“ Proxy-Einstellungen zulässt. Der erste aufgezeichnete CGI-Proxy, damals „rover“ genannt, aber 1998 in „CGIProxy“ umbenannt, wurde von dem amerikanischen Informatiker James Marshall Anfang 1996 für einen Artikel in der „Unix Review“ von Rich Morin entwickelt.

Die meisten CGI-Proxys werden von einem von CGIProxy (geschrieben in der Sprache Perl), Glype (geschrieben in der Sprache PHP) oder PHProxy (geschrieben in der Sprache PHP) betrieben. Im April 2016 wurde CGIProxy etwa 2 Millionen Mal heruntergeladen, Glype wurde fast eine Million Mal heruntergeladen, während PHProxy immer noch Hunderte von Downloads pro Woche erhält. Trotz abnehmender Beliebtheit aufgrund von VPNs und anderen Methoden zur Wahrung der Privatsphäre sind immer noch viele CGI-Proxys online.

Einige CGI-Proxys wurden zu Zwecken eingerichtet, wie z. B. um Websites für Menschen mit Behinderungen zugänglicher zu machen, wurden aber inzwischen aufgrund von übermäßigem Datenverkehr abgeschaltet, in der Regel verursacht durch eine dritte Partei, die den Dienst als Mittel zur Umgehung lokaler Filterung bewirbt. Da viele dieser Benutzer sich nicht um den Kollateralschaden kümmern, den sie verursachen, wurde es für Organisationen notwendig, ihre Proxys zu verstecken und die URLs nur denjenigen offenzulegen, die sich die Mühe machen, die Organisation zu kontaktieren und einen echten Bedarf zu demonstrieren.

Suffix-ProxyEdit

Ein Suffix-Proxy ermöglicht es einem Benutzer, auf Web-Inhalte zuzugreifen, indem er den Namen des Proxy-Servers an die URL des angeforderten Inhalts anhängt (z. B. „en.wikipedia.org.SuffixProxy.com“). Suffix-Proxyserver sind einfacher zu benutzen als normale Proxyserver, bieten aber keine hohe Anonymität und dienen in erster Linie der Umgehung von Webfiltern. Dies wird jedoch aufgrund von fortschrittlicheren Webfiltern nur noch selten genutzt.

Tor onion proxy softwareEdit

Screenshot eines Computerprogramms, das Computerstandorte auf einer Weltkarte zeigt.
Die Karte des Vidalia Tor-Netzwerks.

Der Onion Router (Tor) ist ein System, das Online-Anonymität bieten soll. Die Tor-Client-Software leitet den Internetverkehr durch ein weltweites, freiwilliges Netzwerk von Servern, um den Standort oder die Nutzung des Computers eines Benutzers vor jemandem zu verbergen, der eine Netzwerküberwachung oder Verkehrsanalyse durchführt. Die Verwendung von Tor erschwert die Rückverfolgung von Internetaktivitäten und soll die persönliche Freiheit und Privatsphäre der Nutzer schützen.

„Onion Routing“ bezieht sich auf die mehrschichtige Natur des Verschlüsselungsdienstes: Die Originaldaten werden mehrfach verschlüsselt und wieder verschlüsselt und dann durch aufeinanderfolgende Tor-Relays geschickt, von denen jeder eine „Schicht“ der Verschlüsselung entschlüsselt, bevor er die Daten an den nächsten Relay und schließlich an das Ziel weiterleitet. Das reduziert die Möglichkeit, dass die Originaldaten während der Übertragung entschlüsselt oder verstanden werden.

I2P anonymous proxyEdit

Das anonyme Netzwerk I2P (‚I2P‘) ist ein Proxy-Netzwerk, das auf Online-Anonymität abzielt. Es implementiert Knoblauch-Routing, das eine Erweiterung des Onion-Routings von Tor ist. I2P ist vollständig verteilt und funktioniert, indem es die gesamte Kommunikation in verschiedenen Schichten verschlüsselt und durch ein Netzwerk von Routern weiterleitet, die von Freiwilligen an verschiedenen Orten betrieben werden. Indem die Quelle der Informationen verborgen bleibt, bietet I2P Widerstand gegen Zensur. Die Ziele von I2P sind der Schutz der persönlichen Freiheit, der Privatsphäre und der Fähigkeit, vertrauliche Geschäfte zu tätigen.

Jeder Benutzer von I2P betreibt einen I2P-Router auf seinem Computer (Knoten). Der I2P-Router kümmert sich darum, andere Peers zu finden und anonymisierende Tunnel durch sie aufzubauen. I2P stellt Proxys für alle Protokolle (HTTP, IRC, SOCKS, …) zur Verfügung.

Vergleich zu Netzwerkadressübersetzern

Das Proxy-Konzept bezieht sich auf eine Anwendung der Schicht 7 im OSI-Referenzmodell. Network Address Translation (NAT) ist einem Proxy ähnlich, arbeitet aber in Schicht 3.

Bei der Client-Konfiguration von Layer-3-NAT genügt die Konfiguration des Gateways. Bei der Client-Konfiguration eines Layer-7-Proxys hingegen muss das Ziel der Pakete, die der Client erzeugt, immer der Proxy-Server (Layer 7) sein, dann liest der Proxy-Server jedes Paket und findet das wahre Ziel heraus.

Da NAT auf Layer-3 arbeitet, ist es weniger ressourcenintensiv als der Layer-7-Proxy, aber auch weniger flexibel. Wenn wir diese beiden Technologien vergleichen, stoßen wir vielleicht auf eine Terminologie, die als „transparente Firewall“ bekannt ist. Transparente Firewall bedeutet, dass der Proxy die Vorteile des Layer-7-Proxys ohne das Wissen des Clients nutzt. Der Client nimmt an, dass es sich bei dem Gateway um ein NAT in Schicht 3 handelt, und hat keine Ahnung vom Inneren des Pakets, aber durch diese Methode werden die Schicht-3-Pakete zur Untersuchung an den Schicht-7-Proxy geschickt.

DNS-ProxyEdit

Ein DNS-Proxy-Server nimmt DNS-Anfragen aus einem (meist lokalen) Netzwerk entgegen und leitet sie an einen Internet Domain Name Server weiter. Er kann auch DNS-Einträge zwischenspeichern.

ProxifierEdit

Einige Client-Programme „SOCKS-ifizieren“ Anfragen, was die Anpassung beliebiger Netzwerksoftware erlaubt, um sich über bestimmte Arten von Proxy-Servern (meist SOCKS) mit externen Netzwerken zu verbinden.

Residential ProxyEdit

Ein Residential Proxy ist ein Vermittler, der eine reale IP-Adresse, die von einem Internet Service Provider (ISP) zur Verfügung gestellt wird, mit physischen Geräten wie Handys und Computern von Endbenutzern verwendet. Anstatt sich direkt mit einem Server zu verbinden, verbinden sich Residential-Proxy-Benutzer über Residential-IP-Adressen mit dem Ziel. Das Ziel identifiziert sie dann als organische Internetnutzer. Es lässt kein Tracking-Tool die Neuzuordnung des Benutzers erkennen. Jeder Residential Proxy kann eine beliebige Anzahl von gleichzeitigen Anfragen senden und die IP-Adressen sind direkt mit einer bestimmten Region verbunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.