Circuit Level Proxy (generischer Proxy) Erklärung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 
=Gateways auf Leitungsebene=
 
=Gateways auf Leitungsebene=
*Im Wesentlichen ist ein Circuit-Level-Gateway ein Proxy-Server für TCP  
+
 
*Genauer gesagt macht ein Circuit-Level-Gateway die folgenden drei Dinge, wenn ein Client eine TCP-Verbindung zu einem Server herstellen möchte
+
*Ein Circuit-Level-Gateway (Schaltungsebene-Gateway) arbeitet auf der Transportebene (OSI-Schicht 4) und vermittelt TCP- oder UDP-Verbindungen zwischen zwei Netzwerken.
*Es empfängt die TCP-Verbindungsaufbauanforderung, die vom Client gesendet wird (weil der Client so konfiguriert ist, dass er das Circuit-Level-Gateway verwendet).
+
*Im Wesentlichen handelt es sich dabei um einen Proxy-Server für TCP-Verbindungen.
*Es authentifiziert und autorisiert möglicherweise den Client (oder den Benutzer hinter dem Client).
+
*Das Gateway übernimmt die Sitzungserstellung zwischen Client und Server, ohne in den Datenstrom auf Anwendungsebene einzugreifen.
*Er baut im Auftrag des Clients eine zweite TCP - Verbindung zum Server auf .
+
 
*Nachdem die zweite TCP-Verbindung erfolgreich aufgebaut wurde, leitet das Circuit-Level-Gateway einfach Anwendungsdaten hin und her.  
+
==Funktionsweise==
*Als solches stört es den Datenstrom nicht.  
+
*Ein Client ist so konfiguriert, dass er seine Verbindungen über das Circuit-Level-Gateway aufbaut.
*Dies unterscheidet ein Circuit-Level-Gateway von einem Application-Level-Gateway.
+
*Wenn der Client eine TCP-Verbindung zu einem Zielserver öffnen möchte:
*Da dieser das von den beiden Endpunkten der Verbindung verwendete Anwendungsprotokoll verstehen kann.  
+
**Das Gateway empfängt die Verbindungsanforderung vom Client.
*Das bedeutet im Grunde, dass das Circuit-Level-Gateway das verwendete Anwendungsprotokoll nicht verstehen muss.
+
**Es kann den Benutzer oder den Client authentifizieren und autorisieren.
*Dies vereinfacht die Implementierung und den Einsatz von Circuit-Level-Gateways erheblich.
+
**Es baut im Auftrag des Clients eine zweite TCP-Verbindung zum Zielserver auf.
*Das wichtigste Gateway auf Schaltungsebene, das heute verwendet wird, ist SOCKS.
+
*Nach erfolgreichem Aufbau der zweiten Verbindung leitet das Gateway die Datenpakete zwischen den beiden Verbindungen unverändert weiter.
*Es ist ein Circuit-Level-Gateway, das einem angepassten Client-Ansatz folgt, was bedeutet, dass es Anpassungen und Modifikationen an der Client-Software erfordert
+
*Das Circuit-Level-Gateway analysiert oder verändert die übertragenen Daten nicht – es kennt das verwendete Anwendungsprotokoll nicht.
*Genauer gesagt erfordert SOCKS Änderungen entweder an der Client-Software oder am TCP/IP-Stack, um das Abfangen an der Firewall zwischen dem Client und dem Server zu ermöglichen:
+
*Dadurch ist die Implementierung einfacher als bei Application-Level-Gateways, die das Protokoll interpretieren können.
*Ein Client, der modifiziert wurde, um SOCKS-Interaktionen zu handhaben, wird allgemein als ˜ ˜socksifizierter Client bezeichnet.  
+
 
*Gemäß dieser Terminologie sind die meisten Webbrowser (z. B. Microsofts Internet Explorer) SOCKS-Clients und geben SOCKS-Aufrufe aus, die für ihre Benutzer transparent sind.
+
==Abgrenzung zum Application-Level-Gateway==
*Sockified TCP/IP-Stacks sind ebenfalls verfügbar, was die Notwendigkeit von Client-Software-Modifikationen überflüssig machen kann.
+
*Ein Application-Level-Gateway (ALG) versteht die verwendeten Anwendungsprotokolle (z. B. HTTP, SMTP, FTP) und kann die übertragenen Inhalte prüfen, filtern oder verändern.
*In beiden Fällen befindet sich der SOCKS-Server an der Firewall und interagiert mit den Socksified-Clients oder TCP/IP-Stacks.
+
*Ein Circuit-Level-Gateway hingegen leitet nur die TCP- oder UDP-Verbindung selbst weiter, unabhängig vom darüberliegenden Protokoll.
*Für die Server, die sich entweder im Internet oder im Intranet befinden können, sind keine weiteren Änderungen erforderlich.
+
*Damit bietet es eine gute Balance zwischen Sicherheit und Performance, jedoch ohne inhaltsbasierte Kontrolle.
 +
 
 +
==SOCKS als Beispiel==
 +
*Das bekannteste Circuit-Level-Gateway ist das Protokoll '''SOCKS'''.
 +
*SOCKS implementiert die Vermittlung von TCP-Verbindungen zwischen Client und Server über ein Gateway.
 +
*Dazu muss der Client für SOCKS angepasst („socksifiziert“) sein.
 +
*Ein '''socksifizierter Client''' ist in der Lage, SOCKS-Verbindungsaufrufe zu erzeugen, die über das Gateway laufen.
 +
*Viele Webbrowser (z. B. Firefox oder Microsoft Edge) unterstützen SOCKS nativ.
 +
*Alternativ können angepasste TCP/IP-Stacks verwendet werden, die SOCKS-Unterstützung systemweit bereitstellen.
 +
*Der SOCKS-Server selbst läuft meist auf einer Firewall und vermittelt Verbindungen zwischen internen Clients und externen Servern, ohne dass auf Serverseite Änderungen notwendig sind.
 +
 
 
=Quelle=
 
=Quelle=
*https://flylib.com/books/en/4.179.1.22/1/
+
*[https://flylib.com/books/en/4.179.1.22/1/ Flylib – Circuit-Level Gateway]

Aktuelle Version vom 4. November 2025, 20:47 Uhr

Gateways auf Leitungsebene

  • Ein Circuit-Level-Gateway (Schaltungsebene-Gateway) arbeitet auf der Transportebene (OSI-Schicht 4) und vermittelt TCP- oder UDP-Verbindungen zwischen zwei Netzwerken.
  • Im Wesentlichen handelt es sich dabei um einen Proxy-Server für TCP-Verbindungen.
  • Das Gateway übernimmt die Sitzungserstellung zwischen Client und Server, ohne in den Datenstrom auf Anwendungsebene einzugreifen.

Funktionsweise

  • Ein Client ist so konfiguriert, dass er seine Verbindungen über das Circuit-Level-Gateway aufbaut.
  • Wenn der Client eine TCP-Verbindung zu einem Zielserver öffnen möchte:
    • Das Gateway empfängt die Verbindungsanforderung vom Client.
    • Es kann den Benutzer oder den Client authentifizieren und autorisieren.
    • Es baut im Auftrag des Clients eine zweite TCP-Verbindung zum Zielserver auf.
  • Nach erfolgreichem Aufbau der zweiten Verbindung leitet das Gateway die Datenpakete zwischen den beiden Verbindungen unverändert weiter.
  • Das Circuit-Level-Gateway analysiert oder verändert die übertragenen Daten nicht – es kennt das verwendete Anwendungsprotokoll nicht.
  • Dadurch ist die Implementierung einfacher als bei Application-Level-Gateways, die das Protokoll interpretieren können.

Abgrenzung zum Application-Level-Gateway

  • Ein Application-Level-Gateway (ALG) versteht die verwendeten Anwendungsprotokolle (z. B. HTTP, SMTP, FTP) und kann die übertragenen Inhalte prüfen, filtern oder verändern.
  • Ein Circuit-Level-Gateway hingegen leitet nur die TCP- oder UDP-Verbindung selbst weiter, unabhängig vom darüberliegenden Protokoll.
  • Damit bietet es eine gute Balance zwischen Sicherheit und Performance, jedoch ohne inhaltsbasierte Kontrolle.

SOCKS als Beispiel

  • Das bekannteste Circuit-Level-Gateway ist das Protokoll SOCKS.
  • SOCKS implementiert die Vermittlung von TCP-Verbindungen zwischen Client und Server über ein Gateway.
  • Dazu muss der Client für SOCKS angepasst („socksifiziert“) sein.
  • Ein socksifizierter Client ist in der Lage, SOCKS-Verbindungsaufrufe zu erzeugen, die über das Gateway laufen.
  • Viele Webbrowser (z. B. Firefox oder Microsoft Edge) unterstützen SOCKS nativ.
  • Alternativ können angepasste TCP/IP-Stacks verwendet werden, die SOCKS-Unterstützung systemweit bereitstellen.
  • Der SOCKS-Server selbst läuft meist auf einer Firewall und vermittelt Verbindungen zwischen internen Clients und externen Servern, ohne dass auf Serverseite Änderungen notwendig sind.

Quelle