IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Server/Internet/Netzwerk - SOCKS



SOCKS

Diese Anleitung erklärt wozu SOCKS dient und wie es konfiguriert wird.


Autor: ()
Datum: 20-07-2004, 20:02:57
Referenzen: Das Firewall Buch - SuSe Press
Schwierigkeit: Fortgeschrittene
Ansichten: 7679x
Rating: 7 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Allgemeines:

SOCKS ist ein Protokoll für einen indirekten Zugriff (wie über einen Proxy) auf diverse Ressourcen: der Client stellt dabei eine Anfrage (in der Applikationsschicht) an den SOCKS-Server, welcher daraufhin die connect-Anfrage und an den SOCKS-Proxy-Server leitet und mit der eigenen IP die Anfrage an den eigentlichen Server schickt.

Proxys, welche via SOCKS implementiert sind, arbeiten immer nur auf der Ebene des Transport Layers (mit wenigen Ausnahmen). So sind Content-Entscheidungen von Proxy unbetroffen.

SOCKS selbst ist aber zwischen Anwendungs und Transport Layer angesiedelt. Nach Anpassung der Clients kann man mittels der C-Library und der SOCKS-Library, sodass der Verbindungsaufbau- und Netzwerk-Kommunikations-Routinen auf SOCKS abgestimmt sind, eine Verbindung mittels SOCKS aufbauen.

SOCKS V4:

Das war die erste verfügbare Version, welche auf ausschließlich der TCP-Basis agierte. So wurde von SOCKS V4 nur der Header und nicht der ganze Inhalt benutzt. So war der damalige SOCKS-Server nicht in der Lage eine DNS-Lookup vorzunehmen und der Client musste dies selbst übernehmen (was sich allerdings später mit einer Erweiterung beheben ließ).

SOCKS V5:

Neben den Standard-Erweiterungen wurden auch diverse andere Verbesserungen vorgenommen:
  • Authentication Method Negotiation<
    Der Server teilt dem Client die Authentifikationsmethode mit, welche er verlangt. Kann sich der Client nicht identifizierenden bzw. keine der Methoden verwenden, so wird die Verbindung abgebrochen.
  • Address Resolution Proxys
    Implementierung eines DNS-Proxys in den SOCKS-Server.
  • UDP Proxy
    Implementation von dem UPD-Protokoll.
  • Generic Security Service Application Programmin Interfac
    Es erlaubt durch starke Authentifikation VPN über SOCKS zu implementieren.
Dante:

Dies ist eine SuSe-Implementierung von SOCKS V5. Dantes zentrale Konfigurations-Datei ist dabei /etc/sockd.conf und unterteilt sich in 2 Abschnitte:
  1. Einstellungen für die Kommunikation zwischen Client und SOCKS-Server und
  2. Einstellungen für die Kommunikation zwischen Client und dem eigentlichen Server.
Dante-Konfiguration

Socks-Server:

Die zentrale Konfigurationsdatei ist /etc/dante.conf. Die Konfigruation kann grob unterteilt werden in die Abschnitte Servereinstellung, Regeln für die Verbindung zwischen Client und SOCKS-Server und Regeln für die Verbindung zwischen Client und dem eigentlichen Zielserver.

############### Serverabschnitt-Start ############### 

#Standartausgabe 
logoutput: stderr

#Der Server wird an diese Adresse und diesen Port angebunden.
#Er wird Verbindungen nur dann annehmen, wenn sie an diese Adresse gerichtet sind.
internal: 10.1.1.1 port = 1080

#Alle rausgehenden Verbindungen dieses Servers werden diese IP nutzen.
external: 192.168.1.1

#Authentifizierungsmethode.
mode: username rfc931 none

#Wird ausgeführt, wenn der User privilegiert ist.
user.privileged: sockd

#Falls nicht privilegiert.
user.noprivileged: sockd

#Falls Anwendung mit libwrap kompiliert wurde. Welche User-ID soll er nutzen.
user.libwrap: libwrap

#Zeitspanne (in Sekunden) zwischen Connection und Senden der Requests bis Timeout.
connecttimeout: 30

#Zeispanne (in Sekunden) von ausbleibendem Traffic zwischen Server und Client
#nach der Timeout eintrifft. 0 steht für unendlich.
iotimeout: 0

#Eintrag entscheidet über Verbindungen von Adressen ohne DNS-Info.
srchost: nounknown nomismatch

############### Serverabschnitt-Ende ############### 


############### Clientabschnitt-Start ############### 

#Regel die festlegt, ob der Verbindungsaufbau zum Proxy erlaubt ist
#(Client aus Bereich 10.0.0.0/8). Clients, welche über eine Iden-Anfrage User ausweisen,
#der im Password-File des SOCKS-Servers bekannt ist.
client pass {
 from: 10.0.0.0/8 port 1-65535 to: 0.0.0.0/0
 method rfc931 
}

#Restliche Verbindungen werden abgelehnt.
client block {
 from: 0.0.0.0/0 to: 0.0.0.0/0
 log: connect error
}

############### Serverabschnitt-Ende ###############


############### Zielhostabschnitt-Start ############### 

#Erlaubt Verbindungsaufbau bei dem sich der User authentifizieren muss.
pass {
 from: 10.0.0.0/8 to: .example.com port = http
 log: connect errot
 method: username
}

#Block Rest
block {
 from: 0.0.0.0/0 to: 0.0.0.0/0
 log: connect error
} 

############### Zielhostabschnitt-Ende ###############

SOCKS-Client-Host:

Diese Einstellungen müssen auf jedem Client-Host vorgenommen werden.

############### Allgemein-Start ############### 

#Welche bzw. welches Protokoll muss um Hostnamen aufzulösen
resolveprotocol: udp

############### Allgemein-Ende ############### 


############### Routing-Start ############### 

#Routing via Proxy, wobei 10.1.1.1 der locale Nameserver ist.
route {
 from: 0.0.0.0/0 to: 10.1.1.1/32 port = domain via: direct
}

#Verbindungen zum localen Interface sollen direct erfolgen.
route {
 from: 0.0.0.0/0 to: 10.0.0.0/8 via: direkt
}

############### Routing-Ende ###############
Allgemeines:

Dies ist die Abkürzung für das TIS-Firewall-Toolkit, welches ein Application-Proxy-Paket darstellt, welches aus folgenden Komponenten besteht:
  • Netacl
    Ein TCP-Wrapper, welcher abhängig vom Zugriff entweder Dienst erlaubt oder den Proxy startet. Zusätzlich bietet er die Möglichkeit einen Dienst in einer chroot zu starten.
  • Telnet-Gateway
  • FTP-Gateway
  • Rlogin-Gateway
  • HTTP-Gateway
  • X-Gateway
    Ein Application-Gateway, welcher auf den jeweiligen Dienst zugeschnitten ist.
  • SMTP-Gateway
    Application-Gateway für SMTP, basierend auf den Store-and-Forward Prinzip.
  • Plug-Gateway
    Generischer Proxy, mit welchem man Dienste abdecken kann, bei welchen kein applikationsspezifischer Proxy mitgeliefert wurde.
Konfiguration:

Die Hauptkonfigurationsdatei ist netperm-table, welche sich im /etc/ Ordner befinden kann, wobei eine Konfiguration wie folgt aussehen kann:

# Konfiguration des MAIL Gateways
smap, smapd: userid uucp
smap, smapd: directory /spool/mail/smap
smapd: baddir /spool/mail/smap/badmails
smapd: executable /usr/local/bin/smapd
smapd: sendmail /usr/lib/sendmail
smap: timeout 3600
smap: maxbytes 1048576

# Konfiguration des FTP Gateways
ftp-gw: timeout 900
ftp-gw: deny-hosts unknown
ftp-gw: permit-hosts 192.168.1.* -dest * -authall -log { retr stor }

# Konfiguration des TELNET Gateways
tn-gw: timeout 90
tn-gw: permit-hosts 192.168.1.* -passok -xok

# Konfiguration des NEWS tcp channels
plug-gw: timeout 900
plug-gw: port nntp 192.168.1.* -plug-to news.insecure.zone.de

# Konfiguration des AUTH Servers
authsrv: hosts 127.0.0.1
authsrv: database /usr/local/etc/fw-authdb
authsrv: badsleep 259200

# clients using the auth server
*: authserver 127.0.0.1 7777
Um nun die Clients zu konfigurieren muss ihnen mittels des davorgestellem Kommandos socksify gesagt werden, dass sie diesen Proxy nutzen sollten. So z.B. bei telnet:

socksify telnet 192.168.254.10
Der einfachere Weg wäre da das sourcen der Variable LD_PREALOAD mit source socksify oder das einbinden dieses Kommandos in die Profile-Datei des Users, wobei Clients, welche mit SID oder GID kompiliert wurden, neukompiliert werden müssen.


ensoniq2k
Junior-Member
Beitrag vom:
22-07-2004, 16:02:45

Nix für Noob's

Ich raff das nicht wirklich, aber was ich raffe ist gut geschrieben, gehts aber nicht ein bisschen einfacher?

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1157
Comments: 0