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 beschnüffelt werden kann. 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.
Antworten:
Um zu tun, was Sie wollen, empfehle ich sshuttle .
Du benutzt es so:
Der gesamte TCP-Verkehr wird automatisch für Sie getunnelt. Sie können das
--dns
Argument hinzufügen, damit der DNS-Verkehr ebenfalls getunnelt wird. Auf dem Remote-Server muss nur Python installiert sein.Wenn Sie nur bestimmte Programme tunneln möchten, würde ich Proxy-Ketten empfehlen .
Sobald es installiert ist, starte deinen ssh socks Proxy wie folgt:
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:
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-Suchvorgänge über den Proxy ausgefü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 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 dist-Repository: https://github.com/darkk/redsocks
quelle
sshuttle -r root@host -x host 0/0
man ssh
gibt ein Beispiel dafür. Ein ssh-basiertes VPN:~~ snip ~~
Sobald Sie diese neue Benutzeroberfläche eingerichtet haben, müssen Sie sie lediglich als Standardroute festlegen, was eine andere Frage ist.
quelle
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.
quelle
Ich habe eine Software entwickelt, mit der Sie TCP und optional UDP systemweit über einen SOCKS5-Proxy 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.
quelle
SSH-BASIERTE VIRTUELLE PRIVATE NETZWERKE ssh unterstützt VPN-Tunneling (Virtual Private Network) unter Verwendung des Netzwerk-Pseudogeräts tun (4), sodass zwei Netzwerke sicher verbunden werden können. Die Konfigurationsoption sshd_config (5) PermitTunnel steuert, ob und auf welcher Ebene der Server dies unterstützt (Layer 2- oder 3-Verkehr).
quelle
Ich wollte nur klären, dass (ssh -D Port Host) kein 100% sicherer Weg ist, um den Datenverkehr nicht zu schnüffeln. Das Hinzufügen von (ssh -D -c Blowfish-Port-Host) ist die bessere Wahl, da Sie Ihrer Sitzung mindestens eine Verschlüsselung hinzufügen. Sie können weitere Optionen hinzufügen, aber es ist einfach genug, "man ssh" in Ihr Terminal oder in Google einzugeben, um eine vollständige Auflistung zu erhalten.
Die Option, die ich denke, dass Sie suchen, ist die Einrichtung eines VPN (Virtual Private Network)
Schauen Sie sich diesen Artikel an, um einen Überblick über den Unterschied zwischen den beiden ( SSH vs. VPN ) oder einer gut zusammengefassten Version zu erhalten , bevor Sie sich mit dem Einrichten Ihres eigenen VPN befassen. Wenn Sie sich für die VPN-Route entscheiden, empfehle ich OpenVPN , das kostenlos ist und eine Menge Dokumentation und Support bietet.
quelle
ssh -2 -C -D [...]
(SSH2 erzwingen, Komprimierung verwenden) und die-c
. Laut meinem System istman ssh
die Verschlüsselungsliste in SSH2 standardmäßig aufaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. Mein Punkt ist, wenn Sie verlangen-c blowfish
, könnten Sie mit SSH1 enden, das viel weniger sicher ist als SSH2.Verwenden Sie diese Beispiele:
Leiten Sie Port 80 von einem Remote-Host an 8888 auf Ihrem lokalen Host weiter
Verwenden Sie diese Option, um auf Dienste auf einem Remotehost zuzugreifen, die nur dort verfügbar sind
Leiten Sie Port 80 von Ihrem lokalen Host an 8888 auf einem Remote-Host weiter
Verwenden Sie diese Option, damit andere Benutzer auf Ihre Dienste zugreifen können: Webserver oder was auch immer.
Prost! :)
quelle