Frage Port Forwarding auf Linux ohne root oder ssh


Ich habe mich gefragt, ob es möglich ist, Portweiterleitung zu erhalten, ohne root oder ssh zu sein.

Derzeit mache ich

ssh -L 20080:othermachine:80 localhost

Die Verwendung von ssh kann Ihnen bestimmte Vorteile bringen, wie das Erstellen von verschlüsselten Tunneln usw. Im obigen Beispiel tue ich das nicht, so dass die Verwendung von ssh unnötigen Overhead zu sein scheint. Gibt es einen einfacheren Weg dies zu tun?

Ich nehme an, es ist nicht so schwer, ein Programm zu erstellen, das alle Daten auf einem Socket liest und es an einen anderen sendet und umgekehrt. Es muss ein Werkzeug geben, das diesen Job besser erledigt, als ich jemals schreiben kann.


4
2017-10-03 08:53


Ursprung


Sie würden root für dieses Beispiel nicht benötigen. - Arjan
Ich denke, ich hätte deutlicher machen sollen, dass ich kein besonderes Problem hatte. Es war mehr, dass, obwohl das funktionierte, ich dachte, dass es andere Lösungen geben muss, die besser sein könnten. (Wie für den Root-Teil, ich wäre in der Lage, Port-Weiterleitung mit Iptables zu verwenden, aber das würde root erfordern.) - BlackShift


Antworten:


Ich würde auch ssh WEIL der Verschlüsselung bevorzugen, aber 'Socat"sollte auch für dich gut funktionieren.


8
2017-10-03 09:04



Vielen Dank! noch nie von Socat gehört, kann dieses Programm viel mehr tun, als ich jemals gehofft hatte. Ich bin mir sicher, dass ich mehr Nutzen als nur Port-Forwarding finden werde. - BlackShift


Du fragst: Is there an easier way to do this?  Die einfache Antwort wäre "Nein". SSH tut, was Sie brauchen, und es ist ein gut verwendetes, gut bekanntes, sehr effizientes Programm mit (ich stelle mir vor) sehr wenigen Bugs, es ist auf jeder Plattform, die Sie sich vorstellen können, und es ist sicher zu booten. Sie geben nicht an, dass die Leistung ein Problem ist, daher sehe ich keinen Grund, SSH nicht persönlich zu verwenden.

Wenn Sie einen lokalen Port an einen Port auf einem anderen Computer weiterleiten möchten, benötigen Sie etwas, das auf diesem Remote-Host authentifiziert wird. Das ist SSH. Wenn Sie sich nur mit lokalen Ports anlegen wollen, dann wie bereits erwähnt, socat vielleicht genau das, wonach du suchst.


3
2017-10-03 14:35



Es gab keinen bestimmten Grund, ssh zu diesem Zeitpunkt nicht zu verwenden, aber ich wollte meine Sammlung von Tools erweitern, und socat scheint sehr mächtig zu sein. (Akira hat es zuerst vorgeschlagen, also habe ich seine Antwort überprüft.) - BlackShift
BTW, drei Gründe, wenn ssh nicht optimal ist: 1) es ist nicht verfügbar (wie auf meinem Telefon, aber ich bezweifle, dass ich dort socat installieren kann), 2) kein sshd, oder in meinem Fall eine begrenzte Anzahl von zulässigen Logins, 3) kein Account auf dem Remote-Rechner (so ist ein verschlüsselter / komprimierter Tunnel sowieso nicht möglich) - BlackShift
Ein weiterer Fall, in dem ssh nicht optimal ist, ist, wenn Sie große Datenmengen übertragen und nur über eine begrenzte Verarbeitungsleistung verfügen. Die durch sshs Verschlüsselung verursachte CPU-Last ist in diesem Fall groß und verlangsamt auch Übertragungen. Dies bedeutet jedoch nicht, dass Sie die Sicherheit aus Gründen der Leistung vernachlässigen können. In einigen Fällen ist die Sicherheitsebene jedoch unnötig (z. B. wenn Sie über ein privates Netzwerk kommunizieren). - wojtow


Wenn das, was Sie tun, funktioniert, und Sie keine Leistungsprobleme sehen, würde ich nichts ändern. Wenn Sie keine großen Datenmengen übertragen, sollte dies keine großen Auswirkungen haben. Und wenn Sie es sind, kann ssh die Daten komprimieren, so dass Sie immer noch besser dran sind.

Das einzige Problem könnte Latenz sein. Es sieht so aus, als würden Sie http-Verkehr tunneln, also sollte es vernachlässigbar sein.


1
2017-10-03 13:48



(Von man ssh: Die Komprimierung ist bei Modemverbindungen und anderen langsamen Verbindungen wünschenswert, verlangsamt jedoch nur die Geschwindigkeit in schnellen Netzwerken.) - Arjan
Ich habe das gesehen, stimme aber nicht ganz zu. Dies hängt von der Geschwindigkeit des Netzwerks, der Geschwindigkeit des Netzwerks und der Menge der zu verschiebenden Daten ab. Ich habe gute Erfahrungen mit großen Datenmengen (mehrere Gigabyte) über GigE-Netzwerke mit schnellen Servern gemacht. - KeithB


Nur eine kurze Anmerkung, es scheint, dass ncat, das mit dem neuen nmap 5 kommt, ähnliche Dinge wie socat tun kann: http://nmap.org/ncat/


1
2017-11-30 15:55





Welches Werkzeug auch immer Sie verwenden: Wenn Sie Windows nicht verwenden, werden Sie es tun immer (und nur) müssen mit Superuser-Rechten ausgeführt werden, wenn privilegierte Ports ("bekannte Ports") verwendet werden. Also: bei Ports bis einschließlich 1023.


0
2017-10-03 14:03



Das Weiterleiten an einen niedrigen Port (der bereits abhört) erfordert keine Superuser-Berechtigungen, nur für den akzeptierenden Port (in meinem Beispiel 10080). - BlackShift