Tunnelverkehr, wenn der lokale Port zufällig ist

0

Ich habe eine Anwendung, die eine Verbindung von einem zufälligen lokalen Port zu einem bekannten Port auf einem Remoteserver herstellt, der Verbindungen von meiner IP-Adresse ablehnt. Gibt es eine Möglichkeit, ein Portweiterleitungstool zum Weiterleiten aller ausgehenden Verbindungen zu verwenden, die ip:portüber einen SSH-Tunnel weitergeleitet werden?

Max Allan
quelle
1
Ein zufälliger lokaler Port ist völlig irrelevant. völlig irrelevant. und Portweiterleitung ist absolut irrelevant. Ihre Frage bezieht sich auf SSH mit einem Proxy. Ich habe es nicht getan, aber es gibt Möglichkeiten. Sie benötigen einen Computer zwischen Ihnen und dem SSH-Server, den der SSH-Server zulässt. Abgesehen davon ist ein Begriff, den Sie vielleicht wollen, "TCP-Port-Remapper". Es gibt Programme, die das auch tun.
Barlop
Sie erhalten fast immer zufällige lokale Ports zu einem bekannten Port auf einem Server. Ich denke, DHCP scheint einen bekannten lokalen Port zu verwenden (68), aber fast alles andere verwendet zufällige lokale Ports
Barlop
kleine änderung zu meinem ersten kommentar, port forwarding ist der richtige begriff ... in ssh heißt es so, es ist dasselbe wie tcp port remapping, wovon du sprichst.
Barlop

Antworten:

1

Ein zufälliger lokaler Port ist völlig irrelevant. völlig irrelevant. und Portweiterleitung ist vielleicht nicht der richtige Begriff für das, was Sie wollen. Ihre Frage bezieht sich auf SSH mit einem Proxy. Ich habe es nicht getan, aber es gibt Möglichkeiten. Sie benötigen einen Computer zwischen Ihnen und dem SSH-Server, den der SSH-Server zulässt. Abgesehen davon ist ein Begriff, den Sie vielleicht wollen, "TCP-Port-Remapper". Es gibt Programme, die das auch tun. Ich werde einige erwähnen, aber die meisten Leute würden ssh verwenden, so gut es geht.

wenn es sich um ein von ssh getrenntes tool handelt

Dieses Programm kann das von Ihnen gewünschte TCP-Port-Remapping durchführen

port mapper pm.exe http://www.kmint21.com/free/

oder nc, versuche es von cygwin (es ist nicht in gnuwin32) nc -l 1234 | nc 4.5.6.7 22 <- lausche auf port 1234, weiter auf ip 4.5.6.7 port 22

oder mit netsh auf Ihrem Proxy-

C:\Windows\system32>netsh interface portproxy add v4tov4 listenport=4321 connect
address=10.0.0.50 connectport=47

see it is listening, and will forward to 10.0.0.50:47
C:\Windows\system32>netstat -aon | find "4321"
  TCP    0.0.0.0:4321           0.0.0.0:0              LISTENING       844

Aber Sie können ssh dafür verwenden, es ist sehr dafür ausgelegt.

SSH selbst kann TCP-Port-Remapping durchführen. (SSH kann diese Port-Weiterleitung aufrufen.)

Sie führen einen SSH-Server auf einem Computer mit einer IP aus, die für Ihren Nicht-SSH-Server in Ordnung ist.

dann benutzt du ssh -L auf diesem Computer. Dies erfordert unter anderem 2 Parameter, die IP zum Abhören und den IP: PORT zum Weiterleiten.

Sie haben also compA, CompB, CompC

CompB und CompC wären in Ihrem Fall wohl nicht die gleichen Comps.

compC führt Ihren Nicht-SSH-Server aus. compB führt den ssh-Server aus.

Die IP von CompA wird von CompC nicht zugelassen, jedoch von CompB.

CompC erlaubt in CompBs IP.

So kommunizieren CompA und CompC über CompB.

Von CompA aus stellen Sie eine Verbindung zu CompB her, und zuvor führen Sie auf compB Ihr Port-Remapping aus. Dies kann ssh tun. ssh -L ... viele Beispiele für ssh -L online, die Sie in die Details Ihres Falls, der IP Ihres ssh-Servers und des Ports eingeben können, um zu überwachen, ob CompA eine Verbindung herstellt. und IP: PORT Ihres Nicht-SSH-Servers. Sie alle geben den Befehl ssh -L ein, den Sie auf CompB ausführen. ssh -L erstellt eine Portweiterleitungsfunktion, bei der das Comp mit ssh.exe (für Ihren normalerweise nicht ssh-fähigen Client) und das Comp mit sshd.exe (für Ihren normalerweise nicht ssh-fähigen Server) empfangsbereit sind.

Anschließend verbinden Sie Ihren Nicht-SSH-Client von CompA mit CompB. und es wird über die von Ihnen hergestellte SSH-Verbindung an CompC weitergeleitet.

barlop
quelle
Danke für deine Antwort. Der Server, zu dem ich eine Verbindung herstellen möchte, ist kein SSH-Server, aber ich kann über eine SSH-Verbindung darauf zugreifen. Ich bin verwirrt, wie ich den TCP-Port von meinem lokalen Computer neu zuordnen kann, wenn er zufällig ausgewählt wird (damit meine ich, dass ich nicht im Voraus wissen kann, welchen Port er auswählen wird).
Max Allan
Wenn Sie über SSH auf einen Server zugreifen, stellen Sie auch dann, wenn es sich bei dem Server, auf den Sie zugreifen, nicht um einen SSH-Server handelt (und normalerweise nicht um einen SSH-Server), eine Verbindung zu einem SSH-Server her, um darauf zuzugreifen. Die Verbindung besteht aus zwei Teilen: a) Herstellen der SSH-Verbindung b) Herstellen der Verbindung, die durch die SSH-Verbindung geht.
Barlop
@Max Ich habe vielleicht herausgefunden, was dich verwirrt oder verwirrt hat. Sie haben gedacht oder gedacht, dass Sie eine Verbindung zu diesem lokalen Port auf Comp Blah herstellen müssen, von dem aus Sie ssh.exe ausgeführt haben, und dieser Port ist zufällig, aber Sie tun es nicht. Sie führen ssh -L von comp blah aus und es wird dieser zufällige lokale Port erstellt, aber es wird auch ein anderer Port (nennen wir ihn Port xyz) erstellt, der lauscht, und Sie geben diesen Port xyz an, wenn Sie ssh -L ausführen. Dann verbinden Sie compA mit Port xyz auf CompB
Barlop