Wir haben einen öffentlichen Server, der SSH-Verbindungen von mehreren Clients hinter Firewalls akzeptiert.
Jeder dieser Clients erstellt einen Reverse-SSH-Tunnel, indem er den ssh -R
Befehl von seinen Webservern an Port 80 zu unserem öffentlichen Server verwendet.
Der Zielport (auf der Clientseite) des Reverse-SSH-Tunnels ist 80, und der Quellport (auf der Seite des öffentlichen Servers) hängt vom Benutzer ab. Wir planen, für jeden Benutzer eine Karte mit Portadressen zu erstellen.
Zum Beispiel würde Client A seinen Webserver an Port 80 zu unserem Port 8000 tunneln. Client B von 80 bis 8001; Client C von 80 bis 8002.
Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver
Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver
Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
Grundsätzlich versuchen wir, jeden Benutzer an einen Port zu binden und ihm nicht zu erlauben , zu anderen Ports zu tunneln.
Wenn wir die Forward-Tunneling-Funktion von SSH mit verwenden ssh -L
, können wir mithilfe der permitopen=host:port
Konfiguration zulassen, welcher Port getunnelt wird . Es gibt jedoch kein Äquivalent für den umgekehrten SSH-Tunnel.
Gibt es eine Möglichkeit, Reverse-Tunneling-Ports pro Benutzer einzuschränken?