it-swarm.com.de

Wie kann ich meinen gesamten Netzwerkverkehr durch SSH tunneln?

Immer wenn ich das Internet von einem unsicheren Ort aus nutze (z. B. öffentliches WLAN), benutze ich gerne einen SSH-Tunnel (ssh -D port Host), um sicherzustellen, dass mein Datenverkehr nicht abgehört wird. Leider scheint es viele Anwendungen zu geben, die keine Möglichkeit bieten, einen Proxy anzugeben (Flash ist ein wichtiges Beispiel).

Es scheint, dass es eine Möglichkeit geben sollte, einen Tunnel für den gesamten Netzwerkverkehr von meinem Computer aus zu verwenden, aber ich weiß überhaupt nicht, wie das geht. Jede Hilfe wäre sehr dankbar.

111
Guest

Um zu tun, was Sie wollen, empfehle ich sshuttle .

Du benutzt es so:

./sshuttle -r [email protected] 0.0.0.0/0 -vv

Der gesamte TCP Datenverkehr wird automatisch für Sie getunnelt. Sie können das Argument --dns hinzufügen, damit es auch Ihren DNS-Verkehr tunnelt. Auf dem Remote-Server muss nur Python installiert sein.

Wenn Sie nur bestimmte Programme tunneln möchten, würde ich empfehlen, Proxy-Ketten .

Sobald es installiert ist, starte deinen ssh socks Proxy wie folgt:

ssh -fND 127.0.0.1:<local port> [email protected]

Dies startet einen "SOCKS" -Proxy, der <lokalen Port> überwacht.

Bearbeiten Sie dann /etc/proxychains.conf, um auf denselben Port wie <lokaler Port> zu verweisen.

Starten Sie schließlich Ihr Programm, das Sie als Proxy-Server verwenden möchten:

proxychains <program name>

Es sollte einfach funktionieren. Einige Programme haben jedoch Probleme mit der Arbeit mit Proxy-Ketten. Beachten Sie auch, dass Sie in Firefox unter about: config zusätzliche Elemente ändern müssen, um zu erzwingen, dass DNS-Suchen über den Proxy durchgeführt werden, anstatt ihn zu umgehen.

Als zusätzliche Anmerkung zu Webbrowsern. Wenn sie Socks-Proxys unterstützen, müssen Sie keine zusätzlichen Schritte ausführen, um sie zur Verwendung des oben genannten SSH-Tunnels zu veranlassen. Geben Sie lediglich 127.0.0.1 für den SOCKS-Proxyserver und den <lokalen Port> für den Proxy-Port ein.

EDIT 29.03.16

Da in diesem Beitrag noch einige positive Stimmen zu finden sind, dachte ich, ich würde es aktualisieren. Proxychains ist immer noch in den meisten Linux-Repos enthalten und funktioniert immer noch unter Linux. Das Projekt wird jedoch effektiv abgebrochen und funktioniert unter OSX nicht. Für Linux oder OSX empfehle ich dringend, ein Upgrade auf einen noch gewarteten Fork durchzuführen: 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 eine viel bessere Unterstützung für das DNS-Tunneling.

Ich sollte auch eine andere Option erwähnen, nämlich Redsocks. Es funktioniert ähnlich wie Proxy-Ketten (-ng) und befindet sich wahrscheinlich auch in Ihrem Distributionsverzeichnis: https://github.com/darkk/redsocks

56
shellster

man ssh gibt ein Beispiel dafür. 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

~~ snip ~~

     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 Benutzeroberfläche eingerichtet haben, müssen Sie sie lediglich als Standardroute festlegen, was eine andere Frage ist.

48
PriceChild

Suchen Sie in ssh nach der Option "Tunnel". Dadurch wird ein Tunnelgerät erstellt, dem Sie eine IP-Adresse zuweisen können. Anschließend ändern Sie die Standardroute, um diesen Tunnel zu verwenden.

6

Ich habe eine Software entwickelt, mit der Sie alle TCP und optional UDP über einen SOCKS5-Proxy systemweit weiterleiten können.

http://code.google.com/p/badvpn/wiki/tun2socks

Es kann sogar auf einem Router installiert werden, um alle Verbindungen von Computern im LAN weiterzuleiten.

4
Ambroz Bizjak