GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich meinen gesamten Netzwerkverkehr über SSH tunneln?

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 lauscht.

Bearbeiten Sie dann /etc/proxychains.conf so, dass es auf denselben Port wie zeigt:

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 für den Proxy-Port ein.

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.


Linux
  1. Linux – Wie leitet man Datenverkehr zwischen Linux-Netzwerk-Namespaces weiter?

  2. Wie kann ich andere Container in einem Docker-Netzwerk über ihren Hostnamen anpingen?

  3. Wie kann ich alle IPs im verbundenen Netzwerk auflisten, vorzugsweise über Terminal?

  4. Wie finde ich verfügbare Netzwerkschnittstellen?

  5. Wie richte ich einen SSH-Tunnel ein, um SSH weiterzuleiten?

Wie funktioniert SSH?

Ssh – Wie funktioniert Reverse-SSH-Tunneling?

Wie kann ich alle vhosts in nginx auflisten

Wie kann ich SSH mit einem SOCKS 5-Proxy verwenden?

Führen Sie den gesamten Datenverkehr nur für einen bestimmten Netzwerk-Namespace durch OpenVPN

SSH-Verbindung über einen Reverse (Remote) SSH-Tunnel