Um das zu tun, was Sie wollen, empfehle ich sshuttle.
Sie verwenden es wie folgt:
./sshuttle -r [email protected] 0.0.0.0/0 -vv
Es tunnelt Ihren gesamten TCP-Verkehr automatisch für Sie. Sie können den --dns
hinzufügen Argument dafür, dass es auch Ihren DNS-Verkehr tunnelt. Auf dem Remote-Server muss lediglich Python installiert sein.
Wenn Sie nur bestimmte Programme tunneln möchten, würde ich Proxychains empfehlen.
Sobald es installiert ist, starten Sie Ihren SSH-Socks-Proxy wie folgt:
ssh -fNTD 127.0.0.1:<local port> [email protected]
Dadurch wird ein "SOCKS"-Proxy gestartet, der auf
Bearbeiten Sie dann /etc/proxychains.conf so, dass es auf denselben Port wie
socks5 127.0.0.1 <localport>
Starten Sie schließlich Ihr Programm, das Sie per Proxy ausführen möchten, wie folgt:
proxychains <program name>
Es sollte einfach funktionieren. Einige Programme werden jedoch Probleme haben, mit Proxy-Ketten zu arbeiten. Denken Sie auch daran, dass Sie bei Firefox zusätzliche Elemente unter about:config ändern müssen, um es zu zwingen, DNS-Lookups über den Proxy durchzuführen, anstatt ihn zu umgehen.
Als zusätzlicher Hinweis auf Webbrowser. Wenn sie SOCKS-Proxys unterstützen, müssen Sie nichts weiter tun, damit sie den oben genannten SSH-Tunnel verwenden. Geben Sie einfach 127.0.0.1 für den SOCKS-Proxy-Server und den
BEARBEITEN 29.03.16
Da dieser Beitrag immer noch einige positive Stimmen erhält, dachte ich, ich würde ihn aktualisieren. Proxychains ist immer noch in den meisten Linux-Repos und funktioniert immer noch unter Linux. Das Projekt wird jedoch 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 bietet auch eine viel bessere Unterstützung für DNS-Tunneling.
Ich sollte auch eine andere 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
BEARBEITEN 27.11.19 Wenn Sie die Proxychains-Route wählen, verwenden Sie bitte proxychains-ng. Es gibt einige schwerwiegende Fehlerkorrekturen gegenüber der Legacy-Version, wie zum Beispiel:https://github.com/rofl0r/proxychains-ng/issues/292
man ssh
gibt genau dafür ein Beispiel. Ein ssh-basiertes VPN:
SSH-BASED VIRTUAL PRIVATE NETWORKS
ssh contains support for Virtual Private Network (VPN) tunnelling using
the tun(4) network pseudo-device, allowing two networks to be joined
securely. The sshd_config(5) configuration option PermitTunnel controls
whether the server supports this, and at what level (layer 2 or 3 traf-
fic).
The following example would connect client network 10.0.50.0/24 with
remote network 10.0.99.0/24, provided that the SSH server running on the
gateway to the remote network, at 192.168.1.15, allows it:
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.0.50.1 10.0.99.1 netmask 255.255.255.252
~~ schnipsen ~~
Since a SSH-based setup entails a fair amount of overhead, it may be more
suited to temporary setups, such as for wireless VPNs. More permanent
VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).
Sobald Sie diese neue Schnittstelle eingerichtet haben, müssen Sie sie nur noch zur Standardroute machen, was eine andere Frage ist.
Suchen Sie in ssh nach der Option "Tunnel". Dadurch wird ein Tunnelgerät erstellt, dem Sie eine IP-Adresse zuweisen können, und dann ändern Sie die Standardroute so, dass dieser Tunnel verwendet wird.