TSocks als Proxy-Wrapper für Programme

Um aus meinem Homeserver einen kleinen Online-VDR zu machen war es für mich wichtig eine britische IP-Adresse in einer ganz bestimmten Anwendung zu erhalten. Die Anwendung selbst kann allerdings nur einen HTTP-Proxy benutzen, den ich nicht unbedingt einrichten wollte. Ich wollte dafür viel lieber den Socks5-Proxy nutzen, den SSH (autossh -D9900 host) lokal aufspannt und wodurch eine verschlüsselte Übertragung bei keinem zusätzlichen Dienst am Server genutzt wird.

Schließlich habe ich in einem Forum die passende Lösung gefunden. Zunächst muss tsocks („a transparent SOCKS proxying library“) installiert werden:

apt-get install tsocks

Dann verwende ich den vom User gewählten weg über ein Script mit folgendem Inhalt. der libtsocks Pfad sollte natürlich angepasst werden. In meinem Fall unter Debian Squeeze ist der Inhalt folgender:

#!/bin/bash
#export TSOCKS_DEBUG=255
export TSOCKS_DEBUG=1
export LD_PRELOAD=/usr/lib/libtsocks.so.1.8
$*
exit $?

Das Script wird gespeichert als tswrap und anschließend ausführbar gemacht mit chmod +x tswrap. Dann sollte der Inhalt der Konfigurationsdatei /etc/tsocks.conf angepasst werden wie folgt:

local = 127.0.0.0/255.0.0.0
server_type = 5
server = 127.0.0.1
server_port = 9900

Wenn der Tunnel nun läuft kann die gewünschte Anwendung durch den Proxy getunnelt ausgeführt werden wie z.B folgendermaßen (Parameter sind auch möglich):

./tswrap get-iplayer -g 134

Viel Spaß beim ausprobieren.