SOCKS

SOCKS

Das SOCKS-Protokoll ist ein Internet-Protokoll, das Client-Server-Anwendungen erlaubt, protokollunabhängig und transparent die Dienste eines Proxyservers zu nutzen. SOCKS ist eine Abkürzung für „SOCKetS“.

Clients hinter einer Firewall, die eine Verbindung zu einem externen Server aufbauen wollen, verbinden sich stattdessen zu einem SOCKS-Proxy. Dieser Proxyserver überprüft die Berechtigung des Clients, den externen Server zu kontaktieren, und leitet die Anfrage an den Server weiter.

Das SOCKS-Protokoll wurde ursprünglich von NEC entwickelt (SOCKS 4). Die aktuelle Version 5 des Protokolls, wie beschrieben in RFC 1928, erweitert die vorherigen Versionen um Unterstützung für UDP, Authentifizierung, Namensauflösung am SOCKS-Server und IPv6.

Im OSI-Schichtmodell ist es eine Zwischenschicht zwischen der Anwendungsschicht und der Transportschicht.

Inhaltsverzeichnis

Das SOCKS-4-Protokoll

Eine typische SOCKS-4-Verbindungsanfrage sieht wie folgt aus (jede Nummer ist ein Byte):

Client: 4 1 0 80 66 102 7 99 0

(4 ist die SOCKS-Version, 1 ist die Verbindungsanfrage, 0 80 ist der Port, 66 102 7 99 die IP-Adresse, zu der sich der Client verbinden möchte, 0 wenn kein Benutzername verwendet wird)

Server: 0 90 0 80 66 102 7 99

(0 90 bedeutet, dass die Anfrage angenommen wurde, 0 80 ist der Port, 66 102 7 99 die IP-Adresse, zu der die Verbindung aufgebaut wurde)

Danach werden alle Daten, die der Client an den SOCKS-Proxy schickt, an 66.102.7.99 weitergeleitet. Umgekehrt werden alle Daten von 66.102.7.99 an den SOCKS-Proxy gesendet, welcher sie an den Client weiterleitet.

Das SOCKS-5-Protokoll

Auswahl der Authentifizierung

Anders als bei SOCKS 4 wird vor der eigentlichen Verbindungsanfrage eine „version identifier/method selection message“ gesendet. Diese Nachricht enthält verschiedene Authentifizierungsmethoden, die der Client akzeptiert und von denen sich der Server eine zur Verwendung aussucht. Dies sieht so aus (die Zahlen geben die Anzahl der Bytes an):

VER NMETHODS METHODS
1 1 1 to 255

VER wird auf die Version, also 0x05, gesetzt.
NMETHODS gibt die Anzahl der vorgeschlagenen Authentifizierungsmethoden an.
METHODS sind dann schließlich die vorgeschlagenen Authentifizierungsmethoden. Es gibt folgende Möglichkeiten:

Byte Bedeutung Erklärung
0x00 NO AUTHENTICATION REQUIRED Keine Authentifizierung benötigt
0x01 GSSAPI GSSAPI, siehe RFC 2743. Genutzt u. a. von Kerberos.
0x02 USERNAME/PASSWORD Authentifizierung mit Benutzername und Passwort
0x03 bis 0x7F IANA ASSIGNED Werden von der IANA vergeben
0x80 bis 0xFE RESERVED FOR PRIVATE METHODS Für nicht öffentliche Methoden reserviert
0xFF NO ACCEPTABLE METHODS Keine akzeptable Methode

Der Server akzeptiert daraufhin eine der vorgeschlagenen Authentifizierungsmethoden:

VER METHOD
1 1

VER ist die Version, also wieder 0x05.
METHOD ist die akzeptierte und damit verwendete Methode. 0xFF bedeutet: Keine Methode ist akzeptabel und der Client muss die Verbindung trennen.

Die Verbindungsanfrage

Sie sieht bei SOCKS5 so aus:

VER CMD RSV ATYP DST.ADDR DST.PORT
1 1 X'00' 1 Variable 2

VER ist wieder die Version, 0x05.
CMD ist der Befehl, den der Server ausführen soll:

  • 0x01: Eine TCP-Verbindung aufbauen
  • 0x02: Eine TCP-Verbindung entgegennehmen, d. h. einen Server öffnen.
  • 0x03: Eine UDP-Weiterleitung einrichten

RSV ist reserviert und muss 0x00 sein.
ATYP ist der Typ der Zieladresse:

  • 0x01 für eine IPv4-Adresse
  • 0x03 für einen Domainnamen
  • 0x04 für eine IPv6-Adresse

DST.ADDR ist die Zieladresse.

  • 4 Bytes bei ATYP 0x01
  • 1 Byte + Länge der Domain in Bytes (erstes Byte stellt die Länge der Domain dar) bei ATYP 0x03
  • 16 Bytes bei ATYP 0x04

DST.PORT ist der Zielport.

  • Umrechnung der Portnummer in Zahlenbasis 256
  • Erstes Byte = Portnummer / 256 (abrunden auf ganze Zahl (Highbyte))
  • Zweites Byte = Portnummer modulo 256 (Lowbyte)

Die Antwort des Servers sieht genauso aus. Der einzige Unterschied ist, dass CMD in REP (reply), d. h. Antwort, umbenannt wird. Folgende Werte sind für REP erlaubt:

Byte Bedeutung Erklärung
0x00 succeeded Verbindung erfolgreich hergestellt
0x01 general SOCKS server failure Serverfehler
0x02 connection not allowed by ruleset Verbindung wegen der Serverkonfiguration nicht erlaubt.
0x03 Network unreachable Das Zielnetzwerk ist nicht erreichbar
0x04 Host unreachable Der Zielhost ist nicht erreichbar
0x05 Connection refused Verbindung abgelehnt
0x06 TTL expired Zielrechner zu weit entfernt
0x07 Command not supported CMD der Anfrage wird nicht unterstützt
0x08 Address type not supported ATYP der Anfrage wird nicht unterstützt
0x09 bis 0xFF unassigned Nicht vergeben

SOCKS-Server

Liste von SOCKS-Servern:

SOCKS-Clients/SOCKS-Wrapper

Es existieren Programme, die es anderen Programmen ermöglichen, externe Netzwerke über SOCKS zu erreichen, ohne dass sie spezielle Unterstützung dafür mitbringen müssen:

Liste von SOCKS-Clients:

Weblinks

  • RFC 3089 – Ein SOCKS-basierender IPv4/IPv6-Gateway-Mechanismus
  • RFC 1961 – GSS-API-Authentifizierungsmethode für SOCKS V5
  • RFC 1929 – Benutzername/Passwort-Authentifizierung für SOCKS V5
  • RFC 1928 – SOCKS-Protokoll Version 5

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • SOCKS — is an Internet protocol that allows client server applications to transparently use the services of a network firewall. SOCKS is an abbreviation for SOCKetS [ [http://www.hummingbird.com/products/nc/socks/faq.html#stand Hummingbird SOCKS FAQ] ]… …   Wikipedia

  • SOCKS — Saltar a navegación, búsqueda SOCKS es un protocolo de Internet que permite a las aplicaciones Cliente servidor usar de manera transparente los servicios de un firewall de red. SOCKS es una abreviación de SOCKetS [1]. Los clientes que hay detrás… …   Wikipedia Español

  • SOCKS — сетевой протокол, который позволяет клиент серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS это сокращение от «SOCKet Secure». Содержание 1 Введение 2 Протокол SOCKS 4 3 Проток …   Википедия

  • Socks — сетевой протокол, который позволяет клиент серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS это сокращение от «SOCKetS» (сокеты, гнёзда). Клиенты за межсетевым экраном, нуждающиеся в доступе к… …   Википедия

  • Socks — im Briefing Room des Weißen Hauses Betty Currie und Socks …   Deutsch Wikipedia

  • Socks — sobre el pupitre de la Sala de Prensa de la Casa Blanca. Socks (en español: Calcetines, marzo de 1989 20 de febrero de 2009) fue el gato de la familia del Presidente de los Estados Unidos Bill Clinton durante su presidencia. Fue la única mascota… …   Wikipedia Español

  • SOCKS —   [Abk. für Socket Secure Server], ein spezielles Proxy Protokoll, das einem Rechner im »internen Netzwerk« den Zugriff auf Ressourcen im »externen Netzwerk« (z. B. über Internet bzw. TCP/IP Dienste wie ftp, Telnet oder WWW) ermöglicht, ohne dass …   Universal-Lexikon

  • SOCKS — Pour les articles homonymes, voir Socks (homonymie). Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Socks — Pour les articles homonymes, voir Socks (homonymie). Socks sur le pupitre de la Salle de presse de la Maison Blanche. Socks (mars 1989 20 février …   Wikipédia en Français

  • SOCKS —    A proxy protocol that provides a secure channel between two TCP/IP (Transmission Control Protocol/Internet Protocol) systems, usually a Web browser running on an internal corporate intranet and a Web server on the Internet.    SOCKS provides… …   Dictionary of networking

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”