Um das zu tun, was Sie wollen, empfehle ich sshuttle .
Sie verwenden es wie folgt:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Es wird den gesamten TCP-Verkehr automatisch für Sie tunneln. Sie können das Argument --dns
hinzufügen, damit es auch Ihren DNS-Verkehr tunnelt. Auf dem entfernten Server muss nur Python installiert sein.
Wenn Sie nur bestimmte Programme tunneln wollen, würde ich proxychains empfehlen.
Sobald es installiert ist, starten Sie Ihren ssh-Socken-Proxy wie folgt:
ssh -fNTD 127.0.0.1:<local port> username@sshserver
Dies wird einen “SOCKS”-Proxy starten, der auf <lokalen Port> lauscht.
Bearbeiten Sie dann /etc/proxychains.conf, um auf denselben Port wie <local port> zu verweisen.
Starten Sie schließlich Ihr Programm, das Sie proxy-ed möchten, wie folgt:
proxychains <program name>
Es sollte einfach funktionieren. Einige wenige Programme haben jedoch Probleme mit Proxy-Ketten. Denken Sie auch daran, dass Sie bei Firefox zusätzliche Einträge unter about:config ändern müssen, um ihn zu zwingen, DNS-Lookups über den Proxy durchzuführen, anstatt ihn zu umgehen.
Als zusätzliche Anmerkung zu Webbrowsern. Wenn diese Socks-Proxys unterstützen, müssen Sie nichts Zusätzliches tun, um sie dazu zu bringen, den oben erwähnten ssh-Tunnel zu verwenden. Geben Sie einfach 127.0.0.1 für den SOCKS-Proxy-Server und den <local port> für den Proxy-Port ein.
EDIT 3/29/16
Da dieser Beitrag immer noch einige Upvotes erhält, dachte ich, ich aktualisiere ihn. Proxychains ist immer noch in den meisten Linux-Repos und funktioniert immer noch unter Linux. Allerdings ist das Projekt effektiv aufgegeben und funktioniert nicht unter OSX. Sowohl für Linux als auch für OSX empfehle ich dringend ein Upgrade auf einen noch gepflegten Fork: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Abgesehen davon, dass es sowohl unter Linux als auch unter OSX funktioniert, ist es einfach zu kompilieren und hat auch eine viel bessere Unterstützung für DNS-Tunneling.
Ich sollte noch eine weitere Option erwähnen, nämlich redsocks. Es funktioniert ähnlich wie proxychains(-ng) und befindet sich wahrscheinlich auch in Ihrem Dist-Repo: https://github.com/darkk/redsocks
EDIT 27.11.19 Wenn Sie den Weg über proxychains gehen, verwenden Sie bitte proxychains-ng. Es gibt einige schwerwiegende Fehlerkorrekturen gegenüber der Legacy-Version: https://github.com/rofl0r/proxychains-ng/issues/292