Circuit Level Proxy (generischer Proxy) Erklärung

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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