SSH SOCKS Proxy: Per IPTables alles (HTTP) durch den SOCKS leiten?

Pablo Escobar

New Member
Hi, ich möchte gerne einen SSH SOCKS Proxy erstellen und dann allen anfallenden HTTP Traffic durch diesen Proxy leiten.
Meine Distribution ist Ubuntu 9.10.

Also ich habe einen SSH SOCKS Proxy erstellt mit
sudo ssh -fND 8080 root@domain.com
Wenn ich jetzt in Firefox den SOCKS Proxy auf "127.0.0.1:8080" stelle funktioniert das Perfekt, der Traffic geht durch den Proxy.


Jetzt möchte ich allerdings lokal den ganzen HTTP Traffic mit IPTables auf den SSH Proxy umleiten, so dass ich in Firefox keinerlei Einstellungen tätigen muss, wie muss ich da vorgehen?

Folgendes habe ich schon probiert, leider ohne Erfolg:
iptables -A PREROUTING -j DNAT -t nat -p tcp --dport 80 --to 127.0.0.1:8080


Und wenn ich eine von diesen Regeln anwende kriege ich einen Downloaddialog für jede Seite die ich aufrufe (der Download lädt dann nur eine leere Datei):
iptables -A OUTPUT -j DNAT -t nat -p tcp --dport 80 --to 127.0.0.1:8080

iptables -A OUTPUT -j REDIRECT -t nat -p tcp --dport 80 --to-port 8080


Kann mir da Jemand helfen, was mache ich falsch?

lg
 
Semantisch richtig wäre Dein 3. Versuch. Aber Dein Vorhaben kann nicht gelingen, weil Du einen kleinen Denkfehler machst:
Mit ssh -D erzeugst Du einen lokalen Socks Proxy, wenn Du aber Http Traffic transparent umlenken willst brauchst Du auch einen Http Proxy.

So wie Du oben geschrieben hast werden zwar deine Pakete umgelenkt, der Socks weiss aber überhaupt nichts mit dem Http-Request anzufangen.

Als mögliche Lösung müsstest Du bspw. noch einen Http Proxy vor den Socks schalten, der in der Lage ist den Traffic über einen Socks rauszuschicken. Dann müsstest Du nur einmal den Http Proxy auf Socks konfigurieren, und alle Anwendungen würden durch die iptables Regel umgelenkt.

Gruss
 
Das ist mir auch schon in den Sinn gekommen, also habe ich mal einen Squid dazwischen geschaltet mit diesen Parametern in der squid.conf:

cache_peer 127.0.0.1 parent 8080 0 no-query default
never_direct allow all


Leider hat das auch nicht funktioniert:
The HTTP Response message received from the contacted server could not be understood or was otherwise malformed. Please contact the site operator.
 
Last edited by a moderator:
Soweit ich weiss, kann Squid oft kein Socks, sei denn es wurde mit "-Dbind=SOCKSbind" kompiliert.

Daher habe ich schnell mal mit privoxy getestet, damit gehts einwandfrei.
Diese Einstellungen habe ich bei privoxy hinzugefügt:
Code:
forward-socks5  127.0.0.1:1234 .
accept-intercepted-requests 1

Und natürlich den redirect:
Code:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8118

Gruss
 
Last edited by a moderator:
Back
Top