Hallo, hier ist eine Situation, in der ich einen Server in einem Unternehmensdatenzentrum für ein Projekt habe. Ich habe einen SSH-Zugriff auf diese Maschine an Port 22. Auf diesem Server werden einige virtuelle Maschinen ausgeführt, und dann stehen alle anderen Betriebssysteme auf der Rückseite. Da ich mich hinter der Firewall des Rechenzentrums befinde, fragte mich mein Vorgesetzter, ob ich etwas tun kann, mit dem ich vielen Personen im Internet direkten Zugriff auf diese virtuellen Maschinen gewähren kann. Ich weiß, wenn ich Verkehr auf einem anderen Port als 22 erhalten durfte, kann ich eine Portweiterleitung durchführen. Aber da mir das nicht erlaubt ist, was kann in diesem Fall eine Lösung sein. Die Leute, die sich verbinden möchten, könnten komplette Idioten sein. Wer kann glücklich sein, wenn er nur Kitt an seinen Maschinen öffnet, oder sogar Filezilla sein.
Ich habe keine Firewall in der Hand oder einen anderen Port als 22 geöffnet, und selbst wenn ich darum bitte, dass sie nicht geöffnet werden dürfen. 2-mal SSH ist nichts, was mein Vorgesetzter möchte.
quelle
Antworten:
Sie sollten den SSH-Tunnel von Ihrem Computer zum Server im Rechenzentrum öffnen. Nennen wir dies "server1". Wenn Sie openssh verwenden, können Sie einfach ausführen
Dadurch wird die Verbindung von Ihrem Computer an Port 8080 zum Server, Port 8080, geöffnet und die Firewall dazwischen übersprungen. Angenommen, Ihr Apache überwacht Port 8080. Das Portweiterleitungsformat überwacht IP: lokaler Port: Remote-Adresse: Remote-Port. Natürlich können Sie auch für einzelne Server verwenden
Bitte beachten Sie, dass localhost im Parameter -L relativ zu server1 ist. Mit anderen Worten, der Server sieht Verbindungen, die von localhost kommen, obwohl diese tatsächlich von Ihrem Computer über eine SSH-Verbindung kommen.
Sie benötigen auch Parameter
in der ssh-Konfiguration des Servers (normalerweise / etc / ssh / sshd_config).
Danach können andere über Port 8080 eine Verbindung zu Ihrem Computer herstellen, um eine Verbindung über Apache Reverse Proxy herzustellen. Wenn Sie einen allgemeinen Proxy benötigen (damit Benutzer die Adresse auswählen können, nicht nur bestimmte Adressen in der Apache-Konfiguration), sollten Sie squid auf Server1 installieren und den SSH-Tunnel zum Squid-Port verwenden.
quelle
ssh -L0.0.0.0:8080:localhost:8080 you_username@server1
dann sagen, ob die Verbindung noch über Port 22 der Firewall hergestellt wird (denn wenn dies nicht geschieht, kann ich nichts tun) und der SSH-Tunnel zwischen dem lokalen Computer und dem Remote-Computer hergestellt wird an den angegebenen Ports würde aber der gesamte Datenverkehr an der Firewall weiterlaufen (Port 22).ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1
möchte ich wissen, was als remote_server_address eingegeben werden kann, ist die IP des internen Computers, für den ich server1 als Zwischencomputer verwenden möchte. Habe ich das richtig verstanden?Vielleicht könnten Sie etwas wie SshMeIn verwenden . Es ist ein OpenSource-Web-System, das SSH-Tunnel durch Firewalls macht, Sie müssen nicht einmal die Ports öffnen.
quelle