Einrichten eines Reverse Proxy ohne Öffnen eines eingehenden Ports (nur eines abgehenden Ports) in der Firewall

653
Josh1billion

Ich habe eine ungewöhnliche Anfrage erhalten, für die ich nicht sicher bin, ob es eine Lösung gibt.

Mein Client möchte eine Webanwendung auf Maschine A hosten und auf diese zugreifen, indem nur eine URL der öffentlich zugänglichen Maschine P aufgerufen wird.

Normalerweise sollte ein Reverse-Proxy ausreichen, aber es gibt eine zusätzliche, möglicherweise unnötige Komplikation: Mein Client möchte den Port der Webanwendung auf der Firewall von Machine A nicht öffnen - auch nicht auf die IP-Adresse von Machine P beschränkt. Aber es ist in Ordnung, wenn Maschine A eine Verbindung zu Maschine P herstellt, wenn Maschine A irgendwie eine ausgehende Verbindung herstellt.

Gibt es eine vorhandene Software, die ich nutzen kann, um Reverse Proxy so einzurichten, dass Machine A die Verbindung initialisiert - Verbindung zu einem an Machine P gebundenen Port -, wonach Machine P eingehende Web-Requests an Machine Reverse Proxy ausführen kann EIN?

Auf beiden Rechnern wird CentOS (6 oder 7) ausgeführt, und ich habe die volle Kontrolle über die Installation von Software, die ich auf ihnen finde. Die einzige Einschränkung ist, dass ich keine eingehenden Ports in der öffentlich zugänglichen Firewall von Machine A öffnen kann (wobei Machine P als "öffentlich" gilt, obwohl ich aus meiner Sicht ein vertrauenswürdiger Computer bin).

0

1 Antwort auf die Frage

1
davidgo

Wie Sie zu wissen scheinen, ist jede Lösung, die Sie verwenden, viel schlechter als das Öffnen der Firewall auf Maschine B, um Maschine A zuzulassen.

Sie können einen ssh-Tunnel von Maschine B zu Maschine A erstellen und diesen dann verwenden. Die Syntax würde ungefähr so ​​aussehen (von Maschine A):

ssh -R 8081: localhost: 8080 user @ machineb

Dadurch können Benutzer sich mit localhost verbinden: 8081 auf Maschine A, um sich mit Port 8080 auf Maschineb zu verbinden.

In diesem Fall ist dies keine gute Idee, da Sie die Sichtbarkeit des Datenverkehrs verlieren, wodurch das Debugging schwieriger wird und unnötigerweise durch SSH verschlüsselt wird.

Natürlich gibt es mehrere Möglichkeiten, das Gleiche zu tun, z. B. das Einrichten eines OpenVPN-Tunnels zwischen den beiden Maschinen.

Danke, das klingt nach einer guten Lösung angesichts der Einschränkung. Josh1billion vor 6 Jahren 0