Hier habe ich erklärt wie man durch einen SSH tunnel (mithilfe eines SOCKS Proxy) sicher (und bequem), über einen unsicheren Kanal, surfen kann.
Das ist ja schon mal ganz schick, solange sich unsere Applikationen Native mit einem SOCKS Proxy unterhalten können.
Ist das aber nicht der Fall ist das etwas doof.
Da kommt Tsocks ins Spiel.
Das, schon etwas ältere Programm (das letzte release ist vom 2002-10-23 21:02 ), basiert auf dem “shared library interceptor” konzept, das bedeutet vereinfacht das tsock die “connect()” C funktion abfängt und mit seiner Eigenen überschreibt.
Tsocks bestimmt dann anhand der Einstellungen in der “/etc/tsocks.conf” (bzw. wohin auch immer $TSOCKS_CONF_FILE zeigt) ob die Verbindung über den SOCKS Proxy geleitet werden soll, also über die Tsocks eigene “connect()” Funktion, oder über die “normale”, welche in <sys/socket.h> bereitgestellt wird.
Dadurch agiert Tsocks quasi als ein “Wrapper”.
Zum Verständnis mal ein Beispiel (ich gehe davon aus das ihr einen SSH SOCKS Tunnel anhand dem HOWTO auf Port 8080 aufgebaut habt, ansonsten natürlich anpassen!!):
Inhalt von /etc/tsocks.conf:
server = 127.0.0.1
server_port = 8080
Falls ihr kein root Zugriff habt, könnt ihr die ganze Schose natürlich auch in eurem HOME speichern.
export TSOCKS_CONF_FILE=$HOME/.tsocks.conf # Exportiere config file pfad, damit er dem Programm bekannt ist
Inhalt von $HOME/.tsocks.conf:
server = 127.0.0.1
server_port = 8080
Beispiel ohne Tsocks:
$ telnet ip.hansis-braindump.de 80
Trying 87.230.15.76...
Connected to ip.hansis-braindump.de.
Escape character is '^]'.
GET /index.php?X=123 HTTP/1.1
Host: ip.hansis-braindump.de
HTTP/1.1 200 OK
Date: Wed, 16 Jul 2008 10:17:48 GMT
Server: Apache
X-Powered-By: PHP/4.4.4-8+etch6
Content-Length: 40
Content-Type: text/html charset=ISO-8859-1
155.56.xx.xx
155.56.xx.xx
Hier komme ich also direkt!
Beispiel mit Tsocks:
$ tsocks telnet ip.hansis-braindump.de 80
Trying 87.230.15.76...
Connected to ip.hansis-braindump.de.
Escape character is '^]'.
GET /index.php?X=123 HTTP/1.1
Host: ip.hansis-braindump.de
HTTP/1.1 200 OK
Date: Wed, 16 Jul 2008 10:17:48 GMT
Server: Apache
X-Powered-By: PHP/4.4.4-8+etch6
Content-Length: 40
Content-Type: text/html charset=ISO-8859-1
87.230.15.76
hansis-braindump.de
Hier komme ich über hansis-braindump.de
Weitere Beispiele:
tsocks dog http://www.google.com
tsocks netcat example.com 80
tsocks irssi -c irc.freenode.net -p 6667
Viel Spass
Keks