Don't understand german? Read or subscribe to my english-only feed.

Tunneln von Tor + Privoxy

Mein Internetzugang über den Virtuellen Campus Graz (VCG) stinkt dank der Einführung eines Intrustion Prevention Systems (IPS) von McAfee seitens der TU Graz ohne Ende. Nicht nur diverse Ports, sondern auch jeglicher Bittorrent-Traffic und sogar das Tor-Netzwerk werden gefiltert. Das betrifft übrigens nicht nur den VCG, sondern (teilweise) auch die TU Graz als Ganzes. Man bekommt nicht mal ein sauberes Reject, sondern lauft einfach in ein Timeout… gnaaaaah

Ich verwende schon seit Jahren diverse Tunnel um meine Infrastruktur möglichst kontrollierbar zu halten. Das inkludiert u.a. mein Mailsetup (bei dem ich mich nicht auf den Mailserver der TU Graz verlassen möchte). Da verwende ich mutt mit msmtp über einen SSH-Tunnel zu meinem Mailserver:

% grep sendmail ~/.mutt/settings
set sendmail="/usr/bin/msmtp"

% cat ~/.msmtprc
[...]
host localhost
port 9999

Und mit einem:

ssh -l mika -L 9999:$SERVER:25 $SERVER -N -f

steht dann der Tunnel fürs Mailen.

So, aber jetzt zurück zum Thema: ich brauch manchmal das Tor-/Privoxy-Setup. Was also machen? Ebenfalls tunneln halt. Dazu setze ich Privoxy und Tor auf $SERVER auf. /etc/privoxy/config sieht dabei wie folgt aus:

listen-address $SERVER_IP:8118
permit-access $CLIENT_IP # allow connections from client
permit-access $SERVER_IP # allow connections from server itself too (if wanted)
forward-socks4a            /     127.0.0.1:9050 .

Jetzt fehlt nur noch der Tunnel (ich stelle mit den Control*-Optionen sicher, dass nicht versehentlich ein existierender Connection-Socket genommen wird und der Tunnel dann nicht korrekt aufgebaut wird):

ssh -o "ControlMaster=no" -o "ControlPath=/dev/null" -l mika -L 1234:$SERVER_IP:8118 $SERVER_IP -N -f

HTTP_PROXY zeigt dann auf dem Client ($CLIENT_IP) auf http://localhost:1234/ und schon geht es dahin. Eklig? Ja, aber als Workaround für ein ekliges Netz tut es. Als nächsten Schritt möchte ich mir dann einmal das Tunneln von Bittorrent ansehen. (Empfehlungen in diese Richtung sind natürlich willkommen.)

9 Responses to “Tunneln von Tor + Privoxy”

  1. baboo Says:

    Also ich wuerd das nicht so umstanedlich mit ssh port forwarding machen, wuerd eher das ssh “vpn” feature nutzen, sollt in allen neuen versionen benutzbar sein, google is your friend, dann sollt torrent auch wieder gehen, aber leider geht der traffic wo anders rueber, aber naja wenigstens was ;)

    have phun
    axp

  2. mika Says:

    @baboo: Stimmt, das wollt ich mir eh mal genauer anschauen, danke für den Hint. Für meine aktuellen Zwecke passt der spezielle Tunnel wie oben beschrieben insofern besser, als dass der Eingriff in das Netzwerk-Setup nicht ganz so stark ist.

    mfg,
    -mika-

  3. nion Says:

    ach du scheisse, das ist ja wirklich eine blöde situation. ist sie wenigstens kostenlos? :)

  4. mika Says:

    @nion: ja klar, ist “Teil des Studentenheims”. War lange Zeit OK, aber in den letzten Monaten hat es sicher nur mehr verschlimmbessert… Wenn ich eine reelle Option für eine andere Connectivity hätte, wäre ich ja schon längst bei einem anderen Anbieter….

  5. Thomas Themel Says:

    SSH vpn Dingsda ist mir auch zu neumodisch, aber ich schreib’ die ganzen Parameter und Forwards mittlerweile in meine .ssh/config, dann kann man mit einem einfachen ssh host alles so haben, wie man will (und ein Host muss nicht ein DNS-Host sein, dafür gibts die HostName-Option).

  6. mika Says:

    @Thomas: jupp, mach ich auch so. Dank “Host *” kann man bestimmte Sachen auch gleich für alle SSH-Verbindungen übernehmen. :)

  7. Michi Says:

    @nion Die machen das bei DSL Verbindungen die über die Uni laufen auch so, und die kosten was und zwar gar nicht so wenig. Ich bin, glaube ich, eh der letzte Idiot der das noch verwendet. Nicht mehr lang allerdings…

  8. claus Says:

    Hi Mika,

    SSH Tunnel sind bei mir auch eine einfach und schnelle Möglichkeit zu tunneln, aber wenn du solche Restriktionen hast und sowie so einen “externen” Server zur Verfügung hast, dann benutze doch einfach openVPN und tunnel einfach “alles” über deinen Server.

    Grüße
    Claus

  9. mika Says:

    @claus: ja, das werd ich wohl auch machen, aber das ist halt ein größerer Eingriff in das Netzwerk-Setup und deswegen suche ich durchaus auch immer die Möglichkeit für selektive Tunnelsetups. :)